package org.apache.ode.bpel.obj.migrate; import static org.junit.Assert.assertEquals; import java.net.URI; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; import javax.xml.namespace.QName; import org.apache.ode.bpel.obj.DebugInfo; import org.junit.Test; public class DeepEqualityTest { @Test public void simpleListTest(){ List<String> ls1 = new ArrayList<String>(); ls1.add("Hello"); ls1.add("world"); List<String> ls2 = new ArrayList<String>(); ls2.add("Hello"); ls2.add("world"); DeepEqualityHelper de = new DeepEqualityHelper(); assertEquals(Boolean.TRUE, de.deepEquals(ls1, ls2)); ls1.add(0, "!"); ls2.add("!"); assertEquals(Boolean.TRUE, de.deepEquals(ls1, ls2)); } @Test public void simpleSetTest(){ Set<String> s1 = new LinkedHashSet(); s1.add("hello"); s1.add("world"); Set<String> s2 = new LinkedHashSet(); s2.add("world"); s2.add("hello"); DeepEqualityHelper de = new DeepEqualityHelper(); assertEquals(Boolean.TRUE, de.deepEquals(s1, s2)); } @SuppressWarnings({ "rawtypes", "unchecked" }) @Test public void simpleMapTest(){ Map<String, Object> m1 = new HashMap(); m1.put("item1", "string1"); m1.put("item2", new ArrayList()); Map<String, Object> m2 = new HashMap(); m2.put("item1", "string1"); m2.put("item2", new ArrayList()); DeepEqualityHelper de = new DeepEqualityHelper(); assertEquals(Boolean.TRUE, de.deepEquals(m1, m2)); } @SuppressWarnings({ "rawtypes", "unchecked" }) @Test public void simpleTest() throws Exception{ Map m1 = new HashMap(); QName n1 = new QName("localpart"); URI u1 = new URI("urn://a/uri"); m1.put(u1, n1); DebugInfo d1 = new DebugInfo("/a/path", 0, 1, m1); m1.put("cyclic", d1); Map m2 = new HashMap(); QName n2 = new QName("localpart"); URI u2 = new URI("urn://a/uri"); m2.put(u2, n2); DebugInfo d2 = new DebugInfo("/a/path", 0, 1, m2); m2.put("cyclic", d2); DeepEqualityHelper de = new DeepEqualityHelper(); de.addCustomComparator(new ExtensibeImplEqualityComp()); assertEquals(Boolean.TRUE, de.deepEquals(m1, m2)); } }