Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 68 additions & 0 deletions src/MooseRuleEngine-Tests/MRESonarqubeHelperTest.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,74 @@ MRESonarqubeHelperTest >> testAllViolationsOfInFileUsingRuleId [
self assert: entity model equals: expectedEntity model ]
]

{ #category : 'tests' }
MRESonarqubeHelperTest >> testAllViolationsOfInFileUsingRuleIdWithFilePath [


| mergeRequestId rule file ruleId helper violations projectKey sonarqubeApi issue1 issue2 params expectedEntity path paramPath |
mergeRequestId := 1.
rule := MRERule new.
file := MREFile new
path: 'test/test.ts';
content: 'class Java {}'.
ruleId := 'java:1111'.
projectKey := 'projectKey'.
path := 'test'.

sonarqubeApi := SonarAPIMock new.

issue1 := {
(#textRange -> textRange).
(#status -> 'OPEN').
(#flows -> { }).

#message -> 'message'
} asDictionary.




issue2 := {
(#textRange -> textRange).
(#status -> 'CLOSE').
(#flows -> { }) .

#message -> 'message'} asDictionary.

paramPath := file path removePrefix: (path, '/').
params := {
(#componentKeys -> (projectKey , ':' , paramPath)).
(#rules -> ruleId) } asDictionary.

(sonarqubeApi issues stub searchWithParams: params) willReturn: {
issue1.
issue2 }.


helper := MRESonarqubeHelper new
mergeRequestId: 1;
type: 'all';
projectKey: projectKey;
sonarqubeApi: sonarqubeApi;
sourcePath: path.

violations := helper
allViolationsOf: rule inFile: file usingRuleId: ruleId.

self assert: violations size equals: 1.
self assert: violations first rule name equals: rule name.

expectedEntity := helper
parseTextRangeIntoEntity: textRange
ofFile: file.

violations first entities do: [ :entity |
self assert: entity file equals: expectedEntity file.
self assert: entity startPos equals: expectedEntity startPos.
self assert: entity endPos equals: expectedEntity endPos.
self assert: entity model equals: expectedEntity model ]
]

{ #category : 'tests' }
MRESonarqubeHelperTest >> testParseIssueIntoViolationOfRuleInFile [

Expand Down
6 changes: 4 additions & 2 deletions src/MooseRuleEngine/MRESonarqubeHelper.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,11 @@ Class {
{ #category : 'as yet unclassified' }
MRESonarqubeHelper >> allViolationsOf: rule inFile: file usingRuleId: ruleId [

| params issues |
| params issues filePath |
filePath := sourcePath ifNotNil: [ file path removePrefix: (sourcePath, '/') ]ifNil: [ file path ].

params := {
(#componentKeys -> (projectKey , ':' , file path)).
(#componentKeys -> (projectKey , ':' , filePath)).
(#rules -> ruleId) } asDictionary.

issues := sonarqubeApi issues searchWithParams: params.
Expand Down