package com.insightfullogic.java8.examples.chapter8; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import java.io.InputStreamReader; import java.util.Collection; import java.util.List; import static com.insightfullogic.java8.examples.chapter8.DependencyInversionPrinciple.HeadingFinder; import static java.util.Arrays.asList; import static org.junit.Assert.assertEquals; @RunWith(Parameterized.class) public class DependencyInversionPrincipleTest { private final HeadingFinder finder; @Parameterized.Parameters public static Collection<Object[]> data() { Object[][] data = new Object[][]{{new DependencyInversionPrinciple.NoDIP()}, {new DependencyInversionPrinciple.ExtractedDIP()}}; return asList(data); } public DependencyInversionPrincipleTest(HeadingFinder finder) { this.finder = finder; } @Test public void correctHeadings() { InputStreamReader reader = new InputStreamReader(getClass().getResourceAsStream("test_file")); List<String> headings = finder.findHeadings(reader); assertEquals(asList("Improve Content", "Cleanup", "Add Content", "Add to Streams Chapter"), headings); } }