Skip to content

Instantly share code, notes, and snippets.

@gdeachaval
Created September 15, 2017 03:01
Show Gist options
  • Save gdeachaval/6190e9cd86b2c7a1356297cce3d4995c to your computer and use it in GitHub Desktop.
Save gdeachaval/6190e9cd86b2c7a1356297cce3d4995c to your computer and use it in GitHub Desktop.
Parametrized Testing
@RunWith(Parameterized.class)
public class SorterTest extends AbstractSorterTest {
@Override
protected DataSetGenerator<String> createStringDataSetGenerator() {
return new StringDataSetGenerator();
}
@Override
protected DataSetGenerator<Integer> createIntegerDataSetGenerator() {
return new IntegerDataSetGenerator();
}
@Override
protected SorterProvider getSorterProvider() {
return new SorterProviderImpl();
}
@Parameter public Sorter sorter;
@Test public void testSorter() {
testSorter(createIntegerDataSetGenerator(), sorter.getType(), 100);
testSorter(createIntegerDataSetGenerator(), sorter.getType(), 1000);
testSorter(createStringDataSetGenerator(), sorter.getType(), 10);
testSorter(createStringDataSetGenerator(), sorter.getType(), 100);
}
@NotNull private static Iterable<Sorter> getAllSorters() {
return new SorterProviderImpl().getAllSorters();
}
@Parameters(name = "Sorter {0}")
public static List<Object[]> sorters() {
return toStream(getAllSorters())
.map(SorterTest::toObjectArray).collect(toList());
}
private static Object[] toObjectArray(Object element) {
return new Object[] { element };
}
@NotNull private static <T> Stream<T> toStream(Iterable<T> iterable) {
return Arrays.stream(Iterables.toArray(iterable));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment