package org.richfaces.cdk.templatecompiler.statements; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import org.junit.Test; import org.junit.runner.RunWith; import org.richfaces.cdk.CdkTestRunner; import org.richfaces.cdk.templatecompiler.builder.model.JavaField; import org.richfaces.cdk.templatecompiler.builder.model.JavaImport; import com.google.common.collect.Iterables; @RunWith(CdkTestRunner.class) public class FreeMarkerTemplateStatementTest1 extends FreeMarkerTestBase { private static final String FOO_CODE = "private static final String foo;"; public FreeMarkerTemplateStatementBase setUpStatement(String template) { FreeMarkerTemplateStatementBase freeMarkerStatement = new FreeMarkerTemplateStatementBase(renderer, template); return freeMarkerStatement; } @Test public void testGetCode() { FreeMarkerTemplateStatementBase statement = setUpStatement("foo"); controller.replay(); String code = statement.getCode(); controller.verify(); assertEquals(FOO_CODE, code); } @Test public void testAddConstant() { FreeMarkerTemplateStatementBase statement = setUpStatement("addConstant"); JavaField javaField = Iterables.getOnlyElement(statement.getRequiredFields()); assertEquals("foo", javaField.getName()); assertEquals("List<String>", javaField.getType().getCode()); assertNotNull(javaField.getValue()); assertEquals(FOO_CODE, javaField.getValue().getCode()); assertEquals("", statement.getCode()); } @Test public void testAddImport() { FreeMarkerTemplateStatementBase statement = setUpStatement("addImport"); JavaImport javaImport = Iterables.getOnlyElement(statement.getRequiredImports()); assertEquals("java.util.List", javaImport.getName()); assertEquals("", statement.getCode()); } @Test public void testAddRequiredMethod() { FreeMarkerTemplateStatementBase statement = setUpStatement("addMethod"); HelperMethod helperMethod = Iterables.getOnlyElement(statement.getRequiredMethods()); assertEquals(HelperMethod.EMPTINESS_CHECK, helperMethod); assertEquals("", statement.getCode()); } }