package com.thoughtworks.gauge;
import junit.framework.TestCase;
import java.util.Arrays;
import java.util.List;
public class ExecutionContextTest extends TestCase {
public void testGettingAllScenarioAndSpecTags() throws Exception {
String tag1 = "tag1";
String tag2 = "tag2";
String tag3 = "tag3";
String tag4 = "tag4";
String tag5 = "tag5";
ExecutionContext executionContext = new ExecutionContext(specWithTags(tag1, tag2), scenarioWithTags(tag3, tag4, tag5), new StepDetails());
List<String> allTags = executionContext.getAllTags();
assertEquals(5, allTags.size());
assertTrue(allTags.contains(tag1));
assertTrue(allTags.contains(tag2));
assertTrue(allTags.contains(tag3));
assertTrue(allTags.contains(tag4));
assertTrue(allTags.contains(tag5));
}
public void testGettingAllScenarioAndSpecTagsWhenOnlySpecTagsPresent() throws Exception {
String tag1 = "tag1";
String tag2 = "tag2";
String tag3 = "tag3";
ExecutionContext executionContext = new ExecutionContext(specWithTags(tag1, tag2, tag3, tag3), new Scenario(), new StepDetails());
List<String> allTags = executionContext.getAllTags();
assertEquals(3, allTags.size());
assertTrue(allTags.contains(tag1));
assertTrue(allTags.contains(tag2));
assertTrue(allTags.contains(tag3));
}
public void testGettingAllScenarioAndSpecTagsWhenOnlyScenarioTagsPresent() throws Exception {
String tag2 = "tag2";
String tag3 = "tag3";
ExecutionContext executionContext = new ExecutionContext(new Specification(), scenarioWithTags(tag3, tag2, tag3), new StepDetails());
List<String> allTags = executionContext.getAllTags();
assertEquals(2, allTags.size());
assertTrue(allTags.contains(tag2));
assertTrue(allTags.contains(tag3));
}
private Specification specWithTags(String... tags) {
List<String> tagsList = Arrays.asList(tags);
return new Specification("foo", "foo.spec", false, tagsList);
}
private Scenario scenarioWithTags(String... tags) {
List<String> tagsList = Arrays.asList(tags);
return new Scenario("foo", false, tagsList);
}
}