1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 package org.eluder.coveralls.maven.plugin.source;
25
26 import static org.junit.jupiter.api.Assertions.assertEquals;
27 import static org.junit.jupiter.api.Assertions.assertNull;
28 import static org.junit.jupiter.api.Assertions.assertThrows;
29
30 import java.io.File;
31 import java.io.IOException;
32 import java.nio.file.Files;
33 import java.nio.file.Path;
34
35 import org.eluder.coveralls.maven.plugin.domain.Source;
36 import org.eluder.coveralls.maven.plugin.util.TestIoUtil;
37 import org.junit.jupiter.api.Test;
38 import org.junit.jupiter.api.io.CleanupMode;
39 import org.junit.jupiter.api.io.TempDir;
40
41 class ScanSourceLoaderTest {
42
43 @TempDir(cleanup = CleanupMode.ON_SUCCESS)
44 public Path folder;
45
46 @Test
47 void testMissingSourceFileFromDirectory() throws IOException {
48 ScanSourceLoader sourceLoader = new ScanSourceLoader(folder.toFile(), folder.toFile(), "UTF-8");
49 assertNull(sourceLoader.load("Foo.java"));
50 }
51
52 @Test
53 void testInvalidSourceFile() throws IOException {
54 File subFolder = Files.createDirectory(folder.resolve("subFolder")).toFile();
55 ScanSourceLoader sourceLoader = new ScanSourceLoader(folder.toFile(), folder.toFile(), "UTF-8");
56 assertThrows(IllegalArgumentException.class, () -> {
57 sourceLoader.load(subFolder.getName());
58 });
59 }
60
61 @Test
62 void testLoadSource() throws IOException {
63 Path level1 = Files.createDirectory(folder.resolve("level1"));
64 Path level2 = Files.createDirectory(level1.resolve("level2"));
65 Path level3 = Files.createDirectory(level2.resolve("level3"));
66 File fileA = Files.createFile(level3.resolve("AFile.java")).toFile();
67 File fileB = Files.createFile(level3.resolve("BFile.java")).toFile();
68 TestIoUtil.writeFileContent("public class Foo {\r\n \n}\r", fileA);
69 TestIoUtil.writeFileContent("public class Foo {\r\n \n}\r", fileB);
70 ScanSourceLoader sourceLoader = new ScanSourceLoader(folder.toFile(), folder.toFile(), "UTF-8");
71 Source sourceA = sourceLoader.load(fileA.getName());
72 assertEquals("level1" + File.separator + "level2" + File.separator + "level3" + File.separator + "AFile.java", sourceA.getName());
73 assertEquals("27F0B29785725F4946DBD05F7963E507B8DB735C2803BBB80C93ECB02291B2E2F9B03CBF27526DB68B6A862F1C6541275CD413A1CCD3E07209B9CAE0C04163C6", sourceA.getDigest());
74 assertEquals(4, sourceA.getCoverage().length);
75 Source sourceB = sourceLoader.load(fileB.getName());
76 assertEquals("level1" + File.separator + "level2" + File.separator + "level3" + File.separator + "BFile.java", sourceB.getName());
77 assertEquals("27F0B29785725F4946DBD05F7963E507B8DB735C2803BBB80C93ECB02291B2E2F9B03CBF27526DB68B6A862F1C6541275CD413A1CCD3E07209B9CAE0C04163C6", sourceB.getDigest());
78 assertEquals(4, sourceB.getCoverage().length);
79 }
80 }