X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=impl%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fxmlrouter%2Fimpl%2FSingleRouterConfigTest.java;h=7a71a6c2e8bda9924698ea03f982d5aa471695f4;hb=3b2c669b25bfcb5a3c3f06ff9180d85143bebb2a;hp=280e6dac420fb78b05b89a8c2f0ce6c1051bd0c3;hpb=e52385618670b54a5c6a4f2fbfab381bef43a905;p=xmlrouter diff --git a/impl/src/test/java/org/wamblee/xmlrouter/impl/SingleRouterConfigTest.java b/impl/src/test/java/org/wamblee/xmlrouter/impl/SingleRouterConfigTest.java index 280e6da..7a71a6c 100644 --- a/impl/src/test/java/org/wamblee/xmlrouter/impl/SingleRouterConfigTest.java +++ b/impl/src/test/java/org/wamblee/xmlrouter/impl/SingleRouterConfigTest.java @@ -23,16 +23,16 @@ import org.junit.Test; import org.wamblee.xmlrouter.common.Id; import org.wamblee.xmlrouter.config.DocumentType; import org.wamblee.xmlrouter.config.Filter; -import org.wamblee.xmlrouter.config.RouterConfig; import org.wamblee.xmlrouter.config.Transformation; public class SingleRouterConfigTest { - private ExtendedRouterConfig config; + private SingleRouterConfig config; @Before public void setUp() { - config = new SingleRouterConfig(new Id("routerconfig")); + config = new SingleRouterConfig("routerconfig"); + assertEquals("routerconfig", config.getId().getId()); } @Test @@ -40,13 +40,15 @@ public class SingleRouterConfigTest { DocumentType type1 = mock(DocumentType.class); when(type1.getId()).thenReturn(new Id("type1")); DocumentType type2 = mock(DocumentType.class); - when(type1.getId()).thenReturn(new Id("type2")); + when(type2.getId()).thenReturn(new Id("type2")); config.documentTypeConfig().add(type1); config.documentTypeConfig().add(type2); assertEquals(2, config.documentTypeConfig().values().size()); - assertTrue(config.documentTypeConfig().values().get(0) instanceof RobustDocumentType); + Object firstValue = config.documentTypeConfig().values().iterator() + .next(); + assertTrue(firstValue instanceof RobustDocumentType); } @Test @@ -54,14 +56,16 @@ public class SingleRouterConfigTest { Transformation transformation1 = mock(Transformation.class); when(transformation1.getId()).thenReturn(new Id("t1")); Transformation transformation2 = mock(Transformation.class); - when(transformation1.getId()).thenReturn(new Id("t2")); + when(transformation2.getId()).thenReturn(new Id("t2")); config.transformationConfig().add(transformation1); config.transformationConfig().add(transformation2); assertEquals(2, config.transformationConfig().values().size()); - assertTrue(config.transformationConfig().values().get(0) instanceof RobustTransformation); + Object firstValue = config.transformationConfig().values().iterator() + .next(); + assertTrue(firstValue instanceof RobustTransformation); } @Test @@ -69,13 +73,83 @@ public class SingleRouterConfigTest { Filter filter1 = mock(Filter.class); when(filter1.getId()).thenReturn(new Id("f1")); Filter filter2 = mock(Filter.class); - when(filter1.getId()).thenReturn(new Id("f2")); + when(filter2.getId()).thenReturn(new Id("f2")); config.filterConfig().add(filter1); config.filterConfig().add(filter2); assertEquals(2, config.filterConfig().values().size()); - assertTrue(config.filterConfig().values().get(0) instanceof RobustFilter); + Object firstValue = config.filterConfig().values().iterator().next(); + assertTrue(firstValue instanceof RobustFilter); + } + + @Test + public void testEqualityEmptyConfig() { + RouterConfig config1 = new SingleRouterConfig("routerconfig"); + RouterConfig config2 = new SingleRouterConfig("routerconfig"); + assertEquals(config1, config2); + } + + @Test + public void testEqualsNonEmpty() { + RouterConfig config1 = new SingleRouterConfig("routerconfig"); + + assertFalse(config1.equals(null)); + assertFalse(config.equals("hello")); + + RouterConfig config2 = new SingleRouterConfig("routerconfig"); + DocumentType type1 = mock(DocumentType.class); + when(type1.getId()).thenReturn(new Id("type1")); + DocumentType type2 = mock(DocumentType.class); + when(type2.getId()).thenReturn(new Id("type1")); + Filter filter1 = mock(Filter.class); + when(filter1.getId()).thenReturn(new Id("f1")); + Filter filter2 = mock(Filter.class); + when(filter2.getId()).thenReturn(new Id("f1")); + Transformation transformation1 = mock(Transformation.class); + when(transformation1.getId()).thenReturn(new Id("t1")); + Transformation transformation2 = mock(Transformation.class); + when(transformation2.getId()).thenReturn(new Id("t1")); + + config1.documentTypeConfig().add(type1); + assertFalse(config1.equals(config2)); + + config2.documentTypeConfig().add(type2); + assertEquals(config1, config2); + assertEquals(config1.hashCode(), config2.hashCode()); + + config1.transformationConfig().add(transformation1); + config2.transformationConfig().add(transformation2); + + assertEquals(config1, config2); + assertEquals(config1.hashCode(), config2.hashCode()); + + config1.filterConfig().add(filter1); + config2.filterConfig().add(filter2); + + assertEquals(config1, config2); + assertEquals(config1.hashCode(), config2.hashCode()); + } + + @Test + public void testCopy() { + testDocumentType(); + testFilter(); + testTransformation(); + + SingleRouterConfig copy = new SingleRouterConfig(config); + assertEquals(config.getId(), copy.getId()); + assertEquals(config, copy); + + // verify the copy is not shallow. + + config.documentTypeConfig().remove(new Id("type1")); + config.transformationConfig().remove(new Id("t1")); + config.filterConfig().remove(new Id("f1")); + assertEquals(1, config.documentTypeConfig().values().size()); + assertEquals(1, config.transformationConfig().values().size()); + assertEquals(1, config.filterConfig().values().size()); + assertFalse(config.equals(copy)); } }