Skip to content
This repository was archived by the owner on May 26, 2023. It is now read-only.

Commit 48c0761

Browse files
author
Timothy G. Rundle
committed
LizardReportParser Unit Test exposing issue with space in folder and/or file names
1 parent 195533f commit 48c0761

File tree

2 files changed

+122
-0
lines changed

2 files changed

+122
-0
lines changed
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
package com.backelite.sonarqube.swift;
2+
3+
import com.backelite.sonarqube.swift.complexity.LizardReportParser;
4+
import org.junit.Test;
5+
import org.junit.runner.RunWith;
6+
import org.mockito.ArgumentCaptor;
7+
import org.mockito.Captor;
8+
import org.mockito.Mock;
9+
import org.mockito.runners.MockitoJUnitRunner;
10+
import org.sonar.api.batch.fs.*;
11+
import org.sonar.api.batch.measure.Metric;
12+
import org.sonar.api.batch.sensor.SensorContext;
13+
import org.sonar.api.batch.sensor.measure.NewMeasure;
14+
15+
import java.io.File;
16+
import java.util.Arrays;
17+
18+
import static org.junit.Assert.assertEquals;
19+
import static org.mockito.Mockito.when;
20+
21+
@RunWith(MockitoJUnitRunner.class)
22+
public class LizardReportParserTest {
23+
24+
@Mock
25+
SensorContext sensorContext;
26+
27+
@Mock
28+
FileSystem fileSystem;
29+
30+
@Mock
31+
FilePredicates filePredicates;
32+
33+
@Mock
34+
FilePredicate filePredicate;
35+
36+
@Mock
37+
InputFile inputFile;
38+
39+
@Mock
40+
NewMeasure<Integer> newMeasure;
41+
42+
@Captor
43+
ArgumentCaptor<String> hasRelativePathCaptor;
44+
45+
@Captor
46+
ArgumentCaptor<InputComponent> onCaptor;
47+
48+
@Captor
49+
ArgumentCaptor<Metric<Integer>> forMetricCaptor;
50+
51+
@Captor
52+
ArgumentCaptor<Integer> withValueCaptor;
53+
54+
55+
@Test
56+
public void parseSimpleFile() {
57+
58+
LizardReportParser parser = new LizardReportParser(sensorContext);
59+
File xmlFile = new File("src/test/resources/lizard-report.xml");
60+
61+
when(sensorContext.<Integer>newMeasure()).thenReturn(newMeasure);
62+
when(newMeasure.on(onCaptor.capture())).thenReturn(newMeasure);
63+
when(newMeasure.forMetric(forMetricCaptor.capture())).thenReturn(newMeasure);
64+
when(newMeasure.withValue(withValueCaptor.capture())).thenReturn(newMeasure);
65+
66+
when(sensorContext.fileSystem()).thenReturn(fileSystem);
67+
when(fileSystem.predicates()).thenReturn(filePredicates);
68+
when(filePredicates.hasRelativePath(hasRelativePathCaptor.capture())).thenReturn(filePredicate);
69+
when(fileSystem.hasFiles(filePredicate)).thenReturn(true);
70+
when(fileSystem.inputFile(filePredicate)).thenReturn(inputFile);
71+
72+
parser.parseReport(xmlFile);
73+
74+
assertEquals(5, onCaptor.getAllValues().size());
75+
assertEquals(5, forMetricCaptor.getAllValues().size());
76+
77+
assertEquals(Arrays.asList(1, 4, 8, 5, 46), withValueCaptor.getAllValues());
78+
assertEquals(Arrays.asList("./Folder With Space/File With Space.swift"), hasRelativePathCaptor.getAllValues());
79+
}
80+
81+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<?xml version="1.0" ?>
2+
<?xml-stylesheet type="text/xsl" href="https://raw.githubusercontent.com/terryyin/lizard/master/lizard.xsl"?>
3+
<cppncss>
4+
<measure type="Function">
5+
<labels>
6+
<label>Nr.</label>
7+
<label>NCSS</label>
8+
<label>CCN</label>
9+
</labels>
10+
<item name="methodName(...) at ./Folder With Space/File With Space.swift:14">
11+
<value>1</value>
12+
<value>4</value>
13+
<value>1</value>
14+
</item>
15+
<average label="NCSS" value="8"/>
16+
<average label="CCN" value="1"/>
17+
</measure>
18+
<measure type="File">
19+
<labels>
20+
<label>Nr.</label>
21+
<label>NCSS</label>
22+
<label>CCN</label>
23+
<label>Functions</label>
24+
</labels>
25+
<item name="./Folder With Space/File With Space.swift">
26+
<value>1</value>
27+
<value>46</value>
28+
<value>8</value>
29+
<value>5</value>
30+
</item>
31+
<average label="NCSS" value="80"/>
32+
<average label="CCN" value="13"/>
33+
<average label="Functions" value="5"/>
34+
<sum label="NCSS" value="19537"/>
35+
<sum label="CCN" value="3194"/>
36+
<sum label="Functions" value="1420"/>
37+
<average label="NCSS" value="13"/>
38+
<average label="CCN" value="2"/>
39+
</measure>
40+
</cppncss>
41+

0 commit comments

Comments
 (0)