package net.varkhan.base.management.config; import junit.framework.TestCase; import java.util.*; public class MapConfigurationTest extends TestCase { public void testGet() throws Exception { MapConfiguration cfg = new MapConfiguration(); assertEquals("k1", null, cfg.get("", "k1")); assertEquals("c1:k1", null, cfg.get("c1", "k1")); cfg.add("k1",1); cfg.add("kA","A"); cfg.add("kw","w"); cfg.add("c1","k1",11); cfg.add("c1","kA","1A"); cfg.add("c1","kx","x"); cfg.add("c2","k1",21); cfg.add("c2","kA","2A"); cfg.add("c2","ky","y"); assertEquals("get(k1)", 1, cfg.get("", "k1")); assertEquals("get(kA)", "A", cfg.get("", "kA")); assertEquals("get(c1,k1)", 11, cfg.get("c1", "k1")); assertEquals("get(c1,kA)", "1A", cfg.get("c1", "kA")); assertEquals("get(c1,kB)", null, cfg.get("c1", "kB")); assertEquals("get(c2,k1)", 21, cfg.get("c2", "k1")); assertEquals("get(c2,kA)","2A",cfg.get("c2","kA")); assertEquals("get(c2,kB)", null, cfg.get("c2", "kB")); } public void testContexts() throws Exception { MapConfiguration cfg = new MapConfiguration(); Set<String> cx0 = new HashSet<String>(); for(String cx: cfg.contexts()) cx0.add(cx); assertEquals("contexts()", new HashSet<String>(Arrays.asList("")),cx0); cfg.add("k1",1); cfg.add("kA","A"); cfg.add("kw","w"); cfg.add("c1","k1",11); cfg.add("c1","kA","1A"); cfg.add("c1","kx","x"); cfg.add("c2","k1",21); cfg.add("c2","kA","2A"); cfg.add("c2","ky","y"); Set<String> cxs = new HashSet<String>(); for(String cx: cfg.contexts()) cxs.add(cx); assertEquals("contexts()", new HashSet<String>(Arrays.asList("","c1","c2")),cxs); } public void testContext() throws Exception { MapConfiguration cfg = new MapConfiguration(); cfg.add("k1",1); cfg.add("kA","A"); cfg.add("kw","w"); cfg.add("c1","k1",11); cfg.add("c1","kA","1A"); cfg.add("c1","kx","x"); cfg.add("c2","k1",21); cfg.add("c2","kA","2A"); cfg.add("c2","ky","y"); // Def Configuration.Context cxd = cfg.context(null); assertTrue("has(k1)",cxd.has("k1")); Map<String,Object> md = new HashMap<String,Object>(); for(Configuration.Entry e: cxd) { assertEquals("cx.ctx()","",e.ctx()); md.put(e.key(),e.value()); } assertEquals("cx.size()",3,md.size()); assertEquals("cx.get(k1)",1,md.get("k1")); assertEquals("cx.get(kA)","A",md.get("kA")); assertEquals("cx",md,cxd.get()); // c1 Configuration.Context cx1 = cfg.context("c1"); assertTrue("has(k1)",cx1.has("k1")); Map<String,Object> m1 = new HashMap<String,Object>(); for(Configuration.Entry e: cx1) { assertEquals("cx.ctx()","c1",e.ctx()); m1.put(e.key(),e.value()); } assertEquals("cx.size()",3,m1.size()); assertEquals("cx.get(k1)",11,m1.get("k1")); assertEquals("cx.get(kA)","1A",m1.get("kA")); assertEquals("cx",m1,cx1.get()); // c2 Configuration.Context cx2 = cfg.context("c2"); assertTrue("has(k1)",cx2.has("k1")); Map<String,Object> m2 = new HashMap<String,Object>(); for(Configuration.Entry e: cx2) { assertEquals("cx.ctx()","c2",e.ctx()); m2.put(e.key(),e.value()); } assertEquals("cx.size()",3,m2.size()); assertEquals("cx.get(k1)",21,m2.get("k1")); assertEquals("cx.get(kA)","2A",m2.get("kA")); assertEquals("cx",m2,cx2.get()); } public void testAddDef() throws Exception { MapConfiguration cfg = new MapConfiguration(); assertEquals("k1", null, cfg.get("", "k1")); assertEquals("c1:k1", null, cfg.get("c1", "k1")); cfg.add("k1",1); cfg.add("kA","A"); cfg.add("kw","w"); assertEquals("get(k1)", 1, cfg.get("", "k1")); assertEquals("get(kA)", "A", cfg.get("", "kA")); } public void testAdd() throws Exception { MapConfiguration cfg = new MapConfiguration(); assertEquals("k1", null, cfg.get("", "k1")); assertEquals("c1:k1", null, cfg.get("c1", "k1")); cfg.add("c1","k1",11); cfg.add("c1","kA","1A"); cfg.add("c1","kx","x"); cfg.add("c2","k1",21); cfg.add("c2","kA","2A"); cfg.add("c2","ky","y"); assertEquals("get(c1,k1)", 11, cfg.get("c1", "k1")); assertEquals("get(c1,kA)", "1A", cfg.get("c1", "kA")); assertEquals("get(c2,k1)", 21, cfg.get("c2", "k1")); assertEquals("get(c2,kA)","2A",cfg.get("c2","kA")); } public void testAddEnt() throws Exception { } public void testLoadConfigMap() throws Exception { } public void testLoadConfig() throws Exception { } }