Skip to content

Commit 0a37b85

Browse files
committed
Fix for #38
1 parent 3121113 commit 0a37b85

File tree

3 files changed

+81
-2
lines changed

3 files changed

+81
-2
lines changed

src/sonar-sql-plugin/src/main/java/org/antlr/sql/sca/matchers/IndexMatcher.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public boolean match(IParsedNode node, RuleImplementation rule) {
2727
}
2828
}
2929
if (rule.getIndexCheckType() == RuleDistanceIndexMatchType.MORE) {
30-
if (rule.getIndex() < val) {
30+
if (val < rule.getIndex()) {
3131
return false;
3232
}
3333
}
@@ -49,7 +49,7 @@ public boolean match(IParsedNode node, RuleImplementation rule) {
4949
}
5050
}
5151
if (rule.getIndexCheckType() == RuleDistanceIndexMatchType.MORE) {
52-
if (rule.getIndex() < val) {
52+
if (val < rule.getIndex()) {
5353
return false;
5454
}
5555
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package org.antlr.sql.sca.matchers;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
5+
import org.antlr.sql.sca.utils.TestParsedNode;
6+
import org.junit.Test;
7+
import org.sonar.plugins.sql.models.rules.RuleDistanceIndexMatchType;
8+
import org.sonar.plugins.sql.models.rules.RuleImplementation;
9+
10+
public class IndexMatcherTest {
11+
12+
private final IndexMatcher sut = new IndexMatcher();
13+
14+
@Test
15+
public void testRuleHasZeroIndex() {
16+
var node = new TestParsedNode();
17+
var rule = new RuleImplementation();
18+
19+
var result = sut.match(node, rule);
20+
21+
assertThat(result).isTrue();
22+
}
23+
24+
@Test
25+
public void testRuleHasNoneZeroIndexAndExpectsBiggerIndex() {
26+
var node = new TestParsedNode();
27+
var rule = new RuleImplementation();
28+
rule.setIndex(20);
29+
rule.setIndexCheckType(RuleDistanceIndexMatchType.MORE);
30+
31+
var result = sut.match(node, rule);
32+
33+
assertThat(result).isFalse();
34+
}
35+
36+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package org.antlr.sql.sca.utils;
2+
3+
import org.antlr.sql.sca.nodes.IParsedNode;
4+
5+
public class TestParsedNode implements IParsedNode {
6+
7+
public String text = "SELECT * FROM 1";
8+
public String className = TestParsedNode.class.getSimpleName();
9+
10+
public int index = 1;
11+
public int globalIndex = 2;
12+
13+
@Override
14+
public int getIndex() {
15+
return index;
16+
}
17+
18+
@Override
19+
public int getGlobalIndex() {
20+
return globalIndex;
21+
}
22+
23+
@Override
24+
public String getClassName() {
25+
return className;
26+
}
27+
28+
@Override
29+
public String getText() {
30+
return text;
31+
}
32+
33+
@Override
34+
public int getLine() {
35+
return 0;
36+
}
37+
38+
@Override
39+
public IParsedNode getControlFlowParent() {
40+
return null;
41+
}
42+
43+
}

0 commit comments

Comments
 (0)