1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 package org.eluder.coveralls.maven.plugin.parser;
26
27 import java.io.File;
28 import java.io.IOException;
29 import java.util.Arrays;
30 import java.util.List;
31
32 import org.assertj.core.api.Assertions;
33 import org.eluder.coveralls.maven.plugin.CoverageFixture;
34 import org.eluder.coveralls.maven.plugin.CoverageParser;
35 import org.eluder.coveralls.maven.plugin.ProcessingException;
36 import org.eluder.coveralls.maven.plugin.domain.Source;
37 import org.eluder.coveralls.maven.plugin.source.SourceCallback;
38 import org.eluder.coveralls.maven.plugin.source.SourceLoader;
39 import org.eluder.coveralls.maven.plugin.util.TestIoUtil;
40 import org.junit.jupiter.api.Test;
41 import org.mockito.ArgumentCaptor;
42 import org.mockito.Mockito;
43
44
45
46
47 class SagaParserTest extends AbstractCoverageParserTest {
48
49 @Override
50 protected CoverageParser createCoverageParser(final File coverageFile, final SourceLoader sourceLoader) {
51 return new SagaParser(coverageFile, sourceLoader);
52 }
53
54 @Override
55 protected List<String> getCoverageResources() {
56 return Arrays.asList("saga.xml");
57 }
58
59 @Override
60 protected List<List<String>> getCoverageFixture() {
61 return CoverageFixture.JAVASCRIPT_FILES;
62 }
63
64
65
66
67
68
69
70
71
72 @Test
73 void parseCoverageWithBranches() throws ProcessingException, IOException {
74 final var content = TestIoUtil.readFileContent(TestIoUtil.getFile("BranchScript.js"));
75 final var sourceLoader = Mockito.mock(SourceLoader.class);
76 Mockito.when(sourceLoader.load("BranchScript.js")).thenAnswer(
77 invocation -> new Source("BranchScript.js", content, TestIoUtil.getSha512DigestHex(content)));
78
79 final SourceCallback callback = Mockito.mock(SourceCallback.class);
80
81 final var parser = new SagaParser(TestIoUtil.getFile("saga-branches.xml"), sourceLoader);
82 parser.parse(callback);
83
84 final ArgumentCaptor<Source> captor = ArgumentCaptor.forClass(Source.class);
85 Mockito.verify(callback).onSource(captor.capture());
86
87 final var source = captor.getValue();
88 Assertions.assertThat(source.getName()).isEqualTo("BranchScript.js");
89
90
91
92
93 final var branches = source.getBranchesList();
94
95
96
97 final var coveredCount = branches.stream().filter(b -> b.getHits() > 0).count();
98 final var missedCount = branches.stream().filter(b -> b.getHits() == 0).count();
99 Assertions.assertThat(coveredCount).isEqualTo(3);
100 Assertions.assertThat(missedCount).isEqualTo(3);
101 }
102
103 }