1 package autotest.tko; 2 3 import autotest.common.Utils; 4 5 import com.google.gwt.json.client.JSONObject; 6 7 import java.util.ArrayList; 8 import java.util.List; 9 10 class CompositeTestSet extends TestSet { 11 private List<TestSet> testSets = new ArrayList<TestSet>(); 12 add(TestSet tests)13 public void add(TestSet tests) { 14 testSets.add(tests); 15 } 16 17 @Override getInitialCondition()18 public JSONObject getInitialCondition() { 19 // we assume the initial condition is the same for all tests 20 assert !testSets.isEmpty(); 21 return testSets.get(0).getInitialCondition(); 22 } 23 24 @Override getPartialSqlCondition()25 public String getPartialSqlCondition() { 26 List<String> conditionParts = new ArrayList<String>(); 27 for(TestSet testSet : testSets) { 28 conditionParts.add("(" + testSet.getPartialSqlCondition() + ")"); 29 } 30 return Utils.joinStrings(" OR ", conditionParts); 31 } 32 33 @Override isSingleTest()34 public boolean isSingleTest() { 35 return testSets.size() == 1 && testSets.get(0).isSingleTest(); 36 } 37 38 @Override getTestIndex()39 public int getTestIndex() { 40 if (!isSingleTest()) { 41 throw new UnsupportedOperationException(); 42 } 43 return testSets.get(0).getTestIndex(); 44 } 45 } 46