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