-
Notifications
You must be signed in to change notification settings - Fork 2
/
AbstractQueryTest.java
41 lines (34 loc) · 1.09 KB
/
AbstractQueryTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package ch.usi.si.seart.treesitter;
import lombok.Cleanup;
import org.junit.jupiter.api.Test;
public abstract class AbstractQueryTest extends BaseTest {
protected Language getLanguage() {
return Language.PYTHON;
}
protected String getSource() {
return
"@pure\n" +
"@property\n" +
"def foo(x):\n" +
" pass\n" +
"\n" +
"@pure\n" +
"@property\n" +
"def bar(x):\n" +
" pass\n";
}
protected String getPattern() {
return "(_ (decorator)* @additional (function_definition) @target)";
}
protected abstract void assertions(Node node, Query query);
@Test
void test() {
String source = getSource();
Language language = getLanguage();
@Cleanup Query query = Query.getFor(language, getPattern());
@Cleanup Parser parser = Parser.getFor(language);
@Cleanup Tree tree = parser.parse(source);
Node root = tree.getRootNode();
assertions(root, query);
}
}