From 376ad7006bf5793d78feafd355114e60cf8a5262 Mon Sep 17 00:00:00 2001 From: Gerrit Meier Date: Tue, 24 May 2022 14:07:08 +0200 Subject: [PATCH] GH-2543 - Fix Neo4j 5.0 Cypher incompatibility in tests. Closes #2543 --- .../imperative/DynamicRelationshipsIT.java | 12 ++++++------ .../StringlyTypedDynamicRelationshipsIT.java | 10 ++++++---- .../neo4j/integration/issues/gh2542/GH2542IT.java | 6 +++++- .../reactive/ReactiveDynamicRelationshipsIT.java | 14 ++++++++------ ...ReactiveStringlyTypeDynamicRelationshipsIT.java | 10 ++++++---- 5 files changed, 31 insertions(+), 21 deletions(-) diff --git a/src/test/java/org/springframework/data/neo4j/integration/imperative/DynamicRelationshipsIT.java b/src/test/java/org/springframework/data/neo4j/integration/imperative/DynamicRelationshipsIT.java index dd88e072f..010ba9d9c 100644 --- a/src/test/java/org/springframework/data/neo4j/integration/imperative/DynamicRelationshipsIT.java +++ b/src/test/java/org/springframework/data/neo4j/integration/imperative/DynamicRelationshipsIT.java @@ -214,13 +214,13 @@ class DynamicRelationshipsIT extends DynamicRelationshipsITBase(:Person)) as numberOfRelations").formatted(labelOfTestSubject), Values.parameters("id", newPerson.getId())) + .run(("MATCH (t:%s)-[r]->(:Person) WHERE id(t) = $id RETURN count(r) as numberOfRelations").formatted(labelOfTestSubject), Values.parameters("id", newPerson.getId())) .single().get("numberOfRelations").asLong(); assertThat(numberOfRelations).isEqualTo(2L); numberOfRelations = transaction - .run(("MATCH (t:%s) WHERE id(t) = $id RETURN size((t)-->(:Club)) as numberOfRelations").formatted(labelOfTestSubject), Values.parameters("id", newPerson.getId())) + .run(("MATCH (t:%s)-[r]->(:Club) WHERE id(t) = $id RETURN count(r) as numberOfRelations").formatted(labelOfTestSubject), Values.parameters("id", newPerson.getId())) .single().get("numberOfRelations").asLong(); assertThat(numberOfRelations).isEqualTo(2L); } @@ -260,14 +260,14 @@ class DynamicRelationshipsIT extends DynamicRelationshipsITBase(:Pet)) as numberOfRelations").formatted(labelOfTestSubject), + .run(("MATCH (t:%s)-[r]->(:Pet) WHERE id(t) = $id RETURN count(r) as numberOfRelations").formatted(labelOfTestSubject), Values.parameters("id", newPerson.getId())) .single().get("numberOfRelations").asLong(); assertThat(numberOfRelations).isEqualTo(3L); numberOfRelations = transaction - .run(("MATCH (t:%s) WHERE id(t) = $id RETURN size((t)-->(:Hobby)) as numberOfRelations").formatted(labelOfTestSubject), + .run(("MATCH (t:%s)-[r]->(:Hobby) WHERE id(t) = $id RETURN count(r) as numberOfRelations").formatted(labelOfTestSubject), Values.parameters("id", newPerson.getId())) .single().get("numberOfRelations").asLong(); assertThat(numberOfRelations).isEqualTo(2L); diff --git a/src/test/java/org/springframework/data/neo4j/integration/imperative/StringlyTypedDynamicRelationshipsIT.java b/src/test/java/org/springframework/data/neo4j/integration/imperative/StringlyTypedDynamicRelationshipsIT.java index 73cf1c1d0..d08624bed 100644 --- a/src/test/java/org/springframework/data/neo4j/integration/imperative/StringlyTypedDynamicRelationshipsIT.java +++ b/src/test/java/org/springframework/data/neo4j/integration/imperative/StringlyTypedDynamicRelationshipsIT.java @@ -211,11 +211,11 @@ class StringlyTypedDynamicRelationshipsIT extends DynamicRelationshipsITBase(:Person)) as numberOfRelations".formatted(labelOfTestSubject), Values.parameters("id", newPerson.getId())) + .run(("MATCH (t:%s)-[r]->(:Person) WHERE id(t) = $id RETURN count(r) as numberOfRelations").formatted(labelOfTestSubject), Values.parameters("id", newPerson.getId())) .single().get("numberOfRelations").asLong(); assertThat(numberOfRelations).isEqualTo(2L); numberOfRelations = transaction - .run("MATCH (t:%s) WHERE id(t) = $id RETURN size((t)-->(:Club)) as numberOfRelations".formatted(labelOfTestSubject), Values.parameters("id", newPerson.getId())) + .run(("MATCH (t:%s)-[r]->(:Club) WHERE id(t) = $id RETURN count(r) as numberOfRelations").formatted(labelOfTestSubject), Values.parameters("id", newPerson.getId())) .single().get("numberOfRelations").asLong(); assertThat(numberOfRelations).isEqualTo(2L); } @@ -255,11 +255,13 @@ class StringlyTypedDynamicRelationshipsIT extends DynamicRelationshipsITBase(:Pet)) as numberOfRelations".formatted(labelOfTestSubject), Values.parameters("id", newPerson.getId())) + .run(("MATCH (t:%s)-[r]->(:Pet) WHERE id(t) = $id RETURN count(r) as numberOfRelations").formatted(labelOfTestSubject), + Values.parameters("id", newPerson.getId())) .single().get("numberOfRelations").asLong(); assertThat(numberOfRelations).isEqualTo(3L); numberOfRelations = transaction - .run("MATCH (t:%s) WHERE id(t) = $id RETURN size((t)-->(:Hobby)) as numberOfRelations".formatted(labelOfTestSubject), Values.parameters("id", newPerson.getId())) + .run(("MATCH (t:%s)-[r]->(:Hobby) WHERE id(t) = $id RETURN count(r) as numberOfRelations").formatted(labelOfTestSubject), + Values.parameters("id", newPerson.getId())) .single().get("numberOfRelations").asLong(); assertThat(numberOfRelations).isEqualTo(2L); } diff --git a/src/test/java/org/springframework/data/neo4j/integration/issues/gh2542/GH2542IT.java b/src/test/java/org/springframework/data/neo4j/integration/issues/gh2542/GH2542IT.java index ff707caf7..4c3235d8e 100644 --- a/src/test/java/org/springframework/data/neo4j/integration/issues/gh2542/GH2542IT.java +++ b/src/test/java/org/springframework/data/neo4j/integration/issues/gh2542/GH2542IT.java @@ -52,7 +52,11 @@ class GH2542IT { try (Session session = neo4jConnectionSupport.getDriver().session()) { session.run("MATCH (n) DETACH DELETE n"); - session.run("CREATE CONSTRAINT TNC IF NOT EXISTS ON (tn:TestNode) ASSERT tn.name IS UNIQUE").consume(); + if (neo4jConnectionSupport.isCypher5SyntaxCompatible()) { + session.run("CREATE CONSTRAINT TNC IF NOT EXISTS FOR (tn:TestNode) REQUIRE tn.name IS UNIQUE").consume(); + } else { + session.run("CREATE CONSTRAINT TNC IF NOT EXISTS ON (tn:TestNode) ASSERT tn.name IS UNIQUE").consume(); + } } } diff --git a/src/test/java/org/springframework/data/neo4j/integration/reactive/ReactiveDynamicRelationshipsIT.java b/src/test/java/org/springframework/data/neo4j/integration/reactive/ReactiveDynamicRelationshipsIT.java index ce95908e0..82d297370 100644 --- a/src/test/java/org/springframework/data/neo4j/integration/reactive/ReactiveDynamicRelationshipsIT.java +++ b/src/test/java/org/springframework/data/neo4j/integration/reactive/ReactiveDynamicRelationshipsIT.java @@ -220,13 +220,13 @@ class ReactiveDynamicRelationshipsIT extends DynamicRelationshipsITBase(:Person)) as numberOfRelations".formatted(labelOfTestSubject), Values.parameters("id", recorded.get(0).getId())) + .run(("MATCH (t:%s)-[r]->(:Person) WHERE id(t) = $id RETURN count(r) as numberOfRelations").formatted(labelOfTestSubject), Values.parameters("id", newPerson.getId())) .single().get("numberOfRelations").asLong(); assertThat(numberOfRelations).isEqualTo(2L); numberOfRelations = transaction - .run("MATCH (t:%s) WHERE id(t) = $id RETURN size((t)-->(:Club)) as numberOfRelations".formatted(labelOfTestSubject), Values.parameters("id", newPerson.getId())) + .run(("MATCH (t:%s)-[r]->(:Club) WHERE id(t) = $id RETURN count(r) as numberOfRelations").formatted(labelOfTestSubject), Values.parameters("id", newPerson.getId())) .single().get("numberOfRelations").asLong(); assertThat(numberOfRelations).isEqualTo(2L); } @@ -270,13 +270,15 @@ class ReactiveDynamicRelationshipsIT extends DynamicRelationshipsITBase(:Pet)) as numberOfRelations".formatted(labelOfTestSubject), Values.parameters("id", recorded.get(0).getId())) + .run(("MATCH (t:%s)-[r]->(:Pet) WHERE id(t) = $id RETURN count(r) as numberOfRelations").formatted(labelOfTestSubject), + Values.parameters("id", newPerson.getId())) .single().get("numberOfRelations").asLong(); assertThat(numberOfRelations).isEqualTo(3L); numberOfRelations = transaction - .run("MATCH (t:%s) WHERE id(t) = $id RETURN size((t)-->(:Hobby)) as numberOfRelations".formatted(labelOfTestSubject), Values.parameters("id", newPerson.getId())) + .run(("MATCH (t:%s)-[r]->(:Hobby) WHERE id(t) = $id RETURN count(r) as numberOfRelations").formatted(labelOfTestSubject), + Values.parameters("id", newPerson.getId())) .single().get("numberOfRelations").asLong(); assertThat(numberOfRelations).isEqualTo(2L); } diff --git a/src/test/java/org/springframework/data/neo4j/integration/reactive/ReactiveStringlyTypeDynamicRelationshipsIT.java b/src/test/java/org/springframework/data/neo4j/integration/reactive/ReactiveStringlyTypeDynamicRelationshipsIT.java index b6d871b1d..4deddafe8 100644 --- a/src/test/java/org/springframework/data/neo4j/integration/reactive/ReactiveStringlyTypeDynamicRelationshipsIT.java +++ b/src/test/java/org/springframework/data/neo4j/integration/reactive/ReactiveStringlyTypeDynamicRelationshipsIT.java @@ -221,11 +221,11 @@ class ReactiveStringlyTypeDynamicRelationshipsIT extends DynamicRelationshipsITB try (Transaction transaction = driver.session(bookmarkCapture.createSessionConfig()).beginTransaction()) { long numberOfRelations = transaction - .run("MATCH (t:%s) WHERE id(t) = $id RETURN size((t)-->(:Person)) as numberOfRelations".formatted(labelOfTestSubject), Values.parameters("id", recorded.get(0).getId())) + .run(("MATCH (t:%s)-[r]->(:Person) WHERE id(t) = $id RETURN count(r) as numberOfRelations").formatted(labelOfTestSubject), Values.parameters("id", newPerson.getId())) .single().get("numberOfRelations").asLong(); assertThat(numberOfRelations).isEqualTo(2L); numberOfRelations = transaction - .run("MATCH (t:%s) WHERE id(t) = $id RETURN size((t)-->(:Club)) as numberOfRelations".formatted(labelOfTestSubject), Values.parameters("id", newPerson.getId())) + .run(("MATCH (t:%s)-[r]->(:Club) WHERE id(t) = $id RETURN count(r) as numberOfRelations").formatted(labelOfTestSubject), Values.parameters("id", newPerson.getId())) .single().get("numberOfRelations").asLong(); assertThat(numberOfRelations).isEqualTo(2L); } @@ -268,11 +268,13 @@ class ReactiveStringlyTypeDynamicRelationshipsIT extends DynamicRelationshipsITB try (Transaction transaction = driver.session(bookmarkCapture.createSessionConfig()).beginTransaction()) { long numberOfRelations = transaction - .run("MATCH (t:%s) WHERE id(t) = $id RETURN size((t)-->(:Pet)) as numberOfRelations".formatted(labelOfTestSubject), Values.parameters("id", recorded.get(0).getId())) + .run(("MATCH (t:%s)-[r]->(:Pet) WHERE id(t) = $id RETURN count(r) as numberOfRelations").formatted(labelOfTestSubject), + Values.parameters("id", newPerson.getId())) .single().get("numberOfRelations").asLong(); assertThat(numberOfRelations).isEqualTo(3L); numberOfRelations = transaction - .run("MATCH (t:%s) WHERE id(t) = $id RETURN size((t)-->(:Hobby)) as numberOfRelations".formatted(labelOfTestSubject), Values.parameters("id", newPerson.getId())) + .run(("MATCH (t:%s)-[r]->(:Hobby) WHERE id(t) = $id RETURN count(r) as numberOfRelations").formatted(labelOfTestSubject), + Values.parameters("id", newPerson.getId())) .single().get("numberOfRelations").asLong(); assertThat(numberOfRelations).isEqualTo(2L); }