Skip to content

Commit b6c30f1

Browse files
committed
QG
1 parent 762306e commit b6c30f1

File tree

3 files changed

+47
-9
lines changed

3 files changed

+47
-9
lines changed

java-checks-testkit/src/test/java/org/sonar/java/checks/verifier/TestCheckRegistrarContextTest.java

+33
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,11 @@
1919
import java.util.List;
2020
import org.junit.jupiter.api.Test;
2121
import org.sonar.api.rule.RuleKey;
22+
import org.sonar.api.rule.RuleScope;
2223
import org.sonar.check.Rule;
2324
import org.sonar.plugins.java.api.JavaCheck;
25+
import org.sonar.plugins.java.api.JavaFileScanner;
26+
import org.sonar.plugins.java.api.JavaFileScannerContext;
2427

2528
import static org.assertj.core.api.Assertions.assertThat;
2629
import static org.assertj.core.api.Assertions.assertThatThrownBy;
@@ -125,4 +128,34 @@ void should_fail_if_not_a_JavaCheck() {
125128
.hasMessage("Fail to instantiate class java.lang.Object");
126129
}
127130

131+
@Test
132+
void register_custom_file_scanners_with_no_active_rules() {
133+
class DummyScanner implements JavaFileScanner {
134+
@Override
135+
public void scanFile(JavaFileScannerContext context) {
136+
// Dummy implementation. We just need the class instance
137+
}
138+
}
139+
140+
class MainScanner extends DummyScanner {
141+
}
142+
143+
class TestScanner extends DummyScanner {
144+
}
145+
146+
class AllScanner extends DummyScanner {
147+
}
148+
149+
var ctx = new TestCheckRegistrarContext();
150+
ctx.registerCustomFileScanner(RuleScope.MAIN, new MainScanner());
151+
ctx.registerCustomFileScanner(RuleScope.TEST, new TestScanner());
152+
ctx.registerCustomFileScanner(RuleScope.ALL, new AllScanner());
153+
154+
assertThat(ctx.mainCheckInstances)
155+
.extracting(c -> c.getClass().getSimpleName())
156+
.containsExactly("MainScanner", "AllScanner");
157+
assertThat(ctx.testCheckInstances)
158+
.extracting(c -> c.getClass().getSimpleName())
159+
.containsExactly("TestScanner", "AllScanner");
160+
}
128161
}

java-frontend/src/test/java/org/sonar/java/SonarComponentsTest.java

+7-9
Original file line numberDiff line numberDiff line change
@@ -416,22 +416,20 @@ void register_custom_file_scanners_with_no_active_rules() {
416416
CheckFactory specificCheckFactory = new CheckFactory(noActiveRules);
417417
SensorContextTester specificContext = SensorContextTester.create(new File(".")).setActiveRules(noActiveRules);
418418

419-
class MainScanner implements JavaFileScanner {
419+
class DummyScanner implements JavaFileScanner {
420420
@Override
421421
public void scanFile(JavaFileScannerContext context) {
422+
// Dummy implementation. We just need the class instance
422423
}
423424
}
424425

425-
class TestScanner implements JavaFileScanner {
426-
@Override
427-
public void scanFile(JavaFileScannerContext context) {
428-
}
426+
class MainScanner extends DummyScanner {
429427
}
430428

431-
class AllScanner implements JavaFileScanner {
432-
@Override
433-
public void scanFile(JavaFileScannerContext context) {
434-
}
429+
class TestScanner extends DummyScanner {
430+
}
431+
432+
class AllScanner extends DummyScanner {
435433
}
436434

437435
SonarComponents sonarComponents = new SonarComponents(fileLinesContextFactory, null, null,

java-frontend/src/test/java/org/sonar/plugins/java/api/CheckRegistrarTest.java

+7
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import static java.util.Collections.emptyList;
2828
import static org.assertj.core.api.Assertions.assertThat;
2929
import static org.assertj.core.api.Assertions.assertThatThrownBy;
30+
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
3031
import static org.mockito.Mockito.mock;
3132
import static org.mockito.Mockito.when;
3233

@@ -96,6 +97,12 @@ class Scanner implements JavaCheck {
9697
"register 3 instantiated test checks.");
9798
}
9899

100+
@Test
101+
void empty_default_method_coverage() {
102+
var context = new CheckRegistrar.RegistrarContext();
103+
assertDoesNotThrow(() -> context.registerCustomFileScanner(null, null));
104+
}
105+
99106
private static class TestInternalRegistration extends CheckRegistrar.RegistrarContext {
100107

101108
public final List<String> events = new ArrayList<>();

0 commit comments

Comments
 (0)