Skip to content

Commit 5eb4abf

Browse files
committed
Add some reference contribution tests
1 parent 816c6be commit 5eb4abf

File tree

10 files changed

+115
-5
lines changed

10 files changed

+115
-5
lines changed

language/cypher/src/main/java/com/neueda/jetbrains/plugin/graphdb/language/cypher/completion/metadata/CypherMetadataProviderService.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,12 @@ public interface CypherMetadataProviderService {
2323

2424
List<CypherUserFunctionElement> getUserFunctions();
2525

26+
Optional<CypherLabelElement> findLabel(String labelName);
27+
28+
Optional<CypherRelationshipTypeElement> findRelationshipType(String relationshipTypeName);
29+
30+
Optional<CypherPropertyKeyElement> findPropertyKey(String propertyKeyName);
31+
2632
Optional<CypherProcedureElement> findProcedure(String fullName);
2733

2834
Optional<CypherUserFunctionElement> findUserFunction(String fullName);

language/cypher/src/main/java/com/neueda/jetbrains/plugin/graphdb/language/cypher/completion/metadata/CypherMetadataProviderServiceImpl.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,33 @@ public List<CypherUserFunctionElement> getUserFunctions() {
7474
.collect(Collectors.toList());
7575
}
7676

77+
@Override
78+
public Optional<CypherLabelElement> findLabel(String labelName) {
79+
return sourceData.entrySet().stream()
80+
.map(Map.Entry::getValue)
81+
.flatMap((container) -> container.getLabels().stream())
82+
.filter((labelElement) -> labelElement.getName().equals(labelName))
83+
.findFirst();
84+
}
85+
86+
@Override
87+
public Optional<CypherRelationshipTypeElement> findRelationshipType(String relationshipTypeName) {
88+
return sourceData.entrySet().stream()
89+
.map(Map.Entry::getValue)
90+
.flatMap((container) -> container.getRelationshipTypes().stream())
91+
.filter((relationshipTypeElement) -> relationshipTypeElement.getName().equals(relationshipTypeName))
92+
.findFirst();
93+
}
94+
95+
@Override
96+
public Optional<CypherPropertyKeyElement> findPropertyKey(String propertyKeyName) {
97+
return sourceData.entrySet().stream()
98+
.map(Map.Entry::getValue)
99+
.flatMap((container) -> container.getPropertyKeys().stream())
100+
.filter((propertyKeyElement) -> propertyKeyElement.getName().equals(propertyKeyName))
101+
.findFirst();
102+
}
103+
77104
@Override
78105
public Optional<CypherProcedureElement> findProcedure(String name) {
79106
return sourceData.entrySet().stream()

language/cypher/src/main/java/com/neueda/jetbrains/plugin/graphdb/language/cypher/completion/metadata/elements/CypherLabelElement.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,8 @@ public LookupElement getLookupElement() {
1818
.withIcon(GraphIcons.Nodes.LABEL)
1919
.withTypeText("label");
2020
}
21+
22+
public String getName() {
23+
return label;
24+
}
2125
}

language/cypher/src/main/java/com/neueda/jetbrains/plugin/graphdb/language/cypher/completion/metadata/elements/CypherPropertyKeyElement.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,8 @@ public LookupElement getLookupElement() {
1818
.withIcon(GraphIcons.Nodes.PROPERTY_KEY)
1919
.withTypeText("property");
2020
}
21+
22+
public String getName() {
23+
return propertyKey;
24+
}
2125
}

language/cypher/src/main/java/com/neueda/jetbrains/plugin/graphdb/language/cypher/completion/metadata/elements/CypherRelationshipTypeElement.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,8 @@ public LookupElement getLookupElement() {
1818
.withIcon(GraphIcons.Nodes.RELATIONSHIP_TYPE)
1919
.withTypeText("relationship type");
2020
}
21+
22+
public String getName() {
23+
return relationshipType;
24+
}
2125
}

language/cypher/src/main/java/com/neueda/jetbrains/plugin/graphdb/language/cypher/references/CypherReferenceContributor.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,7 @@
22

33
import com.intellij.patterns.ElementPattern;
44
import com.intellij.patterns.PlatformPatterns;
5-
import com.intellij.psi.PsiElement;
6-
import com.intellij.psi.PsiReference;
7-
import com.intellij.psi.PsiReferenceContributor;
8-
import com.intellij.psi.PsiReferenceProvider;
9-
import com.intellij.psi.PsiReferenceRegistrar;
5+
import com.intellij.psi.*;
106
import com.intellij.util.ProcessingContext;
117
import com.neueda.jetbrains.plugin.graphdb.language.cypher.CypherLanguage;
128
import com.neueda.jetbrains.plugin.graphdb.language.cypher.psi.CypherLabelName;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.neueda.jetbrains.plugin.graphdb.test.integration.neo4j.tests.cypher.reference;
2+
3+
import com.neueda.jetbrains.plugin.graphdb.test.integration.neo4j.tests.cypher.util.BaseCompletionTest;
4+
5+
public class LabelReferenceContributorTest extends BaseCompletionTest {
6+
7+
public void testPresentInCompletion() throws Exception {
8+
myFixture.configureByText("test.cyp", "MATCH (n:TestLabel) RETURN n; MATCH (n:Test<caret>");
9+
myFixture.completeBasic();
10+
myFixture.checkResult("MATCH (n:TestLabel) RETURN n; MATCH (n:TestLabel<caret>");
11+
}
12+
13+
public void _testOneEntryPresentInCompletionIfMetadataExists() throws Exception {
14+
addLabel("TestLabel");
15+
myFixture.configureByText("test.cyp", "MATCH (n:TestLabel) RETURN n; MATCH (n:Test<caret>");
16+
myFixture.completeBasic();
17+
myFixture.checkResult("MATCH (n:TestLabel) RETURN n; MATCH (n:TestLabel<caret>");
18+
}
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.neueda.jetbrains.plugin.graphdb.test.integration.neo4j.tests.cypher.reference;
2+
3+
import com.neueda.jetbrains.plugin.graphdb.test.integration.neo4j.tests.cypher.util.BaseCompletionTest;
4+
5+
public class PropertyReferenceContributorTest extends BaseCompletionTest {
6+
7+
public void testPresentInCompletion() throws Exception {
8+
myFixture.configureByText("test.cyp", "MATCH (n) WHERE n.testProperty = 1 RETURN n.testProp<caret>");
9+
myFixture.completeBasic();
10+
myFixture.checkResult("MATCH (n) WHERE n.testProperty = 1 RETURN n.testProperty<caret>");
11+
}
12+
13+
public void _testOneEntryPresentInCompletionIfMetadataExists() throws Exception {
14+
addProperty("testProperty");
15+
myFixture.configureByText("test.cyp", "MATCH (n) WHERE n.testProperty = 1 RETURN n.testProp<caret>");
16+
myFixture.completeBasic();
17+
myFixture.checkResult("MATCH (n) WHERE n.testProperty = 1 RETURN n.testProperty<caret>");
18+
}
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.neueda.jetbrains.plugin.graphdb.test.integration.neo4j.tests.cypher.reference;
2+
3+
import com.neueda.jetbrains.plugin.graphdb.test.integration.neo4j.tests.cypher.util.BaseCompletionTest;
4+
5+
public class RelationshipTypeReferenceContributorTest extends BaseCompletionTest {
6+
7+
public void testPresentInCompletion() throws Exception {
8+
myFixture.configureByText("test.cyp", "MATCH ()-[:TESTRELTYPE]-() MATCH ()-[:TESTREL<caret>");
9+
myFixture.completeBasic();
10+
myFixture.checkResult("MATCH ()-[:TESTRELTYPE]-() MATCH ()-[:TESTRELTYPE<caret>");
11+
}
12+
13+
public void _testOneEntryPresentInCompletionIfMetadataExists() throws Exception {
14+
addRelationshipType("TESTRELTYPE");
15+
myFixture.configureByText("test.cyp", "MATCH ()-[:TESTRELTYPE]-() MATCH ()-[:TESTREL<caret>");
16+
myFixture.completeBasic();
17+
myFixture.checkResult("MATCH ()-[:TESTRELTYPE]-() MATCH ()-[:TESTRELTYPE<caret>");
18+
}
19+
}

testing/integration-neo4j/src/test/java/com/neueda/jetbrains/plugin/graphdb/test/integration/neo4j/tests/cypher/util/BaseCompletionTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,16 @@ public void setUp() throws Exception {
1515
public void addStoredProcedure(String name, String signature, String description) {
1616
metadata.addProcedure(name, signature, description);
1717
}
18+
19+
public void addLabel(String name) {
20+
metadata.addLabel(name);
21+
}
22+
23+
public void addRelationshipType(String name) {
24+
metadata.addRelationshipType(name);
25+
}
26+
27+
public void addProperty(String name) {
28+
metadata.addPropertyKey(name);
29+
}
1830
}

0 commit comments

Comments
 (0)