Skip to content

Commit cc40b41

Browse files
author
Julien NICOL
committed
Issue 2302 : Reproducing the issue using unit tests
1 parent b6a8f3a commit cc40b41

File tree

2 files changed

+44
-1
lines changed

2 files changed

+44
-1
lines changed

cxx-sensors/src/test/java/org/sonar/cxx/sensors/tests/xunit/XunitReportParserTest.java

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,17 @@
1919
*/
2020
package org.sonar.cxx.sensors.tests.xunit;
2121

22+
import static org.junit.Assert.assertEquals;
23+
import static org.assertj.core.api.Assertions.assertThat;
24+
2225
import java.io.File;
26+
import java.nio.file.Path;
27+
import java.nio.file.Paths;
2328
import java.util.TreeMap;
24-
import static org.junit.Assert.assertEquals;
29+
import java.util.stream.Collectors;
30+
import java.util.stream.Stream;
31+
32+
import org.assertj.core.util.Strings;
2533
import org.junit.Test;
2634
import org.sonar.cxx.sensors.utils.StaxParser;
2735
import org.sonar.cxx.sensors.utils.TestUtils;
@@ -68,4 +76,27 @@ public void shouldThrowWhenGivenInvalidTime() throws javax.xml.stream.XMLStreamE
6876
parser.parse(report);
6977
}
7078

79+
@Test
80+
public void testFilePaths() throws javax.xml.stream.XMLStreamException {
81+
parserHandler = new XunitReportParser("");
82+
parser = new StaxParser(parserHandler, false);
83+
File report = TestUtils.loadResource(pathPrefix + "xunit-result-SAMPLE-inconsistent-case.xml");
84+
parser.parse(report);
85+
86+
var actualPaths = parserHandler.getTestFiles()
87+
.stream()
88+
.map(TestFile::getFilename)
89+
.filter(p -> !Strings.isNullOrEmpty(p))
90+
.map(s -> Paths.get(s))
91+
.collect(Collectors.toList());
92+
93+
var expectPaths = Stream.of(
94+
Paths.get("/test/file.cpp"),
95+
Paths.get("/test/File.cpp"),
96+
Paths.get("/TEST/file.cpp"))
97+
.distinct()
98+
.toArray(n -> new Path[n]);
99+
100+
assertThat(actualPaths).containsExactlyInAnyOrder(expectPaths);
101+
}
71102
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<testsuite errors="0" failures="0" tests="3" name="SAMPLEtest">
3+
<properties>
4+
<property value="4.6.2" name="QTestVersion"/>
5+
<property value="4.6.2" name="QtVersion"/>
6+
</properties>
7+
<testcase result="pass" name="initTestCase" filename="test/file.cpp" />
8+
<testcase result="pass" name="testCase1" filename="test/File.cpp" />
9+
<testcase result="pass" name="testCase2" filename="test/File.cpp" />
10+
<testcase result="pass" name="cleanupTestCase" filename="TEST/file.cpp" />
11+
<system-err/>
12+
</testsuite>

0 commit comments

Comments
 (0)