@Test public void testNullCollection() throws MergerException { List<SubMergeable> subMergeablesTwo = new ArrayList<SubMergeable>(); subMergeablesTwo.add(buildSubMergeable("1", "seven", "eight", true)); MergeableRoot one = buildMergeableRoot("3", "one", "two", 5, null, true); MergeableRoot two = buildMergeableRoot("3", null, null, 6, subMergeablesTwo, true); MergeableRoot merged = merger.merge(MergeableRoot.class, one, two); assertEquals("one", merged.getDontMerge()); assertNull(merged.getStringValue()); assertEquals(6, merged.getIntValue()); assertEquals(1, merged.getSubMergeables().size()); SubMergeable subMergeable = merged.getSubMergeables().iterator().next(); assertEquals("seven", subMergeable.getValue()); assertEquals("eight", subMergeable.getDontMergeValue()); }
@Test public void testNonMatchingMerge() throws MergerException { List<SubMergeable> subMergeablesOne = new ArrayList<SubMergeable>(); List<SubMergeable> subMergeablesTwo = new ArrayList<SubMergeable>(); subMergeablesOne.add(buildSubMergeable("1", "five", "six", true)); subMergeablesTwo.add(buildSubMergeable("2", "seven", "eight", true)); MergeableRoot one = buildMergeableRoot("3", "one", "two", 5, subMergeablesOne, true); MergeableRoot two = buildMergeableRoot("4", "three", "four", 6, subMergeablesTwo, true); MergeableRoot merged = merger.merge(MergeableRoot.class, one, two); assertEquals("one", merged.getDontMerge()); assertEquals("four", merged.getStringValue()); assertEquals(6, merged.getIntValue()); assertEquals(1, merged.getSubMergeables().size()); SubMergeable subMergeableTwo = buildSubMergeableMap(merged.getSubMergeables()).get("2"); assertEquals("seven", subMergeableTwo.getValue()); assertEquals("eight", subMergeableTwo.getDontMergeValue()); }
@Test public void testPreviouslyUntagWritten() throws MergerException { List<SubMergeable> subMergeablesOne = new ArrayList<SubMergeable>(); List<SubMergeable> subMergeablesTwo = new ArrayList<SubMergeable>(); subMergeablesOne.add(buildSubMergeable("1", "five", "six", false)); subMergeablesOne.add(buildSubMergeable("2", "nine", "ten", false)); subMergeablesTwo.add(buildSubMergeable("1", "seven", "eight", true)); MergeableRoot one = buildMergeableRoot("2", "one", "two", 5, subMergeablesOne, false); MergeableRoot two = buildMergeableRoot("2", "three", "four", 6, subMergeablesTwo, true); MergeableRoot merged = merger.merge(MergeableRoot.class, one, two); assertEquals("one", merged.getDontMerge()); assertEquals("two", merged.getStringValue()); assertEquals(5, merged.getIntValue()); assertEquals(2, merged.getSubMergeables().size()); SubMergeable subMergeable = buildSubMergeableMap(merged.getSubMergeables()).get("1"); assertEquals("five", subMergeable.getValue()); assertEquals("six", subMergeable.getDontMergeValue()); }