@@ -94,6 +94,93 @@ void shouldMarkIssuesIfFileNameUsesWindowsPath() {
9494 assertThatIssuesToString (report ).containsExactly (TO_STRING_MODIFIED , TO_STRING_MODIFIED );
9595 }
9696
97+ @ Test
98+ void shouldNotMarkAnythingForEmptySetOfFiles () {
99+ var report = createReportWithTwoIssues ();
100+
101+ assertThatModifiedCodeMarkers (report ).containsExactly (false , false );
102+
103+ var marker = new IssuesInModifiedCodeMarker ();
104+ marker .markIssuesInModifiedFiles (report , Set .of ());
105+ assertThatModifiedCodeMarkers (report ).containsExactly (false , false );
106+ assertThatIssuesToString (report ).containsExactly (TO_STRING_UNMODIFIED , TO_STRING_UNMODIFIED );
107+ }
108+
109+ @ Test
110+ void shouldNotMarkIfFileDoesNotMatch () {
111+ var report = createReportWithTwoIssues ();
112+
113+ var marker = new IssuesInModifiedCodeMarker ();
114+ marker .markIssuesInModifiedFiles (report , Set .of ("/wrong/path/code.txt" ));
115+
116+ assertThatModifiedCodeMarkers (report ).containsExactly (false , false );
117+ assertThatIssuesToString (report ).containsExactly (TO_STRING_UNMODIFIED , TO_STRING_UNMODIFIED );
118+ }
119+
120+ @ Test
121+ void shouldMarkIssuesIfOneFileMatches () {
122+ var report = createReportWithTwoIssues ();
123+
124+ var marker = new IssuesInModifiedCodeMarker ();
125+ marker .markIssuesInModifiedFiles (report , Set .of ("/part/of/modified/code.txt" ));
126+
127+ assertThatModifiedCodeMarkers (report ).containsExactly (true , false );
128+ assertThatIssuesToString (report ).containsExactly (TO_STRING_MODIFIED , TO_STRING_UNMODIFIED );
129+ }
130+
131+ @ Test
132+ void shouldMarkIssuesIfAllFilesMatch () {
133+ var report = createReportWithTwoIssues ();
134+
135+ var marker = new IssuesInModifiedCodeMarker ();
136+ marker .markIssuesInModifiedFiles (report , Set .of (
137+ "/part/of/modified/code.txt" ,
138+ "/part/of/additional/modified/code.txt" ));
139+
140+ assertThatModifiedCodeMarkers (report ).containsExactly (true , true );
141+ assertThatIssuesToString (report ).containsExactly (TO_STRING_MODIFIED , TO_STRING_MODIFIED );
142+ }
143+
144+ @ Test
145+ void shouldMarkIssuesIfFilesPrefixMatchesForFiles () {
146+ var report = createReportWithTwoIssues ();
147+
148+ var marker = new IssuesInModifiedCodeMarker ();
149+ marker .markIssuesInModifiedFiles (report , Set .of ("modified/code.txt" , "additional/modified/code.txt" ));
150+
151+ assertThatModifiedCodeMarkers (report ).containsExactly (true , true );
152+ assertThatIssuesToString (report ).containsExactly (TO_STRING_MODIFIED , TO_STRING_MODIFIED );
153+ }
154+
155+ @ Test
156+ void shouldMarkIssuesIfFileNameUsesWindowsPathForFiles () {
157+ var report = createReportWithTwoIssues ();
158+
159+ var marker = new IssuesInModifiedCodeMarker ();
160+ marker .markIssuesInModifiedFiles (report , Set .of ("modified\\ code.txt" , "additional\\ modified\\ code.txt" ));
161+
162+ assertThatModifiedCodeMarkers (report ).containsExactly (true , true );
163+ assertThatIssuesToString (report ).containsExactly (TO_STRING_MODIFIED , TO_STRING_MODIFIED );
164+ }
165+
166+ @ Test
167+ void shouldMarkAllIssuesInFileRegardlessOfLineNumbers () {
168+ var report = new Report ();
169+ try (var builder = new IssueBuilder ()) {
170+ builder .setFileName ("/part/of/modified/code.txt" );
171+ report .add (builder .setLineStart (1 ).setLineEnd (5 ).build ());
172+ report .add (builder .setLineStart (10 ).setLineEnd (15 ).build ());
173+ report .add (builder .setLineStart (100 ).setLineEnd (200 ).build ());
174+ builder .setFileName ("/other/file.txt" );
175+ report .add (builder .setLineStart (1 ).setLineEnd (5 ).build ());
176+ }
177+
178+ var marker = new IssuesInModifiedCodeMarker ();
179+ marker .markIssuesInModifiedFiles (report , Set .of ("modified/code.txt" ));
180+
181+ assertThatModifiedCodeMarkers (report ).containsExactly (true , true , true , false );
182+ }
183+
97184 private AbstractListAssert <?, List <? extends String >, String , ObjectAssert <String >> assertThatIssuesToString (
98185 final Report report ) {
99186 return assertThat (report .get ()).extracting (Issue ::toString );
0 commit comments