CustomChecksTest.java 文件源码

java
阅读 17 收藏 0 点赞 0 评论 0

项目:sonar-tsql-plugin 作者:
@Test
public void testCheckEndingWithSemicolon() {
    Rule r = new Rule();
    r.setKey("Example1");
    r.setInternalKey("Example1");
    r.setDescription("Select statement should end with semicolon");
    r.setName("Select statement should end with semicolon");
    RuleImplementation rImpl = new RuleImplementation();
    rImpl.getNames().getTextItem().add(Select_statementContext.class.getSimpleName());
    rImpl.setRuleMatchType(RuleMatchType.CLASS_ONLY);
    r.setRuleImplementation(rImpl);
    RuleImplementation child = new RuleImplementation();
    child.setDistance(1);
    child.setIndex(-1);
    child.setDistanceCheckType(RuleDistanceIndexMatchType.EQUALS);
    child.setIndexCheckType(RuleDistanceIndexMatchType.EQUALS);
    child.getTextToFind().getTextItem().add(";");
    child.setTextCheckType(TextCheckType.STRICT);
    child.setRuleMatchType(RuleMatchType.TEXT_AND_CLASS);
    child.setRuleResultType(RuleResultType.FAIL_IF_NOT_FOUND);
    child.getNames().getTextItem().add(TerminalNodeImpl.class.getSimpleName());
    rImpl.getChildrenRules().getRuleImplementation().add(child);
    rImpl.getCompliantRulesCodeExamples().getRuleCodeExample().add("SELECT * from dbo.test where name like '%test%';");
    rImpl.getViolatingRulesCodeExamples().getRuleCodeExample().add("SELECT * from dbo.test where name like '%test%'");

    String s = "SELECT * from dbo.test where name like '%test%';";
    //System.out.println(Antlr4Utils.ruleImplToString(r));
    TsqlIssue[] issues = Antlr4Utils.verify2(r, s);

    //TsqlIssue[] issues = Antlr4Utils.verifyWithPrinting(r, s);
    Assert.assertEquals(0, issues.length);
//  Antlr4Utils.print(Antlr4Utils.get("SELECT * from dbo.test;"), 0);

}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号