1 10 package org.mmbase.util; 11 import org.mmbase.util.xml.*; 12 import org.w3c.dom.*; 13 import org.xml.sax.*; 14 import java.io.*; 15 import java.util.*; 16 import junit.framework.TestCase; 17 18 23 public class LocalizedEntryListFactoryTest extends TestCase { 24 25 public static final Locale NL = new Locale("nl"); 26 public static final Locale BE = new Locale("nl", "BE"); 27 public static final Locale EN = new Locale("en", "GB"); 28 public static final Locale DK = new Locale("dk"); 29 public static final Locale EO = new Locale("eo"); 30 31 public void testExplicitEntries() { 32 LocalizedEntryListFactory fact = new LocalizedEntryListFactory(); 33 fact.add(NL, "a", "hallo"); 34 fact.add(BE, "b", "saluut"); 35 fact.add(EN, "a", "hello"); 36 fact.add(EO, "a", "saluton"); 37 fact.add(NL, "b", "hoi"); 38 fact.add(EN, "b", "hi"); 39 assertTrue(fact.size() == 2); { 41 List col = Arrays.asList(new Object [] { new Entry("a", "hallo"), new Entry("b", "hoi")}); 42 assertEquals(col, fact.get(NL)); 43 } 44 { 45 List col = Arrays.asList(new Object [] { new Entry("a", "hallo"), new Entry("b", "saluut")}); 46 } 48 { 49 Collection col = Arrays.asList(new Object [] { new Entry("a", "hello"), new Entry("b", "hi")}); 50 assertEquals(col, fact.get(EN)); 51 } 52 assertEquals("a", fact.castKey("a")); 53 assertEquals("xxxx", fact.castKey("xxxx")); 54 } 55 56 public void testBundleEntries() { 57 LocalizedEntryListFactory fact = new LocalizedEntryListFactory(); 58 String resource1 = "org.mmbase.datatypes.resources.boolean.truefalse"; 59 fact.addBundle(resource1, null, null, Boolean .class, SortedBundle.NO_COMPARATOR); 60 assertTrue(fact.size() == 2); { 62 Collection col = Arrays.asList(new Object [] { new Entry(Boolean.FALSE, "onwaar"), new Entry(Boolean.TRUE, "waar")}); 63 assertEquals(col, fact.get(NL)); 64 assertEquals(col, fact.get(BE)); 65 } 66 { 67 Collection col = Arrays.asList(new Object [] { new Entry(Boolean.FALSE, "false"), new Entry(Boolean.TRUE, "true")}); 68 assertEquals(col, fact.get(EN)); 69 } 70 } 71 72 public void testCastKey() { 73 LocalizedEntryListFactory fact = new LocalizedEntryListFactory(); 74 String resource1 = "org.mmbase.datatypes.resources.boolean.truefalse"; 75 fact.addBundle(resource1, null, null, Boolean .class, SortedBundle.NO_COMPARATOR); 76 77 assertEquals(Boolean.FALSE, fact.castKey("false")); 78 assertEquals(Boolean.FALSE, fact.castKey("0")); 79 assertEquals(Boolean.TRUE, fact.castKey("true")); 80 assertEquals(Boolean.TRUE, fact.castKey("1")); 81 assertEquals("xxxx", fact.castKey("xxxx")); } 83 public void testCastKey1() { 84 LocalizedEntryListFactory fact = new LocalizedEntryListFactory(); 85 String resource1 = "org.mmbase.datatypes.resources.boolean.truefalse"; 86 fact.addBundle(resource1, null, null, String .class, SortedBundle.NO_COMPARATOR); 87 88 assertEquals("false", fact.castKey("false")); 89 assertEquals("0", fact.castKey("0")); 90 assertEquals("true", fact.castKey("true")); 91 assertEquals("1", fact.castKey("1")); 92 assertEquals("xxxx", fact.castKey("xxxx")); 93 } 94 95 public void testReadXml() throws org.xml.sax.SAXException , java.io.IOException { 96 LocalizedEntryListFactory fact = new LocalizedEntryListFactory(); 97 String config = 98 "<enumeration>" + 99 " <entry value='' display='unfilled' />" + 100 " <entry value='1' display='one' />" + 101 " <entry value='2' display='two' />" + 102 "</enumeration>"; 103 Document doc = DocumentReader.getDocumentBuilder(false).parse(new InputSource(new StringReader(config))); 104 fact.fillFromXml(doc.getDocumentElement(), null); 105 assertTrue(fact.size() == 3); 107 assertEquals("", fact.castKey("")); 108 assertEquals(null, fact.castKey(null)); 109 assertEquals(new Integer (1), fact.castKey(new Integer (1))); 110 111 } 112 public void testReadXml2() throws org.xml.sax.SAXException , java.io.IOException { 113 LocalizedEntryListFactory fact = new LocalizedEntryListFactory(); 114 String config = 115 "<enumeration>" + 116 " <entry basename='org.mmbase.datatypes.resources.boolean.truefalse' />" + 117 "</enumeration>"; 118 Document doc = DocumentReader.getDocumentBuilder(false).parse(new InputSource(new StringReader(config))); 119 fact.fillFromXml(doc.getDocumentElement(), Boolean .class); 120 121 assertEquals(Boolean.FALSE, fact.castKey("false")); 122 assertEquals(Boolean.FALSE, fact.castKey("0")); 123 assertEquals(Boolean.TRUE, fact.castKey("true")); 124 assertEquals(Boolean.TRUE, fact.castKey("1")); 125 assertEquals("xxxx" , fact.castKey("xxxx")); 126 127 129 Element xml = fact.toXml(); 130 fact.clear(); 131 fact.fillFromXml(xml, String .class); 132 assertEquals("false", fact.castKey("false")); 133 assertEquals("0", fact.castKey("0")); 134 assertEquals("true", fact.castKey("true")); 135 assertEquals("1", fact.castKey("1")); 136 assertEquals("xxxx", fact.castKey("xxxx")); 137 138 } 139 public void testReadXml3() throws org.xml.sax.SAXException , java.io.IOException { 140 LocalizedEntryListFactory fact = new LocalizedEntryListFactory(); 141 String config = 142 "<enumeration>" + 143 "<entry basename='org.mmbase.datatypes.resources.states'" + 144 " javaconstants='org.mmbase.module.builders.MMServers'" + 145 " />" + 146 "</enumeration>"; 147 Document doc = DocumentReader.getDocumentBuilder(false).parse(new InputSource(new StringReader(config))); 148 fact.fillFromXml(doc.getDocumentElement(), Integer .class); 149 150 assertEquals(new Integer (-1), fact.castKey("UNKNOWN")); 151 assertEquals(new Integer (-1), fact.castKey("unknown")); 152 assertEquals(new Integer (3), fact.castKey("error")); 153 assertEquals("blabla", fact.castKey("blabla")); 154 } 155 156 157 } 158 | Popular Tags |