test(flink): add flink visitor and listener test

This commit is contained in:
Erindcl 2020-12-02 10:35:37 +08:00
parent 0ef80696f4
commit 8cfdd0e856
2 changed files with 34 additions and 5 deletions

View File

@ -1,6 +1,8 @@
import SQLParser, { PlSqlParserListener } from '../../../src/parser/plsql'; import
// todo 校验关键字提取 SQLParser, { FlinkSqlParserListener }
describe('PLSQL Listener Tests', () => { from '../../../src/parser/flinksql';
describe('Flink SQL Listener Tests', () => {
const expectTableName = 'user1'; const expectTableName = 'user1';
const sql = `select id,name,sex from ${expectTableName};`; const sql = `select id,name,sex from ${expectTableName};`;
const parser = new SQLParser(); const parser = new SQLParser();
@ -9,8 +11,8 @@ describe('PLSQL Listener Tests', () => {
test('Listener enterTableName', async () => { test('Listener enterTableName', async () => {
let result = ''; let result = '';
class MyListener extends PlSqlParserListener { class MyListener extends FlinkSqlParserListener {
enterTable_ref_list(ctx): void { enterTableExpression(ctx): void {
result = ctx.getText().toLowerCase(); result = ctx.getText().toLowerCase();
} }
} }

View File

@ -0,0 +1,27 @@
import SQLParser, { FlinkSqlParserVisitor } from '../../../src/parser/flinksql';
describe('Flink SQL Visitor Tests', () => {
const expectTableName = 'user1';
const sql = `select id,name,sex from ${expectTableName};`;
const parser = new SQLParser();
const parserTree = parser.parse(sql, (error) => {
console.log('Parse error:', error);
});
// console.log('Parser tree string:', parser.toString(parserTree));
test('Visitor visitTableName', () => {
let result = '';
class MyVisitor extends FlinkSqlParserVisitor {
visitTableExpression(ctx): void {
result = ctx.getText().toLowerCase();
super.visitTableExpression(ctx);
}
}
const visitor: any = new MyVisitor();
visitor.visit(parserTree);
expect(result).toBe(expectTableName);
});
});