/*
* This file is part of "SnipSnap Radeox Rendering Engine".
*
* Copyright (c) 2002 Stephan J. Schmidt, Matthias L. Jugel
* All Rights Reserved.
*
* Please visit http://radeox.org/ for updates and contact.
*
* --LICENSE NOTICE--
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* --LICENSE NOTICE--
*/
package examples;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.radeox.macro.Macro;
import org.radeox.macro.parameter.BaseMacroParameter;
import org.radeox.macro.parameter.MacroParameter;
import org.radeox.api.engine.context.InitialRenderContext;
import org.radeox.engine.context.BaseInitialRenderContext;
import java.io.*;
/**
* Example for a HelloWorldMacro
*
* @author Stephan J. Schmidt
* @version $Id: MacroExample.java 4158 2005-11-25 23:25:19Z ian@caret.cam.ac.uk $
*/
public class MacroExample extends RadeoxTestSupport {
public MacroExample(String name) {
super(name);
}
public static Test suite() {
return new TestSuite(MacroExample.class);
}
public void testRenderHelloWorld() {
Macro macro = new HelloWorldMacro();
StringWriter writer = new StringWriter();
try {
macro.execute(writer, new BaseMacroParameter());
} catch (IllegalArgumentException e) {
e.printStackTrace(); //To change body of catch statement use Options | File Templates.
} catch (IOException e) {
//
}
assertEquals("Hello world rendered", "hello world", writer.toString());
}
// public void testGroovyMacro() {
// GroovyMacroCompiler compiler = new GroovyMacroCompiler();
// StringBuffer contentOfFile = new StringBuffer();
// try {
// BufferedReader br = new BufferedReader(
// new InputStreamReader(
// new FileInputStream("GroovyMacro.groovy")));
//
// String line;
// while ((line = br.readLine()) != null) {
// contentOfFile.append(line);
// }
// } catch (IOException e) {
// e.printStackTrace();
// }
// String content = contentOfFile.toString();
// Macro macro = compiler.compileMacro(content);
// assertNotNull("Groovy Macro did compile.", macro);
// }
public void testCompiledGroovyMacro() {
Macro macro = new GroovyMacro();
StringWriter writer = new StringWriter();
try {
MacroParameter params = new BaseMacroParameter();
macro.execute(writer, params);
} catch (IllegalArgumentException e) {
e.printStackTrace(); //To change body of catch statement use Options | File Templates.
} catch (IOException e) {
//
}
assertEquals("Hello world from Groovy is rendered", "Yipee ay ey, schweinebacke", writer.toString());
}
public void testRenderHelloWorldWithIntialRenderContext() {
Macro macro = new InitialRenderContextHelloWorldMacro();
StringWriter writer = new StringWriter();
try {
MacroParameter params = new BaseMacroParameter();
InitialRenderContext context = new BaseInitialRenderContext();
context.set("hello.name", "stephan");
macro.setInitialContext(context);
macro.execute(writer, params);
} catch (IllegalArgumentException e) {
e.printStackTrace(); //To change body of catch statement use Options | File Templates.
} catch (IOException e) {
//
}
assertEquals("Hello world with InitialRenderContext rendered", "hello stephan", writer.toString());
}
public void testRenderHelloWorldWithParameter() {
Macro macro = new ParameterHelloWorldMacro();
StringWriter writer = new StringWriter();
try {
MacroParameter params = new BaseMacroParameter();
params.setParams("stephan");
macro.execute(writer, params);
} catch (IllegalArgumentException e) {
e.printStackTrace(); //To change body of catch statement use Options | File Templates.
} catch (IOException e) {
//
}
assertEquals("Hello world with parameter rendered", "Hello <b>stephan</b>", writer.toString());
}
}