X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=impl%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fxmlrouter%2Fimpl%2FConfigImplTest.java;h=aa197eaf54274e44fee6d9ba87555d0381833735;hb=d7938dd34e22ba8d34b4a89840c6efbb5d866380;hp=8ebdb9f4aa16c2246dc5ff50b494239fab9dc1c8;hpb=537cfb1a832b99e2c0a55b4634cd2a42f7fbcc09;p=xmlrouter diff --git a/impl/src/test/java/org/wamblee/xmlrouter/impl/ConfigImplTest.java b/impl/src/test/java/org/wamblee/xmlrouter/impl/ConfigImplTest.java index 8ebdb9f..aa197ea 100644 --- a/impl/src/test/java/org/wamblee/xmlrouter/impl/ConfigImplTest.java +++ b/impl/src/test/java/org/wamblee/xmlrouter/impl/ConfigImplTest.java @@ -53,18 +53,28 @@ public class ConfigImplTest { } } + public static final class MyTypeConfig extends ConfigImpl { + public MyTypeConfig(Id aId) { + super(aId); + } + + public MyTypeConfig(MyTypeConfig aConfig) { + super(aConfig); + } + + @Override + public MyType wrap(String aPrefix, MyType aT) { + return new MyTypeWrapper(aPrefix, aT); + } + } + private AtomicLong sequence; - private ExtendedConfig config; + private MyTypeConfig config; @Before public void setUp() { sequence = new AtomicLong(1L); - config = new ConfigImpl(new Id(CONFIG_TYPE)) { - @Override - public MyType wrap(String aPrefix, MyType aT) { - return new MyTypeWrapper(aPrefix, aT); - } - }; + config = new MyTypeConfig(new Id(CONFIG_TYPE)); } @Test @@ -146,4 +156,18 @@ public class ConfigImplTest { assertTrue(config2.remove(type2.getId())); assertFalse(config1.equals(config2)); } + + @Test + public void testCopy() { + testAdd(); + assertEquals(2, config.values().size()); + MyTypeConfig copy = new MyTypeConfig(config); + assertEquals(config.getId(), config.getId()); + assertEquals(config, copy); + + // verify the copy is not shallow + assertTrue(config.remove(new Id("type1"))); + assertEquals(1, config.values().size()); + assertFalse(config.equals(copy)); + } }