Config no longer implements Identifiable because this was in violation of the contrac...
[xmlrouter] / impl / src / test / java / org / wamblee / xmlrouter / impl / SingleRouterConfigTest.java
index 3df429315aeed8c33bf39eb6ab35078013126807..7a71a6c2e8bda9924698ea03f982d5aa471695f4 100644 (file)
@@ -23,16 +23,15 @@ 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>("routerconfig"));
+        config = new SingleRouterConfig("routerconfig");
         assertEquals("routerconfig", config.getId().getId());
     }
 
@@ -87,23 +86,19 @@ public class SingleRouterConfigTest {
 
     @Test
     public void testEqualityEmptyConfig() {
-        RouterConfig config1 = new SingleRouterConfig(new Id<RouterConfig>(
-            "routerconfig"));
-        RouterConfig config2 = new SingleRouterConfig(new Id<RouterConfig>(
-            "routerconfig"));
+        RouterConfig config1 = new SingleRouterConfig("routerconfig");
+        RouterConfig config2 = new SingleRouterConfig("routerconfig");
         assertEquals(config1, config2);
     }
 
     @Test
     public void testEqualsNonEmpty() {
-        RouterConfig config1 = new SingleRouterConfig(new Id<RouterConfig>(
-            "routerconfig"));
+        RouterConfig config1 = new SingleRouterConfig("routerconfig");
 
         assertFalse(config1.equals(null));
         assertFalse(config.equals("hello"));
 
-        RouterConfig config2 = new SingleRouterConfig(new Id<RouterConfig>(
-            "routerconfig"));
+        RouterConfig config2 = new SingleRouterConfig("routerconfig");
         DocumentType type1 = mock(DocumentType.class);
         when(type1.getId()).thenReturn(new Id<DocumentType>("type1"));
         DocumentType type2 = mock(DocumentType.class);
@@ -136,4 +131,25 @@ public class SingleRouterConfigTest {
         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<DocumentType>("type1"));
+        config.transformationConfig().remove(new Id<Transformation>("t1"));
+        config.filterConfig().remove(new Id<Filter>("f1"));
+        assertEquals(1, config.documentTypeConfig().values().size());
+        assertEquals(1, config.transformationConfig().values().size());
+        assertEquals(1, config.filterConfig().values().size());
+        assertFalse(config.equals(copy));
+    }
 }