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.IOException;
28 import java.nio.file.Path;
29
30 import javax.xml.stream.XMLStreamException;
31 import javax.xml.stream.XMLStreamReader;
32
33 import org.eluder.coveralls.maven.plugin.ProcessingException;
34 import org.eluder.coveralls.maven.plugin.source.SourceCallback;
35 import org.eluder.coveralls.maven.plugin.source.SourceLoader;
36 import org.eluder.coveralls.maven.plugin.util.TestIoUtil;
37 import org.junit.jupiter.api.Assertions;
38 import org.junit.jupiter.api.Test;
39 import org.mockito.Mockito;
40
41
42
43
44 class AbstractXmlEventParserTest {
45
46
47
48
49
50
51
52 @Test
53 void parseMalformedXmlThrowsProcessingException() throws IOException {
54 final var sourceLoader = Mockito.mock(SourceLoader.class);
55 final var callback = Mockito.mock(SourceCallback.class);
56
57 final var parser = new JaCoCoParser(TestIoUtil.getFile("malformed.xml"), sourceLoader);
58
59 Assertions.assertThrows(ProcessingException.class, () -> parser.parse(callback));
60 }
61
62
63
64
65 @Test
66 void parseThrowsProcessingExceptionOnXmlStreamError() throws IOException {
67 final var sourceLoader = Mockito.mock(SourceLoader.class);
68 final var callback = Mockito.mock(SourceCallback.class);
69
70 final var parser = new AbstractXmlEventParser(TestIoUtil.getFile("jacoco1.xml"), sourceLoader) {
71 @Override
72 protected void onEvent(final XMLStreamReader xml, final SourceCallback cb)
73 throws XMLStreamException, ProcessingException, IOException {
74 throw new XMLStreamException("Simulated XMLStreamException");
75 }
76 };
77
78 Assertions.assertThrows(ProcessingException.class, () -> parser.parse(callback));
79 }
80
81
82
83
84 @Test
85 void parseNonExistentFileThrowsIoException() {
86 final var sourceLoader = Mockito.mock(SourceLoader.class);
87 final var callback = Mockito.mock(SourceCallback.class);
88
89 final var nonExistentFile = Path.of("/non/existent/path/coverage.xml").toFile();
90 final var parser = new AbstractXmlEventParser(nonExistentFile, sourceLoader) {
91 @Override
92 protected void onEvent(final XMLStreamReader xml, final SourceCallback cb)
93 throws XMLStreamException, ProcessingException, IOException {
94
95 }
96 };
97
98 Assertions.assertThrows(IOException.class, () -> parser.parse(callback));
99 }
100
101 }