package de.zalando.toga.provider;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Rule;
import org.junit.Test;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import static java.util.regex.Pattern.compile;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
public class MultipleProviderRuleTest {
@Rule
public ExampleProviderRule version1 = new ExampleProviderRule(new File("src/test/resources/provider"), compile("E1-ServiceB-1"));
@Rule
public ExampleProviderRule version2 = new ExampleProviderRule(new File("src/test/resources/provider"), compile("E1-ServiceB-2"));
private static Map<String, Integer> counts = new HashMap<>();
@BeforeClass
public static void setup() {
counts.clear();
}
@Test
public void shouldIterate() {
addToCounts(version1.getExampleJson());
addToCounts(version2.getExampleJson());
}
private void addToCounts(String example) {
Integer count = counts.containsKey(example) ? counts.get(example) : 0;
counts.put(example, count + 1);
}
@AfterClass
public static void countResults() {
int sum = counts.values().stream().mapToInt(Integer::intValue).sum();
// 3 * version 1 + 1 * each example from version 2
assertThat(sum, is(6));
}
}