diff options
Diffstat (limited to 'src/org/openoffice/tools/tests/LanguageHelperTest.java')
-rw-r--r-- | src/org/openoffice/tools/tests/LanguageHelperTest.java | 91 |
1 files changed, 81 insertions, 10 deletions
diff --git a/src/org/openoffice/tools/tests/LanguageHelperTest.java b/src/org/openoffice/tools/tests/LanguageHelperTest.java index f6e0597..49c5b34 100644 --- a/src/org/openoffice/tools/tests/LanguageHelperTest.java +++ b/src/org/openoffice/tools/tests/LanguageHelperTest.java @@ -2,12 +2,21 @@ package org.openoffice.tools.tests; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import java.io.File; +import java.io.StringWriter; +import java.net.URISyntaxException; import java.util.Arrays; +import java.util.HashMap; +import org.junit.Before; import org.junit.Test; -import org.openoffice.tools.LanguageHelper; +import org.openoffice.tools.language.Language; +import org.openoffice.tools.language.LanguageHelper; + +import freemarker.template.Template; /** * ATM, the fixture of this class is the main language configuration: it @@ -18,30 +27,92 @@ import org.openoffice.tools.LanguageHelper; */ public class LanguageHelperTest { - private static final String LANG = "cpp"; - private static final Object DESCRIPTION = "generate output for C++"; + private static final String TESTS_LANGS_DIR = "test_langs"; + + private static final String WORKING_LANG = "working"; + private static final Object WORKING_DESCRIPTION = "Working test lang"; + + private static final String MISSING_LANG = "missing"; + private static final String UNCOMPLETE_LANG = "uncomplete"; - private static final String ERR_LANG = "err"; + private static final String SIMPLE_TPL = "simple.tpl"; + private static final String NESTED_TPL = "nested.tpl"; + + private static final String VAR_SOMETEXT_NAME = "sometext"; + private static final String VAR_SOMETEXT_VALUE = "some text"; + + @Before + public void setup( ) throws URISyntaxException { + File jarFile = new File(LanguageHelperTest.class.getProtectionDomain() + .getCodeSource().getLocation().toURI()); + File dir = new File( jarFile.getParentFile(), TESTS_LANGS_DIR ); + LanguageHelper.setLanguagesDir( dir ); + } @Test public void testGetLanguages( ) { - String[] result = LanguageHelper.getLanguages(); - String[] expected = new String[] { "cpp", "java4", "java5" }; + String[] result = LanguageHelper.getLanguagesIds(); + String[] expected = new String[] { WORKING_LANG, UNCOMPLETE_LANG }; // The order in results aren't guaranteed Arrays.sort( result ); + Arrays.sort( expected ); assertArrayEquals( "Different values", expected, result ); } @Test public void testGetDescriptionOk( ) { - String actual = LanguageHelper.getDescription( LANG ); - assertEquals( DESCRIPTION , actual ); + Language langDef = LanguageHelper.getLanguage( WORKING_LANG ); + assertNotNull( langDef ); + String actual = langDef.getDescription( ); + assertEquals( WORKING_DESCRIPTION , actual ); } @Test - public void testGetDescriptionError( ) { - String actual = LanguageHelper.getDescription( ERR_LANG ); + public void testGetLanguageMissing( ) { + Language langDef = LanguageHelper.getLanguage( MISSING_LANG ); + assertNull( langDef ); + } + + @Test + public void testGetLanguageMissingProp( ) { + Language langDef = LanguageHelper.getLanguage( UNCOMPLETE_LANG ); + assertNotNull( langDef ); + String actual = langDef.getDescription(); assertNull( actual ); } + + @Test + public void testSimpleTemplate( ) throws Exception { + Language langDef = LanguageHelper.getLanguage( WORKING_LANG ); + assertNotNull( langDef ); + + Template tpl = langDef.getTemplate( SIMPLE_TPL ); + StringWriter out = new StringWriter(); + tpl.process( getTestTemplateModel(), out ); + out.flush(); + + String expected = VAR_SOMETEXT_VALUE; + assertEquals( expected, out.toString() ); + } + + @Test + public void testNestedTemplate( ) throws Exception { + Language langDef = LanguageHelper.getLanguage( WORKING_LANG ); + assertNotNull( langDef ); + + Template tpl = langDef.getTemplate( NESTED_TPL ); + StringWriter out = new StringWriter(); + tpl.process( getTestTemplateModel(), out ); + out.flush(); + + String expected = VAR_SOMETEXT_VALUE + "\n" + VAR_SOMETEXT_VALUE; + assertEquals( expected, out.toString() ); + } + + private Object getTestTemplateModel() { + HashMap<String, Object> model = new HashMap<String, Object>(); + model.put( VAR_SOMETEXT_NAME, VAR_SOMETEXT_VALUE ); + return model; + } } |