diff --git a/build.gradle b/build.gradle index 61da93a..3e426d7 100644 --- a/build.gradle +++ b/build.gradle @@ -19,7 +19,7 @@ dependencies { implementation group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.26' implementation group: 'org.apache.commons', name: 'commons-collections4', version: '4.2' implementation 'org.codehaus.groovy:groovy-all:2.4.15' - implementation 'org.bblfsh:bblfsh-client:1.11.0' + implementation 'org.bblfsh:bblfsh-client:2.1.0' implementation group: 'org.kohsuke', name: 'github-api', version: '1.101' implementation group: 'org.eclipse.jgit', name: 'org.eclipse.jgit', version: '5.1.3.201810200350-r' implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.9' @@ -50,4 +50,4 @@ dockerCompose { useComposeFiles = ['./docker-compose.yml'] dockerComposeWorkingDirectory = './docker/' captureContainersOutput = true -} \ No newline at end of file +} diff --git a/src/main/groovy/com/codebrig/arthur/SourceNode.groovy b/src/main/groovy/com/codebrig/arthur/SourceNode.groovy index 6bf84ee..660feea 100644 --- a/src/main/groovy/com/codebrig/arthur/SourceNode.groovy +++ b/src/main/groovy/com/codebrig/arthur/SourceNode.groovy @@ -2,9 +2,9 @@ package com.codebrig.arthur import com.codebrig.arthur.observe.structure.StructureLiteral import com.codebrig.arthur.observe.structure.StructureNaming -import gopkg.in.bblfsh.sdk.v1.uast.generated.Node -import gopkg.in.bblfsh.sdk.v1.uast.generated.Role +import gopkg.in.bblfsh.sdk.v1.uast.role.generated.Role import org.apache.commons.collections4.iterators.TransformIterator +import org.bblfsh.client.v2.* import scala.collection.JavaConverters /** @@ -17,21 +17,21 @@ import scala.collection.JavaConverters class SourceNode { private final SourceLanguage language - private final Node rootNode - private final Node underlyingNode + private final JNode rootNode + private final JNode underlyingNode private final SourceNode parentSourceNode private final StructureNaming naming private final StructureLiteral literal - SourceNode(SourceLanguage language, Node underlyingNode) { + SourceNode(SourceLanguage language, JNode underlyingNode) { this(language, underlyingNode, underlyingNode) } - SourceNode(SourceLanguage language, Node rootNode, Node underlyingNode) { + SourceNode(SourceLanguage language, JNode rootNode, JNode underlyingNode) { this(language, rootNode, underlyingNode, null) } - SourceNode(SourceLanguage language, Node rootNode, Node underlyingNode, SourceNode parentNode) { + SourceNode(SourceLanguage language, JNode rootNode, JNode underlyingNode, SourceNode parentNode) { this.language = Objects.requireNonNull(language) this.rootNode = Objects.requireNonNull(rootNode) this.underlyingNode = Objects.requireNonNull(underlyingNode) @@ -44,7 +44,7 @@ class SourceNode { return language } - Node getRootNode() { + JNode getRootNode() { return rootNode } @@ -52,7 +52,11 @@ class SourceNode { return new SourceNode(language, rootNode) } - Node getUnderlyingNode() { + /** + * todo: remove + */ + @Deprecated + JNode getUnderlyingNode() { return underlyingNode } @@ -61,14 +65,38 @@ class SourceNode { } String getInternalType() { - return underlyingNode.internalType() + for (int i = 0; i < underlyingNode.size(); i++) { + if (underlyingNode.keyAt(i) == "@type") { + return (underlyingNode.valueAt(i) as JString).str().replace(language.key + ":", "") + } + } + return "unknown" } boolean hasName() { + for (int i = 0; i < underlyingNode.size(); i++) { + if (underlyingNode.keyAt(i) == "Name") { + return true + } + } return naming.isNamedNodeType(this) } String getName() { + for (int i = 0; i < underlyingNode.size(); i++) { + if (underlyingNode.keyAt(i) == "Name") { + if (underlyingNode.valueAt(i) instanceof JObject) { + def jobject = (underlyingNode.valueAt(i) as JObject) + for (int z = 0; z < jobject.size(); z++) { + if (jobject.keyAt(z) == "Name") { + return (jobject.valueAt(z) as JString).str() + } + } + } else { + return (underlyingNode.valueAt(i) as JString).str() + } + } + } return naming.getNodeName(this) } @@ -82,8 +110,8 @@ class SourceNode { } Iterator getChildren() { - def itr = asJavaIterator(underlyingNode.children()) - return new TransformIterator(itr, { Node node -> + def itr = asJavaIterator(BblfshClient$.MODULE$.iterator(underlyingNode, new BblfshClient.ChildrenOrder$()).seq()) + return new TransformIterator(itr, { JNode node -> if (node == null) { return null } @@ -95,8 +123,48 @@ class SourceNode { return asJavaMap(underlyingNode.properties()) } - Iterator getRoles() { - return asJavaIterator(underlyingNode.roles()) + List getRoles() { + def roleIndex = -1 + for (int i = 0; i < underlyingNode.size(); i++) { + if (underlyingNode.keyAt(i) == "@role") { + roleIndex = i + break + } + } + + def roleList = new ArrayList() + if (roleIndex == -1) { + return roleList + //throw new IllegalStateException("Could not find @role") + } + + def roles = underlyingNode.valueAt(roleIndex) as JArray + for (int i = 0; i < roles.size(); i++) { + //todo: better + def roleName = (roles.valueAt(i) as JString).str().toUpperCase() + switch (roleName) { + case "DOWHILE": + roleName = "DO_WHILE" + break + case "GREATERTHAN": + roleName = "GREATER_THAN" + break + case "GREATERTHANOREQUAL": + roleName = "GREATER_THAN_OR_EQUAL" + break + case "LEFTSHIFT": + roleName = "LEFT_SHIFT" + break + case "LESSTHAN": + roleName = "LESS_THAN" + break + case "LESSTHANOREQUAL": + roleName = "LESS_THAN_OR_EQUAL" + break + } + roleList += Eval.me("return new gopkg.in.bblfsh.sdk.v1.uast.role.generated.Role." + roleName + "\$()") + } + return roleList } boolean isLiteralNode() { @@ -124,6 +192,10 @@ class SourceNode { return JavaConverters.asJavaCollectionConverter(scalaIterator).asJavaCollection().iterator() } + static Iterator asJavaIterator(scala.collection.Iterator scalaIterator) { + return JavaConverters.asJavaIteratorConverter(scalaIterator).asJava() + } + static Map asJavaMap(scala.collection.Map scalaMap) { return JavaConverters.mapAsJavaMapConverter(scalaMap).asJava() } diff --git a/src/main/groovy/com/codebrig/arthur/generator/SchemaGenerator.groovy b/src/main/groovy/com/codebrig/arthur/generator/SchemaGenerator.groovy index 1eadb70..92a7864 100644 --- a/src/main/groovy/com/codebrig/arthur/generator/SchemaGenerator.groovy +++ b/src/main/groovy/com/codebrig/arthur/generator/SchemaGenerator.groovy @@ -6,11 +6,10 @@ import com.codebrig.arthur.observe.ObservationConfig import com.codebrig.arthur.observe.ObservedLanguage import com.codebrig.arthur.observe.structure.StructureFilter import com.codebrig.arthur.observe.structure.filter.WildcardFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding -import gopkg.in.bblfsh.sdk.v1.protocol.generated.ParseResponse +import gopkg.in.bblfsh.sdk.v2.protocol.driver.ParseResponse import groovy.transform.Canonical import groovy.transform.TupleConstructor -import org.bblfsh.client.BblfshClient +import org.bblfsh.client.v2.BblfshClient import org.eclipse.jgit.api.Git import org.kohsuke.github.GHDirection import org.kohsuke.github.GHRepositorySearchBuilder @@ -139,8 +138,7 @@ class SchemaGenerator { log.info "Parsing: " + file def fileResponse = new FileParseResponse(file) def task = executorService.submit({ - fileResponse.parseResponse = client.parse( - file.name, file.text, observedLanguage.language.babelfishName, Encoding.UTF8$.MODULE$) + fileResponse.parseResponse = client.parse(file.name, file.text, observedLanguage.language.babelfishName) return fileResponse } as Callable) try { @@ -151,17 +149,13 @@ class SchemaGenerator { } }).map({ if (it instanceof FileParseResponse) { - if (it.parseResponse.status().isOk()) { - def rootSourceNode = new SourceNode(observedLanguage.language, it.parseResponse.uast) - if (filter.evaluate(rootSourceNode)) { - observeSourceNode(observedLanguage, rootSourceNode) - } - extractSchema(observedLanguage, rootSourceNode) - parseCount.getAndIncrement() - } else { - log.error "Failed to parse: " + it.parsedFile + " - Reason: " + it.parseResponse.errors().toList().toString() - failCount.getAndIncrement() + def rootNode = new BblfshClient.UastMethods(it.parseResponse.uast()).decode().root().load() + def rootSourceNode = new SourceNode(observedLanguage.language, rootNode) + if (filter.evaluate(rootSourceNode)) { + observeSourceNode(observedLanguage, rootSourceNode) } + extractSchema(observedLanguage, rootSourceNode) + parseCount.getAndIncrement() } }).count() executorService.shutdown() diff --git a/src/main/groovy/com/codebrig/arthur/observe/ObservedLanguage.groovy b/src/main/groovy/com/codebrig/arthur/observe/ObservedLanguage.groovy index 60e62f2..ae5e7c0 100644 --- a/src/main/groovy/com/codebrig/arthur/observe/ObservedLanguage.groovy +++ b/src/main/groovy/com/codebrig/arthur/observe/ObservedLanguage.groovy @@ -8,7 +8,7 @@ import com.codebrig.arthur.observe.observations.ObservedRoles import com.codebrig.arthur.observe.structure.StructureLiteral import com.google.common.base.CaseFormat import com.google.common.collect.Maps -import gopkg.in.bblfsh.sdk.v1.uast.generated.Role +import gopkg.in.bblfsh.sdk.v1.uast.role.generated.Role import java.util.stream.Collectors @@ -107,18 +107,18 @@ class ObservedLanguage { } } - void observeRoles(String entity, Iterator entityRoles) { + void observeRoles(String entity, List entityRoles) { entity = toValidEntity(entity) roles.putIfAbsent(entity, new ObservedRoles()) - roles.get(entity).observe(entityRoles.toList().stream() + roles.get(entity).observe(entityRoles.stream() .map({ it -> it.name() }) .collect(Collectors.toList()).iterator()) } - void observeRoles(String entity, List entityRoles) { + void observeRoles(String entity, Iterator entityRoles) { entity = toValidEntity(entity) roles.putIfAbsent(entity, new ObservedRoles()) - roles.get(entity).observe(entityRoles.iterator()) + roles.get(entity).observe(entityRoles) } void addEntityExtends(String entity) { diff --git a/src/main/groovy/com/codebrig/arthur/observe/structure/StructureFilter.groovy b/src/main/groovy/com/codebrig/arthur/observe/structure/StructureFilter.groovy index edc064b..9814b68 100644 --- a/src/main/groovy/com/codebrig/arthur/observe/structure/StructureFilter.groovy +++ b/src/main/groovy/com/codebrig/arthur/observe/structure/StructureFilter.groovy @@ -2,9 +2,9 @@ package com.codebrig.arthur.observe.structure import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.SourceNode -import gopkg.in.bblfsh.sdk.v1.uast.generated.Node import org.apache.commons.collections4.Predicate import org.apache.commons.collections4.iterators.FilterIterator +import org.bblfsh.client.v2.JNode /** * Used to filter through SourceNodes @@ -40,7 +40,7 @@ abstract class StructureFilter implements Predicat return new FilterIterator(sourceNodes, this) } - Iterator getFilteredNodes(SourceLanguage language, Node node) { + Iterator getFilteredNodes(SourceLanguage language, JNode node) { return getFilteredNodes(new SourceNode(language, node)) } diff --git a/src/main/groovy/com/codebrig/arthur/observe/structure/StructureNaming.groovy b/src/main/groovy/com/codebrig/arthur/observe/structure/StructureNaming.groovy index aa7acaf..60f4d7d 100644 --- a/src/main/groovy/com/codebrig/arthur/observe/structure/StructureNaming.groovy +++ b/src/main/groovy/com/codebrig/arthur/observe/structure/StructureNaming.groovy @@ -1,6 +1,7 @@ package com.codebrig.arthur.observe.structure import com.codebrig.arthur.SourceNode +import com.codebrig.arthur.observe.structure.filter.TypeFilter /** * Used to get the names/qualified names of UAST nodes @@ -9,13 +10,25 @@ import com.codebrig.arthur.SourceNode * @since 0.2 * @author Brandon Fergerson */ -trait StructureNaming { +abstract class StructureNaming { boolean isNamedNodeType(SourceNode node) { - return isNamedNodeType(node.internalType) + def internalType = node.internalType + switch (internalType) { + case "uast:FunctionGroup": + return true + } + return isNamedNodeType(internalType) } abstract boolean isNamedNodeType(String internalType) - abstract String getNodeName(SourceNode node) + String getNodeName(SourceNode node) { + switch (node.internalType) { + case "uast:FunctionGroup": + return new TypeFilter("uast:Identifier").getFilteredNodes(node).next().getName() + default: + throw new IllegalArgumentException("Unsupported node type: " + node.internalType) + } + } } diff --git a/src/main/groovy/com/codebrig/arthur/observe/structure/filter/FunctionFilter.groovy b/src/main/groovy/com/codebrig/arthur/observe/structure/filter/FunctionFilter.groovy index 25eb219..c10f1a1 100644 --- a/src/main/groovy/com/codebrig/arthur/observe/structure/filter/FunctionFilter.groovy +++ b/src/main/groovy/com/codebrig/arthur/observe/structure/filter/FunctionFilter.groovy @@ -15,9 +15,12 @@ class FunctionFilter extends StructureFilter { private final MultiFilter filter FunctionFilter() { - filter = MultiFilter.matchAll( - new RoleFilter("DECLARATION"), new RoleFilter("FUNCTION"), - new RoleFilter().reject("ARGUMENT", "RETURN", "INCOMPLETE", "BODY") + filter = MultiFilter.matchAny( + new TypeFilter("uast:FunctionGroup"), + MultiFilter.matchAll( + new RoleFilter("DECLARATION"), new RoleFilter("FUNCTION"), + new RoleFilter().reject("ARGUMENT", "RETURN", "INCOMPLETE", "BODY") + ) ) } diff --git a/src/main/groovy/com/codebrig/arthur/observe/structure/filter/loop/ForLoopFilter.groovy b/src/main/groovy/com/codebrig/arthur/observe/structure/filter/loop/ForLoopFilter.groovy index 14b5b46..d553d33 100644 --- a/src/main/groovy/com/codebrig/arthur/observe/structure/filter/loop/ForLoopFilter.groovy +++ b/src/main/groovy/com/codebrig/arthur/observe/structure/filter/loop/ForLoopFilter.groovy @@ -2,7 +2,6 @@ package com.codebrig.arthur.observe.structure.filter.loop import com.codebrig.arthur.SourceNode import com.codebrig.arthur.observe.structure.StructureFilter -import com.codebrig.arthur.observe.structure.filter.InternalRoleFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.RoleFilter @@ -26,15 +25,6 @@ class ForLoopFilter extends StructureFilter { @Override boolean evaluate(SourceNode node) { - boolean result = filter.evaluate(node) - if (result) { - def matched = MultiFilter.matchAll( - new InternalRoleFilter("Init", "initializers") - ).getFilteredNodes(node.children) - if (matched.hasNext()) { - return true - } - } - return result + return filter.evaluate(node) } } diff --git a/src/main/groovy/com/codebrig/arthur/observe/structure/naming/BashNaming.groovy b/src/main/groovy/com/codebrig/arthur/observe/structure/naming/BashNaming.groovy index 3090bc4..d7753dd 100644 --- a/src/main/groovy/com/codebrig/arthur/observe/structure/naming/BashNaming.groovy +++ b/src/main/groovy/com/codebrig/arthur/observe/structure/naming/BashNaming.groovy @@ -13,7 +13,7 @@ import com.codebrig.arthur.observe.structure.filter.TypeFilter * @since 0.4 * @author Val Pecaoco */ -class BashNaming implements StructureNaming { +class BashNaming extends StructureNaming { @Override boolean isNamedNodeType(String internalType) { @@ -34,7 +34,7 @@ class BashNaming implements StructureNaming { case "var-def-element": return getVarDefElementName(node) default: - throw new IllegalArgumentException("Unsupported Bash node type: " + node.internalType) + return super.getNodeName(node) } } diff --git a/src/main/groovy/com/codebrig/arthur/observe/structure/naming/CPlusPlusNaming.groovy b/src/main/groovy/com/codebrig/arthur/observe/structure/naming/CPlusPlusNaming.groovy index 9c958a9..34e969b 100644 --- a/src/main/groovy/com/codebrig/arthur/observe/structure/naming/CPlusPlusNaming.groovy +++ b/src/main/groovy/com/codebrig/arthur/observe/structure/naming/CPlusPlusNaming.groovy @@ -13,7 +13,7 @@ import static com.codebrig.arthur.observe.structure.naming.util.NamingUtils.trim * @since 0.4 * @author Val Pecaoco */ -class CPlusPlusNaming implements StructureNaming { +class CPlusPlusNaming extends StructureNaming { @Override boolean isNamedNodeType(String internalType) { @@ -35,7 +35,7 @@ class CPlusPlusNaming implements StructureNaming { case "CPPASTSimpleDeclaration": return getSimpleDeclaration(node) default: - throw new IllegalArgumentException("Unsupported C++ node type: " + node.internalType) + return super.getNodeName(node) } } diff --git a/src/main/groovy/com/codebrig/arthur/observe/structure/naming/CSharpNaming.groovy b/src/main/groovy/com/codebrig/arthur/observe/structure/naming/CSharpNaming.groovy index bcee1cf..a552eb2 100644 --- a/src/main/groovy/com/codebrig/arthur/observe/structure/naming/CSharpNaming.groovy +++ b/src/main/groovy/com/codebrig/arthur/observe/structure/naming/CSharpNaming.groovy @@ -13,7 +13,7 @@ import static com.codebrig.arthur.observe.structure.naming.util.NamingUtils.trim * @since 0.4 * @author Val Pecaoco */ -class CSharpNaming implements StructureNaming { +class CSharpNaming extends StructureNaming { @Override boolean isNamedNodeType(String internalType) { @@ -34,7 +34,7 @@ class CSharpNaming implements StructureNaming { case "VariableDeclaration": return getVariableDeclarationName(node) default: - throw new IllegalArgumentException("Unsupported C# node type: " + node.internalType) + return super.getNodeName(node) } } diff --git a/src/main/groovy/com/codebrig/arthur/observe/structure/naming/GoNaming.groovy b/src/main/groovy/com/codebrig/arthur/observe/structure/naming/GoNaming.groovy index 1a712a4..54d2c8d 100644 --- a/src/main/groovy/com/codebrig/arthur/observe/structure/naming/GoNaming.groovy +++ b/src/main/groovy/com/codebrig/arthur/observe/structure/naming/GoNaming.groovy @@ -16,7 +16,7 @@ import static com.codebrig.arthur.observe.structure.naming.util.NamingUtils.trim * @author Brandon Fergerson * @author Val Pecaoco */ -class GoNaming implements StructureNaming { +class GoNaming extends StructureNaming { @Override boolean isNamedNodeType(String internalType) { @@ -40,7 +40,7 @@ class GoNaming implements StructureNaming { case "GenDecl": return getGenDeclName(node) default: - throw new IllegalArgumentException("Unsupported Go node type: " + node.internalType) + return super.getNodeName(node) } } diff --git a/src/main/groovy/com/codebrig/arthur/observe/structure/naming/JavaNaming.groovy b/src/main/groovy/com/codebrig/arthur/observe/structure/naming/JavaNaming.groovy index 2e8739f..b84e293 100644 --- a/src/main/groovy/com/codebrig/arthur/observe/structure/naming/JavaNaming.groovy +++ b/src/main/groovy/com/codebrig/arthur/observe/structure/naming/JavaNaming.groovy @@ -17,7 +17,7 @@ import static com.codebrig.arthur.observe.structure.naming.util.NamingUtils.trim * @author Brandon Fergerson * @author Val Pecaoco */ -class JavaNaming implements StructureNaming { +class JavaNaming extends StructureNaming { @Override boolean isNamedNodeType(String internalType) { @@ -59,7 +59,7 @@ class JavaNaming implements StructureNaming { case "QualifiedName": return getQualifiedNameName(node) default: - throw new IllegalArgumentException("Unsupported Java node type: " + node.internalType) + return super.getNodeName(node) } } diff --git a/src/main/groovy/com/codebrig/arthur/observe/structure/naming/JavascriptNaming.groovy b/src/main/groovy/com/codebrig/arthur/observe/structure/naming/JavascriptNaming.groovy index ac49e19..cbc7d75 100644 --- a/src/main/groovy/com/codebrig/arthur/observe/structure/naming/JavascriptNaming.groovy +++ b/src/main/groovy/com/codebrig/arthur/observe/structure/naming/JavascriptNaming.groovy @@ -16,7 +16,7 @@ import static com.codebrig.arthur.observe.structure.naming.util.NamingUtils.trim * @author Brandon Fergerson * @author Val Pecaoco */ -class JavascriptNaming implements StructureNaming { +class JavascriptNaming extends StructureNaming { @Override boolean isNamedNodeType(String internalType) { @@ -37,7 +37,7 @@ class JavascriptNaming implements StructureNaming { case "VariableDeclaration": return getVariableDeclarationName(node) default: - return null + return super.getNodeName(node) } } diff --git a/src/main/groovy/com/codebrig/arthur/observe/structure/naming/PhpNaming.groovy b/src/main/groovy/com/codebrig/arthur/observe/structure/naming/PhpNaming.groovy index 4f9e563..1082c92 100644 --- a/src/main/groovy/com/codebrig/arthur/observe/structure/naming/PhpNaming.groovy +++ b/src/main/groovy/com/codebrig/arthur/observe/structure/naming/PhpNaming.groovy @@ -16,7 +16,7 @@ import static com.codebrig.arthur.observe.structure.naming.util.NamingUtils.trim * @author Brandon Fergerson * @author Val Pecaoco */ -class PhpNaming implements StructureNaming { +class PhpNaming extends StructureNaming { @Override boolean isNamedNodeType(String internalType) { @@ -41,7 +41,7 @@ class PhpNaming implements StructureNaming { case "Expr_Assign": return getExprAssignName(node) default: - return null + return super.getNodeName(node) } } diff --git a/src/main/groovy/com/codebrig/arthur/observe/structure/naming/PythonNaming.groovy b/src/main/groovy/com/codebrig/arthur/observe/structure/naming/PythonNaming.groovy index 6482c5b..fff318d 100644 --- a/src/main/groovy/com/codebrig/arthur/observe/structure/naming/PythonNaming.groovy +++ b/src/main/groovy/com/codebrig/arthur/observe/structure/naming/PythonNaming.groovy @@ -16,7 +16,7 @@ import static com.codebrig.arthur.observe.structure.naming.util.NamingUtils.trim * @author Brandon Fergerson * @author Val Pecaoco */ -class PythonNaming implements StructureNaming { +class PythonNaming extends StructureNaming { @Override boolean isNamedNodeType(String internalType) { @@ -37,7 +37,7 @@ class PythonNaming implements StructureNaming { case "Assign": return getAssignName(node) default: - return null + return super.getNodeName(node) } } diff --git a/src/main/groovy/com/codebrig/arthur/observe/structure/naming/RubyNaming.groovy b/src/main/groovy/com/codebrig/arthur/observe/structure/naming/RubyNaming.groovy index 65329c2..550c680 100644 --- a/src/main/groovy/com/codebrig/arthur/observe/structure/naming/RubyNaming.groovy +++ b/src/main/groovy/com/codebrig/arthur/observe/structure/naming/RubyNaming.groovy @@ -16,7 +16,7 @@ import static com.codebrig.arthur.observe.structure.naming.util.NamingUtils.trim * @author Brandon Fergerson * @author Val Pecaoco */ -class RubyNaming implements StructureNaming { +class RubyNaming extends StructureNaming { @Override boolean isNamedNodeType(String internalType) { @@ -41,7 +41,7 @@ class RubyNaming implements StructureNaming { case "lvasgn": return getLvasgnName(node) default: - return null + return super.getNodeName(node) } } diff --git a/src/main/groovy/com/codebrig/arthur/schema/grakn/GraknSchemaReader.groovy b/src/main/groovy/com/codebrig/arthur/schema/grakn/GraknSchemaReader.groovy index 5bc9c40..805ba79 100644 --- a/src/main/groovy/com/codebrig/arthur/schema/grakn/GraknSchemaReader.groovy +++ b/src/main/groovy/com/codebrig/arthur/schema/grakn/GraknSchemaReader.groovy @@ -114,7 +114,7 @@ class GraknSchemaReader { } } - observedLanguage.observeRoles(name, playsRoles) + observedLanguage.observeRoles(name, playsRoles.iterator()) } def schemaWriter = new GraknSchemaWriter(observedLanguage) diff --git a/src/test/groovy/com/codebrig/arthur/ArthurTest.groovy b/src/test/groovy/com/codebrig/arthur/ArthurTest.groovy index ac99b2e..686dfb1 100644 --- a/src/test/groovy/com/codebrig/arthur/ArthurTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/ArthurTest.groovy @@ -1,6 +1,6 @@ package com.codebrig.arthur -import org.bblfsh.client.BblfshClient +import org.bblfsh.client.v2.BblfshClient import org.junit.AfterClass import org.junit.BeforeClass diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/FunctionFilterTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/FunctionFilterTest.groovy index d7930e0..720be20 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/FunctionFilterTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/FunctionFilterTest.groovy @@ -2,7 +2,7 @@ package com.codebrig.arthur.observe.structure.filter import com.codebrig.arthur.ArthurTest import com.codebrig.arthur.SourceLanguage -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.assertTrue @@ -56,10 +56,11 @@ class FunctionFilterTest extends ArthurTest { private static void assertFunctionsPresent(File file) { def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() boolean foundFunction = false - new FunctionFilter().getFilteredNodes(language, resp.uast).each { + new FunctionFilter().getFilteredNodes(language, rootNode).each { foundFunction = true } assertTrue(foundFunction) diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/NameFilterTest_Java.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/NameFilterTest_Java.groovy index ff96d3e..f6caea7 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/NameFilterTest_Java.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/NameFilterTest_Java.groovy @@ -2,9 +2,10 @@ package com.codebrig.arthur.observe.structure.filter import com.codebrig.arthur.ArthurTest import com.codebrig.arthur.SourceLanguage -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test +import static org.junit.Assert.assertEquals import static org.junit.Assert.assertTrue class NameFilterTest_Java extends ArthurTest { @@ -12,11 +13,12 @@ class NameFilterTest_Java extends ArthurTest { @Test void simpleName() { def file = new File("src/test/resources/java/ImportQualifiedName.java") - def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName, Encoding.UTF8$.MODULE$) - def fileFilter = new NameFilter("arg") + def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() + def nameFilter = new NameFilter("arg") - fileFilter.getFilteredNodes(SourceLanguage.Java, resp.uast).each { - assertTrue(["SimpleName", "SingleVariableDeclaration"].stream().anyMatch( + nameFilter.getFilteredNodes(SourceLanguage.Java, rootNode).each { + assertTrue(["uast:Identifier", "uast:Argument"].stream().anyMatch( { t -> t == it.internalType }) ) } @@ -25,13 +27,12 @@ class NameFilterTest_Java extends ArthurTest { @Test void innerVariable() { def file = new File("src/test/resources/java/ImportQualifiedName.java") - def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName, Encoding.UTF8$.MODULE$) - def fileFilter = new NameFilter("arrayList") + def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() + def nameFilter = new NameFilter("arrayList") - fileFilter.getFilteredNodes(SourceLanguage.Java, resp.uast).each { - assertTrue(["SimpleName", "VariableDeclarationStatement"].stream().anyMatch( - { t -> t == it.internalType }) - ) + nameFilter.getFilteredNodes(SourceLanguage.Java, rootNode).each { + assertEquals("uast:Identifier", it.internalType) } } } \ No newline at end of file diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/RoleFilterTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/RoleFilterTest.groovy index 7a1a3c6..ab238ab 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/RoleFilterTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/RoleFilterTest.groovy @@ -3,7 +3,7 @@ package com.codebrig.arthur.observe.structure.filter import com.codebrig.arthur.ArthurTest import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.loop.ForLoopFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.assertTrue @@ -17,10 +17,11 @@ class RoleFilterTest extends ArthurTest { def forLoopFilter = new ForLoopFilter() parseFolder.listFiles().each { file -> def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() boolean foundForStatement = false - filter.getFilteredNodes(language, resp.uast).each { + filter.getFilteredNodes(language, rootNode).each { assertTrue(forLoopFilter.evaluate(it)) foundForStatement = true } diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/TypeFilterTest_Java.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/TypeFilterTest_Java.groovy index 711d42e..1b49919 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/TypeFilterTest_Java.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/TypeFilterTest_Java.groovy @@ -2,7 +2,7 @@ package com.codebrig.arthur.observe.structure.filter import com.codebrig.arthur.ArthurTest import com.codebrig.arthur.SourceLanguage -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.assertEquals @@ -12,13 +12,14 @@ class TypeFilterTest_Java extends ArthurTest { @Test void onlyMethodsFilter() { - def methodFilter = new TypeFilter("MethodDeclaration") + def methodFilter = new FunctionFilter() def file = new File("src/test/resources/java/Complex.java") - def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() boolean foundMethod = false - methodFilter.getFilteredNodes(SourceLanguage.Java, resp.uast).each { - assertEquals("MethodDeclaration", it.internalType) + methodFilter.getFilteredNodes(SourceLanguage.Java, rootNode).each { + assertEquals("uast:FunctionGroup", it.internalType) foundMethod = true } assertTrue(foundMethod) @@ -26,25 +27,24 @@ class TypeFilterTest_Java extends ArthurTest { @Test void compilationUnitsAndMethodsFilter() { - def filter = new TypeFilter("CompilationUnit", "MethodDeclaration") + def filter = new TypeFilter("CompilationUnit", "uast:FunctionGroup") def file = new File("src/test/resources/java/Complex.java") - def resp = client.parse(file.name, file.text, - SourceLanguage.getSourceLanguage(file).babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, SourceLanguage.getSourceLanguage(file).babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() boolean foundCompilationUnit = false boolean foundMethod = false - filter.getFilteredNodes(SourceLanguage.Java, resp.uast).each { - assertTrue(["CompilationUnit", "MethodDeclaration"].contains(it.internalType)) + filter.getFilteredNodes(SourceLanguage.Java, rootNode).each { + assertTrue(["CompilationUnit", "uast:FunctionGroup"].contains(it.internalType)) switch (it.internalType) { case "CompilationUnit": foundCompilationUnit = true break - case "MethodDeclaration": + case "uast:FunctionGroup": foundMethod = true } } assertTrue(foundCompilationUnit) assertTrue(foundMethod) } - } \ No newline at end of file diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/conditional/ElseConditionalFilterTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/conditional/ElseConditionalFilterTest.groovy index f97b557..bc03458 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/conditional/ElseConditionalFilterTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/conditional/ElseConditionalFilterTest.groovy @@ -5,7 +5,6 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding import org.junit.Test import static org.junit.Assert.* @@ -64,7 +63,7 @@ class ElseConditionalFilterTest extends ArthurTest { private static void assertElseConditionalPresent(File file, String qualifiedName) { def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) def foundElseConditional = false def functionFilter = new FunctionFilter() diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/conditional/ElseIfConditionalFilterTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/conditional/ElseIfConditionalFilterTest.groovy index dcb4f87..f47aa9f 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/conditional/ElseIfConditionalFilterTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/conditional/ElseIfConditionalFilterTest.groovy @@ -5,7 +5,6 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding import org.junit.Test import static org.junit.Assert.* @@ -64,7 +63,7 @@ class ElseIfConditionalFilterTest extends ArthurTest { private static void assertElseIfConditionalPresent(File file, String qualifiedName) { def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) def foundElseIfConditional = false def functionFilter = new FunctionFilter() diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/conditional/IfConditionalFilterTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/conditional/IfConditionalFilterTest.groovy index 3602219..4903bcb 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/conditional/IfConditionalFilterTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/conditional/IfConditionalFilterTest.groovy @@ -5,7 +5,6 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding import org.junit.Test import static org.junit.Assert.* @@ -70,7 +69,7 @@ class IfConditionalFilterTest extends ArthurTest { private static void assertIfConditionalPresent(File file, String qualifiedName, String functionName) { def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) def foundIfConditional = false def functionFilter = new FunctionFilter() diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/conditional/SwitchCaseConditionalFilterTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/conditional/SwitchCaseConditionalFilterTest.groovy index 58af8ac..8600617 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/conditional/SwitchCaseConditionalFilterTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/conditional/SwitchCaseConditionalFilterTest.groovy @@ -5,7 +5,6 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding import org.junit.Test import static org.junit.Assert.* @@ -59,7 +58,7 @@ class SwitchCaseConditionalFilterTest extends ArthurTest { private static void assertSwitchCaseConditionalPresent(File file, String qualifiedName) { def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) def foundSwitchCaseConditional = false def functionFilter = new FunctionFilter() diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/conditional/SwitchConditionalFilterTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/conditional/SwitchConditionalFilterTest.groovy index 691f4ce..5c44877 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/conditional/SwitchConditionalFilterTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/conditional/SwitchConditionalFilterTest.groovy @@ -5,7 +5,6 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding import org.junit.Test import static org.junit.Assert.* @@ -52,7 +51,7 @@ class SwitchConditionalFilterTest extends ArthurTest { private static void assertSwitchConditionalPresent(File file, String qualifiedName) { def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) def foundSwitchConditional = false def functionFilter = new FunctionFilter() diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/exception/TryFilterTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/exception/TryFilterTest.groovy index 6345293..fa9a070 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/exception/TryFilterTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/exception/TryFilterTest.groovy @@ -5,7 +5,7 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -68,13 +68,14 @@ class TryFilterTest extends ArthurTest { private static void assertTryCatchPresent(File file, String qualifiedName) { def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def foundTry = false def foundCatch = false def functionFilter = new FunctionFilter() def nameFilter = new NameFilter(qualifiedName + "tryCatch()") - MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, resp.uast).each { + MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, rootNode).each { assertEquals(qualifiedName + "tryCatch()", it.name) new TryFilter().getFilteredNodes(it).each { @@ -96,14 +97,15 @@ class TryFilterTest extends ArthurTest { private static void assertTryCatchFinallyPresent(File file, String qualifiedName) { def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def foundTry = false def foundCatch = false def foundFinally = false def functionFilter = new FunctionFilter() def nameFilter = new NameFilter(qualifiedName + "tryCatchFinally()") - MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, resp.uast).each { + MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, rootNode).each { assertEquals(qualifiedName + "tryCatchFinally()", it.name) new TryFilter().getFilteredNodes(it).each { diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/loop/DoWhileLoopFilterTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/loop/DoWhileLoopFilterTest.groovy index 949b9ab..5065629 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/loop/DoWhileLoopFilterTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/loop/DoWhileLoopFilterTest.groovy @@ -5,7 +5,7 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -38,12 +38,13 @@ class DoWhileLoopFilterTest extends ArthurTest { private static void assertDoWhileLoopPresent(File file, String qualifiedName) { def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def foundDoWhileLoop = false def functionFilter = new FunctionFilter() def nameFilter = new NameFilter(qualifiedName + "doWhileLoop()") - MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, resp.uast).each { + MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, rootNode).each { assertEquals(qualifiedName + "doWhileLoop()", it.name) new DoWhileLoopFilter().getFilteredNodes(it).each { diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/loop/ForEachLoopFilterTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/loop/ForEachLoopFilterTest.groovy index 4975d22..f573bd9 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/loop/ForEachLoopFilterTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/loop/ForEachLoopFilterTest.groovy @@ -5,7 +5,7 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -49,12 +49,13 @@ class ForEachLoopFilterTest extends ArthurTest { private static void assertForEachLoopPresent(File file, String qualifiedName) { def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def foundForEachLoop = false def functionFilter = new FunctionFilter() def nameFilter = new NameFilter(qualifiedName + "forEachLoop()") - MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, resp.uast).each { + MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, rootNode).each { assertEquals(qualifiedName + "forEachLoop()", it.name) new ForEachLoopFilter().getFilteredNodes(it).each { diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/loop/ForLoopFilterTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/loop/ForLoopFilterTest.groovy index 1a1137a..976d398 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/loop/ForLoopFilterTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/loop/ForLoopFilterTest.groovy @@ -5,7 +5,7 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -63,13 +63,14 @@ class ForLoopFilterTest extends ArthurTest { private static void assertLoopPresent(File file, String qualifiedName) { def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def foundForLoop = false def functionFilter = new FunctionFilter() - def nameFilter = new NameFilter(qualifiedName + "forLoop()") - MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, resp.uast).each { - assertEquals(qualifiedName + "forLoop()", it.name) + def nameFilter = new NameFilter("forLoop") + MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, rootNode).each { + assertEquals("forLoop", it.name) new ForLoopFilter().getFilteredNodes(it).each { assertFalse(foundForLoop) diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/loop/WhileLoopFilterTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/loop/WhileLoopFilterTest.groovy index 701f833..e0465a9 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/loop/WhileLoopFilterTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/loop/WhileLoopFilterTest.groovy @@ -5,7 +5,7 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -54,12 +54,13 @@ class WhileLoopFilterTest extends ArthurTest { private static void assertWhileLoopPresent(File file, String qualifiedName) { def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def foundWhileLoop = false def functionFilter = new FunctionFilter() def nameFilter = new NameFilter(qualifiedName + "whileLoop()") - MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, resp.uast).each { + MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, rootNode).each { assertEquals(qualifiedName + "whileLoop()", it.name) new WhileLoopFilter().getFilteredNodes(it).each { diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/logical/AndOperatorFilterTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/logical/AndOperatorFilterTest.groovy index 8d6690b..ffd1b7d 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/logical/AndOperatorFilterTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/logical/AndOperatorFilterTest.groovy @@ -5,7 +5,7 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -75,12 +75,13 @@ class AndOperatorFilterTest extends ArthurTest { private static void assertAndOperatorPresent(File file, String andToken, String qualifiedName, String functionName) { def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def foundAndOperator = false def functionFilter = new FunctionFilter() def nameFilter = new NameFilter(qualifiedName + functionName) - MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, resp.uast).each { + MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, rootNode).each { assertEquals(qualifiedName + functionName, it.name) new AndOperatorFilter().getFilteredNodes(it).each { diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/logical/OrOperatorFilterTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/logical/OrOperatorFilterTest.groovy index 6d4a72a..e542bfc 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/logical/OrOperatorFilterTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/logical/OrOperatorFilterTest.groovy @@ -5,7 +5,7 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -75,12 +75,13 @@ class OrOperatorFilterTest extends ArthurTest { private static void assertOrOperatorPresent(File file, String orToken, String qualifiedName, String functionName) { def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def foundOrOperator = false def functionFilter = new FunctionFilter() def nameFilter = new NameFilter(qualifiedName + functionName) - MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, resp.uast).each { + MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, rootNode).each { assertEquals(qualifiedName + functionName, it.name) new OrOperatorFilter().getFilteredNodes(it).each { diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/misc/TernaryOperatorFilterTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/misc/TernaryOperatorFilterTest.groovy index b46d82e..057700f 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/misc/TernaryOperatorFilterTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/misc/TernaryOperatorFilterTest.groovy @@ -5,7 +5,7 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -44,12 +44,13 @@ class TernaryOperatorFilterTest extends ArthurTest { private static void assertTernaryOperatorPresent(File file, String qualifiedName) { def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def foundTernaryOperator = false def functionFilter = new FunctionFilter() def nameFilter = new NameFilter(qualifiedName + "ternaryOperator()") - MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, resp.uast).each { + MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, rootNode).each { assertEquals(qualifiedName + "ternaryOperator()", it.name) new TernaryOperatorFilter().getFilteredNodes(it).each { diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/RelationalOperatorFilterTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/RelationalOperatorFilterTest.groovy index c9fc9a7..58e335e 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/RelationalOperatorFilterTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/RelationalOperatorFilterTest.groovy @@ -5,7 +5,7 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.operator.relational.define.DeclareVariableOperatorFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.assertNotNull @@ -60,11 +60,12 @@ class RelationalOperatorFilterTest extends ArthurTest { private static void assertRelationalOperatorPresent(File file) { def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def foundLeftOperands = false def foundRightOperands = false - new FunctionFilter().getFilteredNodes(language, resp.uast).each { + new FunctionFilter().getFilteredNodes(language, rootNode).each { MultiFilter.matchAll(new RelationalOperatorFilter()).reject(new DeclareVariableOperatorFilter()) .getFilteredNodes(it).each { assertNotNull(RelationalOperatorFilter.getLeftOperand(it)) diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/compare/IsEqualOperatorFilterTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/compare/IsEqualOperatorFilterTest.groovy index dabac90..0190b9f 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/compare/IsEqualOperatorFilterTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/compare/IsEqualOperatorFilterTest.groovy @@ -5,7 +5,7 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -71,12 +71,13 @@ class IsEqualOperatorFilterTest extends ArthurTest { private static void assertIsEqualOperatorPresent(File file, String qualifiedName, String functionName, String operator) { def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def foundEqualOperator = false def functionFilter = new FunctionFilter() def nameFilter = new NameFilter(qualifiedName + functionName) - MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, resp.uast).each { + MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, rootNode).each { assertEquals(qualifiedName + functionName, it.name) new IsEqualOperatorFilter().getFilteredNodes(it).each { diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/compare/IsEqualTypeOperatorFilterTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/compare/IsEqualTypeOperatorFilterTest.groovy index afa1763..05100e4 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/compare/IsEqualTypeOperatorFilterTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/compare/IsEqualTypeOperatorFilterTest.groovy @@ -5,7 +5,7 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -29,12 +29,13 @@ class IsEqualTypeOperatorFilterTest extends ArthurTest { private static void assertIsEqualTypeOperatorPresent(File file) { def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def foundEqualTypeOperator = false def functionFilter = new FunctionFilter() def nameFilter = new NameFilter("isEqualTypeOperator()") - MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, resp.uast).each { + MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, rootNode).each { assertEquals("isEqualTypeOperator()", it.name) new IsEqualTypeOperatorFilter().getFilteredNodes(it).each { diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/compare/IsNotEqualOperatorFilterTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/compare/IsNotEqualOperatorFilterTest.groovy index e977fe0..a9e2d29 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/compare/IsNotEqualOperatorFilterTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/compare/IsNotEqualOperatorFilterTest.groovy @@ -5,7 +5,7 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -65,12 +65,13 @@ class IsNotEqualOperatorFilterTest extends ArthurTest { void alternateNotEqualOperator_Python() { def file = new File("src/test/resources/same/operators/Operators.py") def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def foundAlternateNotEqualOperator = false def functionFilter = new FunctionFilter() def nameFilter = new NameFilter("alternateIsNotEqualOperator()") - MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, resp.uast).each { + MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, rootNode).each { assertEquals("alternateIsNotEqualOperator()", it.name) new IsNotEqualOperatorFilter().getFilteredNodes(it).each { @@ -92,12 +93,13 @@ class IsNotEqualOperatorFilterTest extends ArthurTest { private static void assertIsNotEqualOperatorPresent(File file, String qualifiedName, String functionName, String operator) { def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def foundNotEqualOperator = false def functionFilter = new FunctionFilter() def nameFilter = new NameFilter(qualifiedName + functionName) - MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, resp.uast).each { + MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, rootNode).each { assertEquals(qualifiedName + functionName, it.name) new IsNotEqualOperatorFilter().getFilteredNodes(it).each { diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/compare/IsNotEqualTypeOperatorFilterTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/compare/IsNotEqualTypeOperatorFilterTest.groovy index 94ec8fc..18d3794 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/compare/IsNotEqualTypeOperatorFilterTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/compare/IsNotEqualTypeOperatorFilterTest.groovy @@ -5,7 +5,7 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -24,12 +24,13 @@ class IsNotEqualTypeOperatorFilterTest extends ArthurTest { private static void assertIsNotEqualTypeOperatorPresent(File file) { def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def foundNotEqualTypeOperator = false def functionFilter = new FunctionFilter() def nameFilter = new NameFilter("isNotEqualTypeOperator()") - MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, resp.uast).each { + MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, rootNode).each { assertEquals("isNotEqualTypeOperator()", it.name) new IsNotEqualTypeOperatorFilter().getFilteredNodes(it).each { diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/define/DeclareVariableOperatorFilterTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/define/DeclareVariableOperatorFilterTest.groovy index 598fa06..51ccb52 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/define/DeclareVariableOperatorFilterTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/define/DeclareVariableOperatorFilterTest.groovy @@ -6,7 +6,7 @@ import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter import com.codebrig.arthur.observe.structure.filter.TokenFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -67,12 +67,13 @@ class DeclareVariableOperatorFilterTest extends ArthurTest { private static void assertDeclareVariableOperatorPresent(File file, String qualifiedName, String functionName) { def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def foundDeclareVariableOperator = false def functionFilter = new FunctionFilter() def nameFilter = new NameFilter(qualifiedName + functionName) - MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, resp.uast).each { + MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, rootNode).each { assertEquals(qualifiedName + functionName, it.name) new DeclareVariableOperatorFilter().getFilteredNodes(it).each { diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/define/InitializeVariableOperatorFilterTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/define/InitializeVariableOperatorFilterTest.groovy index a9c4b40..3b93734 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/define/InitializeVariableOperatorFilterTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/filter/operator/relational/define/InitializeVariableOperatorFilterTest.groovy @@ -6,7 +6,7 @@ import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter import com.codebrig.arthur.observe.structure.filter.TokenFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -65,12 +65,13 @@ class InitializeVariableOperatorFilterTest extends ArthurTest { private static void assertInitializeVariableOperatorPresent(File file, String qualifiedName) { def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def foundInitializeVariableOperator = false def functionFilter = new FunctionFilter() def nameFilter = new NameFilter(qualifiedName + "initializeVariableOperator()") - MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, resp.uast).each { + MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, rootNode).each { assertEquals(qualifiedName + "initializeVariableOperator()", it.name) new InitializeVariableOperatorFilter().getFilteredNodes(it).each { diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/literal/BashLiteralTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/literal/BashLiteralTest.groovy index d329a08..c0927d7 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/literal/BashLiteralTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/literal/BashLiteralTest.groovy @@ -6,7 +6,7 @@ import com.codebrig.arthur.observe.structure.filter.LiteralFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter import com.codebrig.arthur.observe.structure.filter.operator.relational.define.InitializeVariableOperatorFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -56,11 +56,12 @@ class BashLiteralTest extends ArthurTest { private static void assertBashLiteralPresent(String literalName, String literalType, Object literalValue) { def file = new File("src/test/resources/same/literals/Literals.sh") def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.key, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() boolean foundLiteral = false MultiFilter.matchAll(new NameFilter(literalName), new InitializeVariableOperatorFilter()) - .getFilteredNodes(language, resp.uast).each { + .getFilteredNodes(language, rootNode).each { assertEquals(literalName, it.name) def literalNode = new LiteralFilter().getFilteredNodes(it).next() assertNotNull(literalNode) diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/literal/CPlusPlusLiteralTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/literal/CPlusPlusLiteralTest.groovy index 2fe7f44..f16b765 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/literal/CPlusPlusLiteralTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/literal/CPlusPlusLiteralTest.groovy @@ -6,8 +6,8 @@ import com.codebrig.arthur.observe.structure.filter.LiteralFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter import com.codebrig.arthur.observe.structure.filter.operator.relational.define.InitializeVariableOperatorFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding import org.apache.commons.text.StringEscapeUtils +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -79,11 +79,12 @@ class CPlusPlusLiteralTest extends ArthurTest { private static void assertCPlusPlusLiteralPresent(String literalName, String literalType, Object literalValue) { def file = new File("src/test/resources/same/literals/Literals.cpp") def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() boolean foundLiteral = false MultiFilter.matchAll(new NameFilter(literalName), new InitializeVariableOperatorFilter()) - .getFilteredNodes(language, resp.uast).each { + .getFilteredNodes(language, rootNode).each { assertEquals(literalName, it.name) def literalNode = new LiteralFilter().getFilteredNodes(it).next() assertNotNull(literalNode) diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/literal/CSharpLiteralTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/literal/CSharpLiteralTest.groovy index 2c4759f..88cb9c3 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/literal/CSharpLiteralTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/literal/CSharpLiteralTest.groovy @@ -6,8 +6,8 @@ import com.codebrig.arthur.observe.structure.filter.LiteralFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter import com.codebrig.arthur.observe.structure.filter.operator.relational.define.InitializeVariableOperatorFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding import org.apache.commons.text.StringEscapeUtils +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -78,11 +78,12 @@ class CSharpLiteralTest extends ArthurTest { private static void assertCSharpLiteralPresent(String literalName, String literalType, Object literalValue) { def file = new File("src/test/resources/same/literals/Literals.cs") def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() boolean foundLiteral = false MultiFilter.matchAll(new NameFilter(literalName), new InitializeVariableOperatorFilter()) - .getFilteredNodes(language, resp.uast).each { + .getFilteredNodes(language, rootNode).each { assertEquals(literalName, it.name) def literalNode = new LiteralFilter().getFilteredNodes(it).next() assertNotNull(literalNode) diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/literal/GoLiteralTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/literal/GoLiteralTest.groovy index 7925855..58de510 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/literal/GoLiteralTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/literal/GoLiteralTest.groovy @@ -6,8 +6,8 @@ import com.codebrig.arthur.observe.structure.filter.LiteralFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter import com.codebrig.arthur.observe.structure.filter.operator.relational.define.InitializeVariableOperatorFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding import org.apache.commons.text.StringEscapeUtils +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -50,11 +50,12 @@ class GoLiteralTest extends ArthurTest { private static void assertGoLiteralPresent(String literalName, String literalType, Object literalValue) { def file = new File("src/test/resources/same/literals/Literals.go") def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() boolean foundLiteral = false MultiFilter.matchAll(new NameFilter(literalName), new InitializeVariableOperatorFilter()) - .getFilteredNodes(language, resp.uast).each { + .getFilteredNodes(language, rootNode).each { assertEquals(literalName, it.name) def literalNode = new LiteralFilter().getFilteredNodes(it).next() assertNotNull(literalNode) diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/literal/JavaLiteralTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/literal/JavaLiteralTest.groovy index 563f610..76e962c 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/literal/JavaLiteralTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/literal/JavaLiteralTest.groovy @@ -6,8 +6,8 @@ import com.codebrig.arthur.observe.structure.filter.LiteralFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter import com.codebrig.arthur.observe.structure.filter.operator.relational.define.InitializeVariableOperatorFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding import org.apache.commons.text.StringEscapeUtils +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -74,11 +74,12 @@ class JavaLiteralTest extends ArthurTest { private static void assertJavaLiteralPresent(String literalName, String literalType, Object literalValue) { def file = new File("src/test/resources/same/literals/Literals.java") def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() boolean foundLiteral = false MultiFilter.matchAll(new NameFilter(literalName), new InitializeVariableOperatorFilter()) - .getFilteredNodes(language, resp.uast).each { + .getFilteredNodes(language, rootNode).each { assertEquals(literalName, it.name) def literalNode = new LiteralFilter().getFilteredNodes(it).next() assertNotNull(literalNode) diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/literal/JavascriptLiteralTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/literal/JavascriptLiteralTest.groovy index 4206630..23b0723 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/literal/JavascriptLiteralTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/literal/JavascriptLiteralTest.groovy @@ -6,8 +6,8 @@ import com.codebrig.arthur.observe.structure.filter.LiteralFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter import com.codebrig.arthur.observe.structure.filter.operator.relational.define.InitializeVariableOperatorFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding import org.apache.commons.text.StringEscapeUtils +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -57,11 +57,12 @@ class JavascriptLiteralTest extends ArthurTest { private static void assertJavascriptLiteralPresent(String literalName, String literalType, Object literalValue) { def file = new File("src/test/resources/same/literals/Literals.js") def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() boolean foundLiteral = false MultiFilter.matchAll(new NameFilter(literalName), new InitializeVariableOperatorFilter()) - .getFilteredNodes(language, resp.uast).each { + .getFilteredNodes(language, rootNode).each { assertEquals(literalName, it.name) def literalNode = new LiteralFilter().getFilteredNodes(it).next() assertNotNull(literalNode) diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/literal/PhpLiteralTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/literal/PhpLiteralTest.groovy index fffd8f5..c221d2d 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/literal/PhpLiteralTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/literal/PhpLiteralTest.groovy @@ -6,7 +6,7 @@ import com.codebrig.arthur.observe.structure.filter.LiteralFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter import com.codebrig.arthur.observe.structure.filter.operator.relational.define.InitializeVariableOperatorFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -50,11 +50,12 @@ class PhpLiteralTest extends ArthurTest { private static void assertPhpLiteralPresent(String literalName, String literalType, Object literalValue) { def file = new File("src/test/resources/same/literals/Literals.php") def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() boolean foundLiteral = false MultiFilter.matchAll(new NameFilter(literalName), new InitializeVariableOperatorFilter()) - .getFilteredNodes(language, resp.uast).each { + .getFilteredNodes(language, rootNode).each { assertEquals(literalName, it.name) def literalNode = new LiteralFilter().getFilteredNodes(it).next() assertNotNull(literalNode) diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/literal/PythonLiteralTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/literal/PythonLiteralTest.groovy index a4781cf..101639c 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/literal/PythonLiteralTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/literal/PythonLiteralTest.groovy @@ -6,7 +6,7 @@ import com.codebrig.arthur.observe.structure.filter.LiteralFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter import com.codebrig.arthur.observe.structure.filter.operator.relational.define.InitializeVariableOperatorFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -50,11 +50,12 @@ class PythonLiteralTest extends ArthurTest { private static void assertPythonLiteralPresent(String literalName, String literalType, Object literalValue) { def file = new File("src/test/resources/same/literals/Literals.py") def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() boolean foundLiteral = false MultiFilter.matchAll(new NameFilter(literalName), new InitializeVariableOperatorFilter()) - .getFilteredNodes(language, resp.uast).each { + .getFilteredNodes(language, rootNode).each { assertEquals(literalName, it.name) def literalNode = new LiteralFilter().getFilteredNodes(it).next() assertNotNull(literalNode) diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/literal/RubyLiteralTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/literal/RubyLiteralTest.groovy index 6499db1..9e5347c 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/literal/RubyLiteralTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/literal/RubyLiteralTest.groovy @@ -6,7 +6,7 @@ import com.codebrig.arthur.observe.structure.filter.LiteralFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter import com.codebrig.arthur.observe.structure.filter.operator.relational.define.InitializeVariableOperatorFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -63,11 +63,12 @@ class RubyLiteralTest extends ArthurTest { private static void assertRubyLiteralPresent(String literalName, String literalType, Object literalValue) { def file = new File("src/test/resources/same/literals/Literals.rb") def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() boolean foundLiteral = false MultiFilter.matchAll(new NameFilter(literalName), new InitializeVariableOperatorFilter()) - .getFilteredNodes(language, resp.uast).each { + .getFilteredNodes(language, rootNode).each { assertEquals(literalName, it.name) def literalNode = new LiteralFilter().getFilteredNodes(it).next() assertNotNull(literalNode) diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/naming/BashNamingTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/naming/BashNamingTest.groovy index 19a9421..73d0f58 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/naming/BashNamingTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/naming/BashNamingTest.groovy @@ -5,7 +5,7 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -28,12 +28,13 @@ class BashNamingTest extends ArthurTest { private static void assertBashNamingPresent(String functionName, String argsList) { def file = new File("src/test/resources/same/functions/Functions.sh") def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.key, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def functionFilter = new FunctionFilter() def nameFilter = new NameFilter(functionName + argsList) boolean foundFunction = false - MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, resp.uast).each { + MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, rootNode).each { assertEquals(functionName + argsList, it.name) foundFunction = true } diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/naming/CPlusPlusNamingTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/naming/CPlusPlusNamingTest.groovy index 32ea8ff..256a93b 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/naming/CPlusPlusNamingTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/naming/CPlusPlusNamingTest.groovy @@ -5,7 +5,7 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -95,12 +95,13 @@ class CPlusPlusNamingTest extends ArthurTest { private static void assertCPlusPlusNamingPresent(String functionName, String argsList) { def file = new File("src/test/resources/same/functions/Functions.cpp") def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def functionFilter = new FunctionFilter() def nameFilter = new NameFilter(functionName + argsList) boolean foundFunction = false - MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, resp.uast).each { + MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, rootNode).each { assertEquals(functionName + argsList, it.name) foundFunction = true } diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/naming/CSharpNamingTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/naming/CSharpNamingTest.groovy index 3f75297..73b5533 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/naming/CSharpNamingTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/naming/CSharpNamingTest.groovy @@ -5,7 +5,7 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.assertEquals @@ -87,12 +87,13 @@ class CSharpNamingTest extends ArthurTest { private static void assertCSharpNamingPresent(String functionName, String argsList) { def file = new File("src/test/resources/same/functions/Functions.cs") def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def functionFilter = new FunctionFilter() def nameFilter = new NameFilter(functionName + argsList) boolean foundFunction = false - MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, resp.uast).each { + MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, rootNode).each { assertEquals(functionName + argsList, it.name) foundFunction = true } diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/naming/GoNamingTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/naming/GoNamingTest.groovy index f65faa9..d762219 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/naming/GoNamingTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/naming/GoNamingTest.groovy @@ -5,7 +5,6 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding import org.junit.Test import static org.junit.Assert.* @@ -71,7 +70,7 @@ class GoNamingTest extends ArthurTest { private static void assertGoNamingPresent(String functionName, String argsList) { def file = new File("src/test/resources/same/functions/Functions.go") def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) def functionFilter = new FunctionFilter() def nameFilter = new NameFilter(functionName + argsList) diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/naming/JavaNamingTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/naming/JavaNamingTest.groovy index 46967c2..9380f7e 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/naming/JavaNamingTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/naming/JavaNamingTest.groovy @@ -5,7 +5,7 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.* @@ -61,12 +61,13 @@ class JavaNamingTest extends ArthurTest { private static void assertJavaNamingPresent(String functionName, String argsList) { def file = new File("src/test/resources/same/functions/Functions.java") def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def functionFilter = new FunctionFilter() def nameFilter = new NameFilter("Functions." + functionName + argsList) boolean foundFunction = false - MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, resp.uast).each { + MultiFilter.matchAll(functionFilter, nameFilter).getFilteredNodes(language, rootNode).each { assertEquals("Functions." + functionName + argsList, it.name) foundFunction = true } diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/naming/JavascriptNamingTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/naming/JavascriptNamingTest.groovy index 18b968f..5e1ce6b 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/naming/JavascriptNamingTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/naming/JavascriptNamingTest.groovy @@ -5,7 +5,6 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding import org.junit.Test import static org.junit.Assert.assertEquals @@ -52,7 +51,7 @@ class JavascriptNamingTest extends ArthurTest { private static void assertJavascriptNamingPresent(String functionName, String argsList) { def file = new File("src/test/resources/same/functions/Functions.js") def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) def functionFilter = new FunctionFilter() def nameFilter = new NameFilter(functionName + argsList) diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/naming/PhpNamingTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/naming/PhpNamingTest.groovy index 3f75fb3..040b28d 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/naming/PhpNamingTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/naming/PhpNamingTest.groovy @@ -5,7 +5,6 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding import org.junit.Test import static org.junit.Assert.assertEquals @@ -57,7 +56,7 @@ class PhpNamingTest extends ArthurTest { private static void assertPhpNamingPresent(String functionName, String argsList) { def file = new File("src/test/resources/same/functions/Functions.php") def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) def functionFilter = new FunctionFilter() def nameFilter = new NameFilter(functionName + argsList) diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/naming/PythonNamingTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/naming/PythonNamingTest.groovy index 198841e..c62bf74 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/naming/PythonNamingTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/naming/PythonNamingTest.groovy @@ -5,7 +5,6 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding import org.junit.Test import static org.junit.Assert.assertEquals @@ -72,7 +71,7 @@ class PythonNamingTest extends ArthurTest { private static void assertPythonNamingPresent(String functionName, String argsList) { def file = new File("src/test/resources/same/functions/Functions.py") def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) def functionFilter = new FunctionFilter() def nameFilter = new NameFilter(functionName + argsList) diff --git a/src/test/groovy/com/codebrig/arthur/observe/structure/naming/RubyNamingTest.groovy b/src/test/groovy/com/codebrig/arthur/observe/structure/naming/RubyNamingTest.groovy index 79a6881..76553af 100644 --- a/src/test/groovy/com/codebrig/arthur/observe/structure/naming/RubyNamingTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/observe/structure/naming/RubyNamingTest.groovy @@ -5,7 +5,6 @@ import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.FunctionFilter import com.codebrig.arthur.observe.structure.filter.MultiFilter import com.codebrig.arthur.observe.structure.filter.NameFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding import org.junit.Test import static org.junit.Assert.assertEquals @@ -52,7 +51,7 @@ class RubyNamingTest extends ArthurTest { private static void assertRubyNamingPresent(String functionName, String argsList) { def file = new File("src/test/resources/same/functions/Functions.rb") def language = SourceLanguage.getSourceLanguage(file) - def resp = client.parse(file.name, file.text, language.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, language.babelfishName) def functionFilter = new FunctionFilter() def nameFilter = new NameFilter(functionName + argsList) diff --git a/src/test/groovy/com/codebrig/arthur/schema/naming/JavaNamingTest.groovy b/src/test/groovy/com/codebrig/arthur/schema/naming/JavaNamingTest.groovy index 2d105aa..d31ceec 100644 --- a/src/test/groovy/com/codebrig/arthur/schema/naming/JavaNamingTest.groovy +++ b/src/test/groovy/com/codebrig/arthur/schema/naming/JavaNamingTest.groovy @@ -4,7 +4,7 @@ import com.codebrig.arthur.ArthurTest import com.codebrig.arthur.SourceLanguage import com.codebrig.arthur.observe.structure.filter.RoleFilter import com.codebrig.arthur.observe.structure.filter.TypeFilter -import gopkg.in.bblfsh.sdk.v1.protocol.generated.Encoding +import org.bblfsh.client.v2.BblfshClient import org.junit.Test import static org.junit.Assert.assertEquals @@ -15,10 +15,11 @@ class JavaNamingTest extends ArthurTest { @Test void fileQualifiedName_noPackage() { def file = new File("src/test/resources/java/ForStmt.java") - def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def fileFilter = new RoleFilter("FILE") - fileFilter.getFilteredNodes(SourceLanguage.Java, resp.uast).each { + fileFilter.getFilteredNodes(SourceLanguage.Java, rootNode).each { assertEquals("ForStmt", it.name) } } @@ -26,10 +27,11 @@ class JavaNamingTest extends ArthurTest { @Test void fileQualifiedName_withPackage() { def file = new File("src/test/resources/java/com/company/ForStmt_WithPackage.java") - def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def fileFilter = new RoleFilter("FILE") - fileFilter.getFilteredNodes(SourceLanguage.Java, resp.uast).each { + fileFilter.getFilteredNodes(SourceLanguage.Java, rootNode).each { assertEquals("com.company.ForStmt", it.name) } } @@ -37,10 +39,11 @@ class JavaNamingTest extends ArthurTest { @Test void methodQualifiedName_noPackage() { def file = new File("src/test/resources/java/ForStmt.java") - def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def functionFilter = new TypeFilter("MethodDeclaration") - functionFilter.getFilteredNodes(SourceLanguage.Java, resp.uast).each { + functionFilter.getFilteredNodes(SourceLanguage.Java, rootNode).each { assertEquals("ForStmt.method()", it.name) } } @@ -48,10 +51,11 @@ class JavaNamingTest extends ArthurTest { @Test void methodQualifiedName_withPackage() { def file = new File("src/test/resources/java/com/company/ForStmt_WithPackage.java") - def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def functionFilter = new TypeFilter("MethodDeclaration") - functionFilter.getFilteredNodes(SourceLanguage.Java, resp.uast).each { + functionFilter.getFilteredNodes(SourceLanguage.Java, rootNode).each { assertEquals("com.company.ForStmt.method()", it.name) } } @@ -59,7 +63,8 @@ class JavaNamingTest extends ArthurTest { @Test void methodQualifiedName_variousStuff_noPackage_differentArgs() { def file = new File("src/test/resources/java/VariousStuff.java") - def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName) + def rootNode = new BblfshClient.UastMethods(resp.uast()).decode().root().load() def functionFilter = new TypeFilter("MethodDeclaration") boolean foundQualifiedTypeArgs = false @@ -68,7 +73,7 @@ class JavaNamingTest extends ArthurTest { boolean foundStringArrayArgs2 = false boolean foundIterableArgs = false boolean foundListMapArgs = false - functionFilter.getFilteredNodes(SourceLanguage.Java, resp.uast).each { + functionFilter.getFilteredNodes(SourceLanguage.Java, rootNode).each { switch (it.name) { case "VariousStuff.method_QualifiedTypeArgs(TypeToken.TypeSet)": foundQualifiedTypeArgs = true @@ -101,7 +106,7 @@ class JavaNamingTest extends ArthurTest { @Test void methodQualifiedName_variousStuff_noPackage() { def file = new File("src/test/resources/java/VariousStuff.java") - def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName) def functionFilter = new TypeFilter("MethodDeclaration") boolean foundMethod3 = false @@ -128,7 +133,7 @@ class JavaNamingTest extends ArthurTest { @Test void methodQualifiedName_variousStuff_withPackage() { def file = new File("src/test/resources/java/com/company/VariousStuff.java") - def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName) def functionFilter = new TypeFilter("MethodDeclaration") boolean foundMethod3 = false @@ -157,7 +162,7 @@ class JavaNamingTest extends ArthurTest { @Test void methodQualifiedName_importQualified_noPackage() { def file = new File("src/test/resources/java/ImportQualifiedName.java") - def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName) def functionFilter = new TypeFilter("MethodDeclaration") boolean foundSetMethod = false @@ -186,7 +191,7 @@ class JavaNamingTest extends ArthurTest { @Test void methodQualifiedName_importQualified_withPackage() { def file = new File("src/test/resources/java/com/company/ImportQualifiedName.java") - def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName, Encoding.UTF8$.MODULE$) + def resp = client.parse(file.name, file.text, SourceLanguage.Java.babelfishName) def functionFilter = new TypeFilter("MethodDeclaration") boolean foundSetMethod = false