summaryrefslogtreecommitdiff
path: root/src/org/openoffice/tools/tests/LanguageHelperTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/openoffice/tools/tests/LanguageHelperTest.java')
-rw-r--r--src/org/openoffice/tools/tests/LanguageHelperTest.java91
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;
+ }
}