Skip to content

Commit

Permalink
add test for #112 (#154)
Browse files Browse the repository at this point in the history
  • Loading branch information
Andy2003 authored Nov 12, 2020
1 parent 0b79507 commit 04cc0b1
Show file tree
Hide file tree
Showing 3 changed files with 171 additions and 9 deletions.
16 changes: 9 additions & 7 deletions core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,10 @@
<name>Neo4j GraphQL Java</name>
<description>GraphQL to Cypher Mapping</description>

<properties>
<neo4j.version>3.5.6</neo4j.version>
<driver.version>1.7.2</driver.version>
</properties>

<dependencies>
<dependency>
<groupId>org.neo4j.driver</groupId>
<artifactId>neo4j-java-driver</artifactId>
<version>${driver.version}</version>
<scope>test</scope>
</dependency>
<dependency>
Expand Down Expand Up @@ -70,7 +64,6 @@
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.5.1</version>
<scope>test</scope>
</dependency>
<dependency>
Expand Down Expand Up @@ -98,4 +91,13 @@
</dependency>
</dependencies>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-kernel</artifactId>
<version>${neo4j.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
140 changes: 140 additions & 0 deletions core/src/test/resources/issues/gh-112.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
:toc:

= Github Issue #112: deleting bidirectional relationships

== Schema

[source,graphql,schema=true]
----
type User
{
name: String!
uuid: ID!
associates: [User!] @relation(name:"ASSOCIATES_WITH", direction:BOTH)
}
----

== Test Data

[source,cypher,test-data=true]
----
CREATE
(pete:User{ name: 'Pete', uuid: '1' }),
(fred:User{ name: 'Fred', uuid: '2' }),
(harry:User{ name: 'Harry', uuid: '3' }),
(pete)<-[:ASSOCIATES_WITH]-(fred),
(fred)<-[:ASSOCIATES_WITH]-(harry)
----

== Query

.GraphQL-Query
[source,graphql]
----
query {
user(uuid: $uuid) {
uuid
name
associates { name uuid }
}
}
----

.Query variables
[source,json,request=true]
----
{
"uuid": "2"
}
----

.GraphQL-Response
[source,json,response=true]
----
{
"user" : [ {
"associates" : [ {
"name" : "Harry",
"uuid" : "3"
}, {
"name" : "Pete",
"uuid" : "1"
} ],
"name" : "Fred",
"uuid" : "2"
} ]
}
----

.Cypher Params
[source,json]
----
{
"uuid" : "2"
}
----

.Cypher
[source,cypher]
----
MATCH (user: User)
WHERE user.uuid = $uuid
RETURN user {
.uuid,
.name,
associates: [(user)-[: ASSOCIATES_WITH]-(userAssociates: User) | userAssociates {
.name,
.uuid
}]
} AS user
----

== Delete relation no matter of direction

.GraphQL-Query
[source,graphql]
----
mutation {
deleteUserAssociates(uuid: "2", associates: ["1", "3"]) {
name
associates { name uuid }
}
}
----

.GraphQL-Response
[source,json,response=true]
----
{
"deleteUserAssociates" : {
"associates" : [ ],
"name" : "Fred"
}
}
----

.Cypher Params
[source,json]
----
{
"fromUuid" : "2",
"toAssociates" : [ "1", "3" ]
}
----

.Cypher
[source,cypher]
----
MATCH (from: User { uuid: $fromUuid })
MATCH (to: User) WHERE to.uuid IN $toAssociates
MATCH (from)-[r: ASSOCIATES_WITH]-(to)
DELETE r
WITH DISTINCT from AS deleteUserAssociates
RETURN deleteUserAssociates {
.name,
associates: [(deleteUserAssociates)-[: ASSOCIATES_WITH]-(deleteUserAssociatesAssociates: User) | deleteUserAssociatesAssociates {
.name,
.uuid
}]
} AS deleteUserAssociates
----
24 changes: 22 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@
<java.version>1.8</java.version>
<kotlin.version>1.4.10</kotlin.version>
<kotlin.compiler.jvmTarget>${java.version}</kotlin.compiler.jvmTarget>
<neo4j.version>3.5.6</neo4j.version>
<neo4j.version>3.5.23</neo4j.version>
<neo4j-apoc.version>3.5.0.15</neo4j-apoc.version>
<driver.version>1.7.2</driver.version>
<driver.version>1.7.5</driver.version>
</properties>

<modules>
Expand Down Expand Up @@ -73,6 +73,26 @@
</dependency>
</dependencies>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.neo4j.driver</groupId>
<artifactId>neo4j-java-driver</artifactId>
<version>${driver.version}</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.5.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.30</version>
</dependency>
</dependencies>
</dependencyManagement>

<build>
<sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
<testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory>
Expand Down

0 comments on commit 04cc0b1

Please sign in to comment.