47 import static org.testng.Assert.assertTrue; 48 import static org.testng.Assert.assertEquals; 49 50 public class DotFileTest { 51 private static final ToolProvider JDEPS = ToolProvider.findFirst("jdeps") 52 .orElseThrow(() -> new RuntimeException("jdeps not found")); 53 54 private static final Path DOTS_DIR = Paths.get("dots"); 55 private static final Path SPEC_DIR = Paths.get("spec"); 56 57 @DataProvider(name = "modules") 58 public Object[][] modules() { 59 return new Object[][]{ 60 {"java.desktop", Set.of("java.datatransfer -> java.base", 61 "java.desktop -> java.datatransfer", 62 "java.desktop -> java.prefs", 63 "java.prefs -> java.xml", 64 "java.xml -> java.base" ) 65 }, 66 { "java.sql", Set.of("java.logging -> java.base", 67 "java.sql -> java.logging", 68 "java.sql -> java.xml", 69 "java.xml -> java.base" ) 70 } 71 }; 72 } 73 @DataProvider(name = "specVersion") 74 public Object[][] specVersion() { 75 return new Object[][]{ 76 {"java.desktop", Set.of("java.datatransfer -> java.base", 77 "java.desktop -> java.datatransfer", 78 "java.desktop -> java.xml", 79 "java.xml -> java.base") 80 }, 81 { "java.sql", Set.of("java.logging -> java.base", 82 "java.sql -> java.logging", 83 "java.sql -> java.xml", 84 "java.xml -> java.base" ) 85 } 86 }; 87 } 88 89 @Test(dataProvider = "modules") 90 public void test(String name, Set<String> edges) throws Exception { 91 String[] options = new String[] { 92 "-dotoutput", DOTS_DIR.toString(), 93 "-s", "-m", name 94 }; 95 assertTrue(JDEPS.run(System.out, System.out, options) == 0); 96 97 Path path = DOTS_DIR.resolve(name + ".dot"); 98 assertTrue(Files.exists(path)); 99 Set<String> lines = Files.readAllLines(path).stream() 100 .filter(l -> l.contains(" -> ")) 101 .map(this::split) 102 .collect(Collectors.toSet()); | 47 import static org.testng.Assert.assertTrue; 48 import static org.testng.Assert.assertEquals; 49 50 public class DotFileTest { 51 private static final ToolProvider JDEPS = ToolProvider.findFirst("jdeps") 52 .orElseThrow(() -> new RuntimeException("jdeps not found")); 53 54 private static final Path DOTS_DIR = Paths.get("dots"); 55 private static final Path SPEC_DIR = Paths.get("spec"); 56 57 @DataProvider(name = "modules") 58 public Object[][] modules() { 59 return new Object[][]{ 60 {"java.desktop", Set.of("java.datatransfer -> java.base", 61 "java.desktop -> java.datatransfer", 62 "java.desktop -> java.prefs", 63 "java.prefs -> java.xml", 64 "java.xml -> java.base" ) 65 }, 66 { "java.sql", Set.of("java.logging -> java.base", 67 "java.transaction.xa -> java.base", 68 "java.sql -> java.logging", 69 "java.sql -> java.transaction.xa", 70 "java.sql -> java.xml", 71 "java.xml -> java.base" ) 72 } 73 }; 74 } 75 @DataProvider(name = "specVersion") 76 public Object[][] specVersion() { 77 return new Object[][]{ 78 {"java.desktop", Set.of("java.datatransfer -> java.base", 79 "java.desktop -> java.datatransfer", 80 "java.desktop -> java.xml", 81 "java.xml -> java.base") 82 }, 83 { "java.sql", Set.of("java.logging -> java.base", 84 "java.transaction.xa -> java.base", 85 "java.sql -> java.logging", 86 "java.sql -> java.transaction.xa", 87 "java.sql -> java.xml", 88 "java.xml -> java.base" ) 89 } 90 }; 91 } 92 93 @Test(dataProvider = "modules") 94 public void test(String name, Set<String> edges) throws Exception { 95 String[] options = new String[] { 96 "-dotoutput", DOTS_DIR.toString(), 97 "-s", "-m", name 98 }; 99 assertTrue(JDEPS.run(System.out, System.out, options) == 0); 100 101 Path path = DOTS_DIR.resolve(name + ".dot"); 102 assertTrue(Files.exists(path)); 103 Set<String> lines = Files.readAllLines(path).stream() 104 .filter(l -> l.contains(" -> ")) 105 .map(this::split) 106 .collect(Collectors.toSet()); |