1package autotest.tko; 2 3import autotest.common.Utils; 4 5import com.google.gwt.json.client.JSONObject; 6 7import java.util.ArrayList; 8import java.util.List; 9 10class CompositeTestSet extends TestSet { 11 private List<TestSet> testSets = new ArrayList<TestSet>(); 12 13 public void add(TestSet tests) { 14 testSets.add(tests); 15 } 16 17 @Override 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 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 34 public boolean isSingleTest() { 35 return testSets.size() == 1 && testSets.get(0).isSingleTest(); 36 } 37 38 @Override 39 public int getTestIndex() { 40 if (!isSingleTest()) { 41 throw new UnsupportedOperationException(); 42 } 43 return testSets.get(0).getTestIndex(); 44 } 45} 46