22
22
import java .io .File ;
23
23
import java .util .ArrayList ;
24
24
import java .util .Arrays ;
25
- import java .util .Collections ;
26
25
import java .util .List ;
27
26
import org .junit .Test ;
28
- import org .sonar .plugins .python .api .PythonCheck ;
29
- import org .sonar .plugins .python .api .PythonSubscriptionCheck ;
30
27
import org .sonar .plugins .python .api .PythonVisitorContext ;
31
28
import org .sonar .plugins .python .api .tree .CallExpression ;
32
29
import org .sonar .python .SubscriptionVisitor ;
33
30
import org .sonar .python .TestPythonVisitorRunner ;
31
+ import org .sonar .python .checks .utils .PythonCheckVerifier ;
34
32
import org .sonarsource .analyzer .commons .regex .RegexParseResult ;
35
33
36
34
import static org .assertj .core .api .Assertions .assertThat ;
@@ -39,33 +37,23 @@ public class AbstractRegexCheckTest {
39
37
40
38
private static final File FILE = new File ("src/test/resources/checks/regex/abstractRegexCheck.py" );
41
39
42
- private static PythonVisitorContext fileContext (File file ) {
43
- return TestPythonVisitorRunner .createContext (file );
44
- }
45
-
46
- private static List <PythonCheck .PreciseIssue > scanFileForIssues (PythonVisitorContext fileContext , List <PythonSubscriptionCheck > checks ) {
47
- checks .forEach (c -> c .scanFile (fileContext ));
48
- SubscriptionVisitor .analyze (checks , fileContext );
49
- return fileContext .getIssues ();
50
- }
51
-
52
40
@ Test
53
41
public void test_regex_is_visited () {
54
42
Check check = new Check ();
55
- List <PythonCheck .PreciseIssue > issues = scanFileForIssues (fileContext (FILE ), Collections .singletonList (check ));
56
- assertThat (check .receivedRegexParseResults ).hasSize (1 );
57
- assertThat (issues ).hasSize (1 );
43
+ PythonCheckVerifier .verify (FILE .getAbsolutePath (), check );
44
+ assertThat (check .receivedRegexParseResults ).hasSize (10 );
58
45
}
59
46
60
47
@ Test
61
48
public void test_regex_parse_result_is_retrieved_from_cache_in_context () {
62
- PythonVisitorContext fileContext = fileContext (FILE );
63
-
49
+ PythonVisitorContext fileContext = TestPythonVisitorRunner .createContext (FILE );
64
50
Check checkOne = new Check ();
65
51
Check checkTwo = new Check ();
66
- scanFileForIssues (fileContext , Arrays .asList (checkOne , checkTwo ));
67
-
68
- assertThat (checkOne .receivedRegexParseResults .get (0 )).isSameAs (checkTwo .receivedRegexParseResults .get (0 ));
52
+ SubscriptionVisitor .analyze (Arrays .asList (checkOne , checkTwo ), fileContext );
53
+ assertThat (checkOne .receivedRegexParseResults ).hasSameSizeAs (checkTwo .receivedRegexParseResults );
54
+ for (int i = 0 ; i < checkOne .receivedRegexParseResults .size (); i ++) {
55
+ assertThat (checkOne .receivedRegexParseResults .get (i )).isSameAs (checkTwo .receivedRegexParseResults .get (i ));
56
+ }
69
57
}
70
58
71
59
private static class Check extends AbstractRegexCheck {
0 commit comments