Modified: ode/branches/APACHE_ODE_1.X/bpel-api/src/test/java/org/apache/ode/bpel/common/CorrelationKeySetTest.java URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-api/src/test/java/org/apache/ode/bpel/common/CorrelationKeySetTest.java?rev=745271&r1=745270&r2=745271&view=diff ============================================================================== --- ode/branches/APACHE_ODE_1.X/bpel-api/src/test/java/org/apache/ode/bpel/common/CorrelationKeySetTest.java (original) +++ ode/branches/APACHE_ODE_1.X/bpel-api/src/test/java/org/apache/ode/bpel/common/CorrelationKeySetTest.java Tue Feb 17 22:06:18 2009 @@ -4,156 +4,156 @@ import org.junit.Test; public class CorrelationKeySetTest { - private CorrelationKey keyX = new CorrelationKey("1~a~b"); - private CorrelationKey keyY = new CorrelationKey("2~b~c"); - private CorrelationKey keyZ = new CorrelationKey("3~c~d"); - private CorrelationKey optX = new OptionalCorrelationKey("1~a~b"); - private CorrelationKey optY = new OptionalCorrelationKey("2~b~c"); - private CorrelationKey optZ = new OptionalCorrelationKey("3~c~d"); - private CorrelationKey implicit = new CorrelationKey("-1~a"); - - @Test - public void testCanonicalString() throws Exception { - CorrelationKeySet setA = new CorrelationKeySet(); - setA.add(keyX); - setA.add(optY); - assertEquals("@2[1~a~b],[2~b~c]", setA.toCanonicalString()); - } - - @Test - public void testContainsAll() throws Exception { - CorrelationKeySet setA = new CorrelationKeySet(); - CorrelationKeySet setB = new CorrelationKeySet(); - assertTrue(setA.containsAll(setB)); - - setA.add(keyX); - assertTrue(setA.containsAll(setB)); - - setB.add(keyY); - assertFalse(setA.containsAll(setB)); - - setA.clear(); - setA.add(keyY); - assertTrue(setA.containsAll(setB)); - } - - @Test - public void testRestoreFromCanonicalForm() throws Exception { - assertEquals(new CorrelationKeySet(null), new CorrelationKeySet()); - assertEquals(new CorrelationKeySet(""), new CorrelationKeySet()); - - assertEquals(new CorrelationKeySet("-1~session_key"), - new CorrelationKeySet().add(new CorrelationKey("-1", new String[] {"session_key"}))); - assertEquals(new CorrelationKeySet("1~key1~key2"), - new CorrelationKeySet().add(new CorrelationKey("1", new String[] {"key1", "key2"}))); - - assertEquals(new CorrelationKeySet("@2"), new CorrelationKeySet()); - assertEquals(new CorrelationKeySet("@2[-1~session_key]"), - new CorrelationKeySet().add(new CorrelationKey("-1", new String[] {"session_key"}))); - assertEquals(new CorrelationKeySet("@2[1~key1~key2]"), - new CorrelationKeySet().add(new CorrelationKey("1", new String[] {"key1", "key2"}))); - assertEquals(new CorrelationKeySet("@2[1~key1],[2~key2~key3]"), - new CorrelationKeySet().add(new CorrelationKey("1", new String[] {"key1"})) - .add(new CorrelationKey("2", new String[] {"key2", "key3"}))); - assertEquals(new CorrelationKeySet("@2[1~key1],[2~key2~key3]?"), - new CorrelationKeySet().add(new CorrelationKey("1", new String[] {"key1"})) - .add(new CorrelationKey("2", new String[] {"key2", "key3"}))); - assertEquals(3, new CorrelationKeySet("@2[1~key1],[2~key2~key3]?").findSubSets().size()); - } - - @Test - public void testRoutableTo() throws Exception { - CorrelationKeySet setA = new CorrelationKeySet(); - CorrelationKeySet setB = new CorrelationKeySet(); - assertTrue(setA.isRoutableTo(setB, false)); - assertTrue(setA.isRoutableTo(setB, true)); - - setA.add(keyX); - assertTrue(setA.isRoutableTo(setB, false)); - assertTrue(setA.isRoutableTo(setB, true)); - - setB.add(keyY); - assertFalse(setA.isRoutableTo(setB, false)); - assertFalse(setA.isRoutableTo(setB, true)); - - setA.clear(); - setA.add(keyY); - assertTrue(setA.isRoutableTo(setB, false)); - assertTrue(setA.isRoutableTo(setB, true)); - - CorrelationKeySet inbound = new CorrelationKeySet(); - CorrelationKeySet candidate = new CorrelationKeySet(); - candidate.add(new CorrelationKey("-1~session_key")); - assertFalse(inbound.isRoutableTo(candidate, false)); - assertTrue(inbound.isRoutableTo(candidate, true)); - - inbound.add(new CorrelationKey("-1~session_key_different")); - assertFalse(inbound.isRoutableTo(candidate, false)); - assertFalse(inbound.isRoutableTo(candidate, true)); - - inbound.clear(); - inbound.add(keyX); - inbound.add(implicit); - candidate.clear(); - candidate.add(keyX); - assertTrue(inbound.isRoutableTo(candidate, false)); - } - - @Test - public void testFindSubSets() throws Exception { - StringBuffer buf = new StringBuffer(); - for( CorrelationKeySet subSet : new CorrelationKeySet().findSubSets() ) { - if( buf.length() > 0 ) { - buf.append(","); - } - buf.append("'").append(subSet.toCanonicalString()).append("'"); - } - assertEquals("'@2'", buf.toString()); - - CorrelationKeySet keySet = new CorrelationKeySet(); - keySet.add(keyX); - keySet.add(keyY); - keySet.add(keyZ); - assertTrue(keySet.findSubSets().size() == 7); - - keySet = new CorrelationKeySet(); - keySet.add(optX); - keySet.add(optY); - keySet.add(optZ); - buf = new StringBuffer(); - for( CorrelationKeySet subSet : keySet.findSubSets() ) { - if( buf.length() > 0 ) { - buf.append(","); - } - buf.append("'").append(subSet.toCanonicalString()).append("'"); - } - assertEquals("'@2[1~a~b]','@2[2~b~c]','@2[1~a~b],[2~b~c]','@2[3~c~d]','@2[1~a~b],[3~c~d]','@2[2~b~c],[3~c~d]','@2[1~a~b],[2~b~c],[3~c~d]'", - buf.toString()); - - keySet = new CorrelationKeySet(); - keySet.add(keyX); - keySet.add(keyY); - keySet.add(optZ); - buf = new StringBuffer(); - for( CorrelationKeySet subSet : keySet.findSubSets() ) { - if( buf.length() > 0 ) { - buf.append(","); - } - buf.append("'").append(subSet.toCanonicalString()).append("'"); - } - assertEquals("'@2[1~a~b]','@2[2~b~c]','@2[1~a~b],[2~b~c]','@2[3~c~d]','@2[1~a~b],[3~c~d]','@2[2~b~c],[3~c~d]','@2[1~a~b],[2~b~c],[3~c~d]'", buf.toString()); - - keySet = new CorrelationKeySet(); - keySet.add(keyX); - keySet.add(optY); - keySet.add(optZ); - buf = new StringBuffer(); - for( CorrelationKeySet subSet : keySet.findSubSets() ) { - if( buf.length() > 0 ) { - buf.append(","); - } - buf.append("'").append(subSet.toCanonicalString()).append("'"); - } - assertEquals("'@2[1~a~b]','@2[2~b~c]','@2[1~a~b],[2~b~c]','@2[3~c~d]','@2[1~a~b],[3~c~d]','@2[2~b~c],[3~c~d]','@2[1~a~b],[2~b~c],[3~c~d]'", buf.toString()); - } + private CorrelationKey keyX = new CorrelationKey("1~a~b"); + private CorrelationKey keyY = new CorrelationKey("2~b~c"); + private CorrelationKey keyZ = new CorrelationKey("3~c~d"); + private CorrelationKey optX = new OptionalCorrelationKey("1~a~b"); + private CorrelationKey optY = new OptionalCorrelationKey("2~b~c"); + private CorrelationKey optZ = new OptionalCorrelationKey("3~c~d"); + private CorrelationKey implicit = new CorrelationKey("-1~a"); + + @Test + public void testCanonicalString() throws Exception { + CorrelationKeySet setA = new CorrelationKeySet(); + setA.add(keyX); + setA.add(optY); + assertEquals("@2[1~a~b],[2~b~c]", setA.toCanonicalString()); + } + + @Test + public void testContainsAll() throws Exception { + CorrelationKeySet setA = new CorrelationKeySet(); + CorrelationKeySet setB = new CorrelationKeySet(); + assertTrue(setA.containsAll(setB)); + + setA.add(keyX); + assertTrue(setA.containsAll(setB)); + + setB.add(keyY); + assertFalse(setA.containsAll(setB)); + + setA.clear(); + setA.add(keyY); + assertTrue(setA.containsAll(setB)); + } + + @Test + public void testRestoreFromCanonicalForm() throws Exception { + assertEquals(new CorrelationKeySet(null), new CorrelationKeySet()); + assertEquals(new CorrelationKeySet(""), new CorrelationKeySet()); + + assertEquals(new CorrelationKeySet("-1~session_key"), + new CorrelationKeySet().add(new CorrelationKey("-1", new String[] {"session_key"}))); + assertEquals(new CorrelationKeySet("1~key1~key2"), + new CorrelationKeySet().add(new CorrelationKey("1", new String[] {"key1", "key2"}))); + + assertEquals(new CorrelationKeySet("@2"), new CorrelationKeySet()); + assertEquals(new CorrelationKeySet("@2[-1~session_key]"), + new CorrelationKeySet().add(new CorrelationKey("-1", new String[] {"session_key"}))); + assertEquals(new CorrelationKeySet("@2[1~key1~key2]"), + new CorrelationKeySet().add(new CorrelationKey("1", new String[] {"key1", "key2"}))); + assertEquals(new CorrelationKeySet("@2[1~key1],[2~key2~key3]"), + new CorrelationKeySet().add(new CorrelationKey("1", new String[] {"key1"})) + .add(new CorrelationKey("2", new String[] {"key2", "key3"}))); + assertEquals(new CorrelationKeySet("@2[1~key1],[2~key2~key3]?"), + new CorrelationKeySet().add(new CorrelationKey("1", new String[] {"key1"})) + .add(new CorrelationKey("2", new String[] {"key2", "key3"}))); + assertEquals(3, new CorrelationKeySet("@2[1~key1],[2~key2~key3]?").findSubSets().size()); + } + + @Test + public void testRoutableTo() throws Exception { + CorrelationKeySet setA = new CorrelationKeySet(); + CorrelationKeySet setB = new CorrelationKeySet(); + assertTrue(setA.isRoutableTo(setB, false)); + assertTrue(setA.isRoutableTo(setB, true)); + + setA.add(keyX); + assertTrue(setA.isRoutableTo(setB, false)); + assertTrue(setA.isRoutableTo(setB, true)); + + setB.add(keyY); + assertFalse(setA.isRoutableTo(setB, false)); + assertFalse(setA.isRoutableTo(setB, true)); + + setA.clear(); + setA.add(keyY); + assertTrue(setA.isRoutableTo(setB, false)); + assertTrue(setA.isRoutableTo(setB, true)); + + CorrelationKeySet inbound = new CorrelationKeySet(); + CorrelationKeySet candidate = new CorrelationKeySet(); + candidate.add(new CorrelationKey("-1~session_key")); + assertFalse(inbound.isRoutableTo(candidate, false)); + assertTrue(inbound.isRoutableTo(candidate, true)); + + inbound.add(new CorrelationKey("-1~session_key_different")); + assertFalse(inbound.isRoutableTo(candidate, false)); + assertFalse(inbound.isRoutableTo(candidate, true)); + + inbound.clear(); + inbound.add(keyX); + inbound.add(implicit); + candidate.clear(); + candidate.add(keyX); + assertTrue(inbound.isRoutableTo(candidate, false)); + } + + @Test + public void testFindSubSets() throws Exception { + StringBuffer buf = new StringBuffer(); + for( CorrelationKeySet subSet : new CorrelationKeySet().findSubSets() ) { + if( buf.length() > 0 ) { + buf.append(","); + } + buf.append("'").append(subSet.toCanonicalString()).append("'"); + } + assertEquals("'@2'", buf.toString()); + + CorrelationKeySet keySet = new CorrelationKeySet(); + keySet.add(keyX); + keySet.add(keyY); + keySet.add(keyZ); + assertTrue(keySet.findSubSets().size() == 7); + + keySet = new CorrelationKeySet(); + keySet.add(optX); + keySet.add(optY); + keySet.add(optZ); + buf = new StringBuffer(); + for( CorrelationKeySet subSet : keySet.findSubSets() ) { + if( buf.length() > 0 ) { + buf.append(","); + } + buf.append("'").append(subSet.toCanonicalString()).append("'"); + } + assertEquals("'@2[1~a~b]','@2[2~b~c]','@2[1~a~b],[2~b~c]','@2[3~c~d]','@2[1~a~b],[3~c~d]','@2[2~b~c],[3~c~d]','@2[1~a~b],[2~b~c],[3~c~d]'", + buf.toString()); + + keySet = new CorrelationKeySet(); + keySet.add(keyX); + keySet.add(keyY); + keySet.add(optZ); + buf = new StringBuffer(); + for( CorrelationKeySet subSet : keySet.findSubSets() ) { + if( buf.length() > 0 ) { + buf.append(","); + } + buf.append("'").append(subSet.toCanonicalString()).append("'"); + } + assertEquals("'@2[1~a~b]','@2[2~b~c]','@2[1~a~b],[2~b~c]','@2[3~c~d]','@2[1~a~b],[3~c~d]','@2[2~b~c],[3~c~d]','@2[1~a~b],[2~b~c],[3~c~d]'", buf.toString()); + + keySet = new CorrelationKeySet(); + keySet.add(keyX); + keySet.add(optY); + keySet.add(optZ); + buf = new StringBuffer(); + for( CorrelationKeySet subSet : keySet.findSubSets() ) { + if( buf.length() > 0 ) { + buf.append(","); + } + buf.append("'").append(subSet.toCanonicalString()).append("'"); + } + assertEquals("'@2[1~a~b]','@2[2~b~c]','@2[1~a~b],[2~b~c]','@2[3~c~d]','@2[1~a~b],[3~c~d]','@2[2~b~c],[3~c~d]','@2[1~a~b],[2~b~c],[3~c~d]'", buf.toString()); + } }
