package configuration.bpel; import java.util.Arrays; import java.util.List; import betsy.bpel.model.BPELTestCase; import pebl.benchmark.feature.Feature; import pebl.benchmark.feature.FeatureSet; import pebl.benchmark.test.Test; import pebl.benchmark.test.assertions.AssertExit; class PatternProcesses { public static final FeatureSet WCP01 = new FeatureSet(Groups.CFPATTERNS, "WCP01_Sequence"); public static final FeatureSet WCP02 = new FeatureSet(Groups.CFPATTERNS, "WCP02_ParallelSplit"); public static final FeatureSet WCP03 = new FeatureSet(Groups.CFPATTERNS, "WCP03_Synchronization"); public static final FeatureSet WCP04 = new FeatureSet(Groups.CFPATTERNS, "WCP04_ExclusiveChoice"); public static final FeatureSet WCP05 = new FeatureSet(Groups.CFPATTERNS, "WCP05_SimpleMerge"); public static final FeatureSet WCP06 = new FeatureSet(Groups.CFPATTERNS, "WCP06_MultiChoice"); public static final FeatureSet WCP07 = new FeatureSet(Groups.CFPATTERNS, "WCP07_SynchronizingMerge"); public static final FeatureSet WCP11 = new FeatureSet(Groups.CFPATTERNS, "WCP11_ImplicitTermination"); public static final FeatureSet WCP12 = new FeatureSet(Groups.CFPATTERNS, "WCP12_MultipleInstancesWithoutSynchronization"); public static final FeatureSet WCP13 = new FeatureSet(Groups.CFPATTERNS, "WCP13_MultipleInstancesWithAPrioriDesignTimeKnowledge"); public static final FeatureSet WCP14 = new FeatureSet(Groups.CFPATTERNS, "WCP14_MultipleInstancesWithAPrioriRuntimeKnowledge"); public static final FeatureSet WCP16 = new FeatureSet(Groups.CFPATTERNS, "WCP16_DeferredChoice"); public static final FeatureSet WCP17 = new FeatureSet(Groups.CFPATTERNS, "WCP17_InterleavedParallelRouting"); public static final FeatureSet WCP18 = new FeatureSet(Groups.CFPATTERNS, "WCP18_Milestone"); public static final FeatureSet WCP19 = new FeatureSet(Groups.CFPATTERNS, "WCP19_CancelActivity"); public static final FeatureSet WCP20 = new FeatureSet(Groups.CFPATTERNS, "WCP20_CancelCase"); public static final Test SEQUENCE_PATTERN = BPELProcessBuilder.buildPatternProcess( "WCP01-Sequence", new Feature(WCP01, "WCP01-Sequence", ""), new BPELTestCase().checkDeployment().sendSyncString(1, "1AB") ); public static final Test PARALLEL_SPLIT_PATTERN = BPELProcessBuilder.buildPatternProcess( "WCP02-ParallelSplit", new Feature(WCP02, "WCP02-ParallelSplit", ""), new BPELTestCase().checkDeployment().sendSyncString(1, "1AB") ); public static final Test SYNCHRONIZATION_PATTERN = BPELProcessBuilder.buildPatternProcess( "WCP03-Synchronization", new Feature(WCP03, "WCP03-Synchronization", ""), new BPELTestCase().checkDeployment().sendSyncString(1, "1AB") ); public static final Test EXCLUSIVE_CHOICE_PATTERN = BPELProcessBuilder.buildPatternProcess( "WCP04-ExclusiveChoice", new Feature(WCP04, "WCP04-ExclusiveChoice", ""), new BPELTestCase().checkDeployment().sendSyncString(1, "1A"), new BPELTestCase().checkDeployment().sendSyncString(11, "11B") ); public static final Test SIMPLE_MERGE_PATTERN = BPELProcessBuilder.buildPatternProcess( "WCP05-SimpleMerge", new Feature(WCP05, "WCP05-SimpleMerge", ""), new BPELTestCase().checkDeployment().sendSyncString(1, "1A"), new BPELTestCase().checkDeployment().sendSyncString(11, "11B") ); public static final Test MULTI_CHOICE_PATTERN = BPELProcessBuilder.buildPatternProcess( "WCP06-MultiChoice", new Feature(WCP06, "WCP06-MultiChoice", ""), new BPELTestCase().checkDeployment().sendSyncString(1, "AYZ"), new BPELTestCase().checkDeployment().sendSyncString(2, "ABZ"), new BPELTestCase().checkDeployment().sendSyncString(3, "ABC") ); public static final Test MULTI_CHOICE_PATTERN_PARTIAL = BPELProcessBuilder.buildPatternProcess( "WCP06-MultiChoice-Partial", new Feature(WCP06, "WCP06-MultiChoice-Partial", ""), new BPELTestCase().checkDeployment().sendSyncString(1, "AYZ"), new BPELTestCase().checkDeployment().sendSyncString(2, "ABZ"), new BPELTestCase().checkDeployment().sendSyncString(3, "ABC") ); public static final Test SYNCHRONIZING_MERGE_PATTERN = BPELProcessBuilder.buildPatternProcess( "WCP07-SynchronizingMerge", new Feature(WCP07, "WCP07-SynchronizingMerge", ""), new BPELTestCase().checkDeployment().sendSyncString(1, "AYZ"), new BPELTestCase().checkDeployment().sendSyncString(2, "ABZ"), new BPELTestCase().checkDeployment().sendSyncString(3, "ABC") ); public static final Test SYNCHRONIZING_MERGE_PATTERN_PARTIAL = BPELProcessBuilder.buildPatternProcess( "WCP07-SynchronizingMerge-Partial", new Feature(WCP07, "WCP07-SynchronizingMerge-Partial", ""), new BPELTestCase().checkDeployment().sendSyncString(1, "AYZ"), new BPELTestCase().checkDeployment().sendSyncString(2, "ABZ"), new BPELTestCase().checkDeployment().sendSyncString(3, "ABC") ); public static final Test IMPLICIT_TERMINATION_PATTERN = BPELProcessBuilder.buildPatternProcess( "WCP11-ImplicitTermination", new Feature(WCP11, "WCP11-ImplicitTermination", ""), new BPELTestCase().checkDeployment().sendSyncString(1, "1") ); public static final Test DEFERRED_CHOICE_PATTERN = BPELProcessBuilder.buildPatternProcess( "WCP16-DeferredChoice", new Feature(WCP16, "WCP16-DeferredChoice", ""), new BPELTestCase().checkDeployment().sendSync(1, 1), new BPELTestCase().checkDeployment().sendSyncString(1, "1") ); public static final Test MULTIPLE_INSTANCES_WITHOUT_SYNCHRONIZATION_PATTERN = BPELProcessBuilder.buildPatternProcessWithPartner( "WCP12-MultipleInstancesWithoutSynchronization", new Feature(WCP12, "WCP12-MultipleInstancesWithoutSynchronization", ""), new BPELTestCase().checkDeployment().buildPartnerConcurrencySetup().sendSync(1). assertConcurrencyAtPartner().assertNumberOfPartnerCalls(2), new BPELTestCase().checkDeployment().buildPartnerConcurrencySetup().sendSync(2). assertConcurrencyAtPartner().assertNumberOfPartnerCalls(3) ); public static final Test MULTIPLE_INSTANCES_WITHOUT_SYNCHRONIZATION_PATTERN_PARTIAL = BPELProcessBuilder.buildPatternProcessWithPartner( "WCP12-MultipleInstancesWithoutSynchronization-Partial", new Feature(WCP12, "WCP12-MultipleInstancesWithoutSynchronization-Partial", ""), new BPELTestCase().checkDeployment().buildPartnerConcurrencySetup(). sendSync(100).assertConcurrencyAtPartner().assertNumberOfPartnerCalls(4) ); public static final Test MULTIPLE_INSTANCES_WITHOUT_SYNCHRONIZATION_PATTERN_SYNC = BPELProcessBuilder.buildPatternProcessWithPartner( "WCP12-MultipleInstancesWithoutSynchronization-Sync", new Feature(WCP12, "WCP12-MultipleInstancesWithoutSynchronization-Sync", ""), new BPELTestCase().checkDeployment().buildPartnerConcurrencySetup().sendSync(1). assertConcurrencyAtPartner().assertNumberOfPartnerCalls(2), new BPELTestCase().checkDeployment().buildPartnerConcurrencySetup().sendSync(2). assertConcurrencyAtPartner().assertNumberOfPartnerCalls(3) ); public static final Test MULTIPLE_INSTANCES_WITHOUT_SYNCHRONIZATION_PATTERN_SYNC_PARTIAL = BPELProcessBuilder.buildPatternProcessWithPartner( "WCP12-MultipleInstancesWithoutSynchronization-Sync-Partial", new Feature(WCP12, "WCP12-MultipleInstancesWithoutSynchronization-Sync-Partial", ""), new BPELTestCase().checkDeployment().buildPartnerConcurrencySetup(). sendSync(100).assertConcurrencyAtPartner().assertNumberOfPartnerCalls(4) ); public static final Test MULTIPLE_INSTANCES_WITHOUT_SYNCHRONIZATION_PATTERN_WHILE_PARTIAL = BPELProcessBuilder.buildPatternProcessWithPartner( "WCP12-MultipleInstancesWithoutSynchronization-While-Partial", new Feature(WCP12, "WCP12-MultipleInstancesWithoutSynchronization-While-Partial", ""), new BPELTestCase().checkDeployment().sendSync(1, 1), new BPELTestCase().checkDeployment().sendSync(2, 2) ); public static final Test MULTIPLE_INSTANCES_WITHOUT_SYNCHRONIZATION_PATTERN_WHILE_SYNC_PARTIAL = BPELProcessBuilder.buildPatternProcessWithPartner( "WCP12-MultipleInstancesWithoutSynchronization-While-Sync-Partial", new Feature(WCP12, "WCP12-MultipleInstancesWithoutSynchronization-While-Sync-Partial", ""), new BPELTestCase().checkDeployment().sendSync(1, 1), new BPELTestCase().checkDeployment().sendSync(2, 2) ); public static final Test MULTIPLE_INSTANCES_WITH_A_PRIORI_DESGIN_TIME_KNOWLEDGE_PATTERN_PARTIAL = BPELProcessBuilder.buildPatternProcessWithPartner( "WCP13-MultipleInstancesWithAPrioriDesignTimeKnowledge-Partial", new Feature(WCP13, "WCP13-MultipleInstancesWithAPrioriDesignTimeKnowledge-Partial", ""), new BPELTestCase().checkDeployment().buildPartnerConcurrencySetup().sendSync(100). assertConcurrencyAtPartner().assertNumberOfPartnerCalls(4) ); public static final Test MULTIPLE_INSTANCES_WITH_A_PRIORI_DESGIN_TIME_KNOWLEDGE_PATTERN = BPELProcessBuilder.buildPatternProcessWithPartner( "WCP13-MultipleInstancesWithAPrioriDesignTimeKnowledge", new Feature(WCP13, "WCP13-MultipleInstancesWithAPrioriDesignTimeKnowledge", ""), new BPELTestCase().checkDeployment().buildPartnerConcurrencySetup().sendSync(1). assertConcurrencyAtPartner().assertNumberOfPartnerCalls(4), new BPELTestCase().checkDeployment().buildPartnerConcurrencySetup().sendSync(2). assertConcurrencyAtPartner().assertNumberOfPartnerCalls(4) ); public static final Test MULTIPLE_INSTANCES_WITH_A_PRIORI_RUNTIME_KNOWLEDGE_PATTERN = BPELProcessBuilder.buildPatternProcessWithPartner( "WCP14-MultipleInstancesWithAPrioriRuntimeKnowledge", new Feature(WCP14, "WCP14-MultipleInstancesWithAPrioriRuntimeKnowledge", ""), new BPELTestCase().checkDeployment().buildPartnerConcurrencySetup().sendSync(1). assertConcurrencyAtPartner().assertNumberOfPartnerCalls(2), new BPELTestCase().checkDeployment().buildPartnerConcurrencySetup().sendSync(2). assertConcurrencyAtPartner().assertNumberOfPartnerCalls(3) ); public static final Test CANCEL_ACTIVITY_PATTERN = BPELProcessBuilder.buildPatternProcess( "WCP19-CancelActivity", new Feature(WCP19, "WCP19-CancelActivity", ""), new BPELTestCase().checkDeployment().sendSyncString(1, "1A"), new BPELTestCase().checkDeployment().sendSyncString(0, "0B") ); public static final Test CANCEL_CASE_PATTERN = BPELProcessBuilder.buildPatternProcess( "WCP20-CancelCase", new Feature(WCP20, "WCP20-CancelCase", ""), new BPELTestCase().checkDeployment().sendSyncString(1, "1"), new BPELTestCase().checkDeployment().sendSyncString(0, new AssertExit()) ); public static final Test MILESTONE_PATTERN = BPELProcessBuilder.buildPatternProcess( "WCP18-Milestone", new Feature(WCP18, "WCP18-Milestone", ""), new BPELTestCase("PickAsyncMessage").checkDeployment().sendSync(1, 1).sendAsync(1).sendSyncString(1, "8"), new BPELTestCase("Pick3sTimeout").checkDeployment().sendSync(1, 1).waitFor(4_000).sendSyncString(1, "9") ); public static final Test INTERLEAVED_PARALLEL_ROUTING_PATTERN = BPELProcessBuilder.buildPatternProcess( "WCP17-InterleavedParallelRouting", new Feature(WCP17, "WCP17-InterleavedParallelRouting", ""), new BPELTestCase().checkDeployment().sendSyncString(1, "AW1ABW2B") ); public static final List<Test> CONTROL_FLOW_PATTERNS = Arrays.asList( SEQUENCE_PATTERN, PARALLEL_SPLIT_PATTERN, SYNCHRONIZATION_PATTERN, EXCLUSIVE_CHOICE_PATTERN, SIMPLE_MERGE_PATTERN, MULTI_CHOICE_PATTERN, MULTI_CHOICE_PATTERN_PARTIAL, SYNCHRONIZING_MERGE_PATTERN, SYNCHRONIZING_MERGE_PATTERN_PARTIAL, IMPLICIT_TERMINATION_PATTERN, DEFERRED_CHOICE_PATTERN, MULTIPLE_INSTANCES_WITHOUT_SYNCHRONIZATION_PATTERN, MULTIPLE_INSTANCES_WITHOUT_SYNCHRONIZATION_PATTERN_PARTIAL, MULTIPLE_INSTANCES_WITHOUT_SYNCHRONIZATION_PATTERN_SYNC, MULTIPLE_INSTANCES_WITHOUT_SYNCHRONIZATION_PATTERN_SYNC_PARTIAL, MULTIPLE_INSTANCES_WITHOUT_SYNCHRONIZATION_PATTERN_WHILE_PARTIAL, MULTIPLE_INSTANCES_WITHOUT_SYNCHRONIZATION_PATTERN_WHILE_SYNC_PARTIAL, MULTIPLE_INSTANCES_WITH_A_PRIORI_DESGIN_TIME_KNOWLEDGE_PATTERN, MULTIPLE_INSTANCES_WITH_A_PRIORI_DESGIN_TIME_KNOWLEDGE_PATTERN_PARTIAL, MULTIPLE_INSTANCES_WITH_A_PRIORI_RUNTIME_KNOWLEDGE_PATTERN, CANCEL_ACTIVITY_PATTERN, CANCEL_CASE_PATTERN, MILESTONE_PATTERN, INTERLEAVED_PARALLEL_ROUTING_PATTERN ); }