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)); } }