GH-2543 - Fix Neo4j 5.0 Cypher incompatibility in tests.

Closes #2543
This commit is contained in:
Gerrit Meier
2022-05-24 14:07:08 +02:00
parent 4d5a280275
commit 376ad7006b
5 changed files with 31 additions and 21 deletions

View File

@@ -214,13 +214,13 @@ class DynamicRelationshipsIT extends DynamicRelationshipsITBase<PersonWithRelati
assertThat(newPerson.getRelatives()).containsOnlyKeys(TypeOfRelative.RELATIVE_1, TypeOfRelative.RELATIVE_2);
assertThat(newPerson.getClubs()).containsOnlyKeys(TypeOfClub.BASEBALL, TypeOfClub.FOOTBALL);
try (Transaction transaction = driver.session().beginTransaction()) {
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", 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<PersonWithRelati
pets = newPerson.getPets();
assertThat(pets).containsOnlyKeys(TypeOfPet.MONSTERS, TypeOfPet.FISH);
try (Transaction transaction = driver.session().beginTransaction()) {
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),
.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);

View File

@@ -211,11 +211,11 @@ class StringlyTypedDynamicRelationshipsIT extends DynamicRelationshipsITBase<Per
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", 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<Per
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", 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);
}

View File

@@ -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();
}
}
}

View File

@@ -220,13 +220,13 @@ class ReactiveDynamicRelationshipsIT extends DynamicRelationshipsITBase<PersonWi
assertThat(relatives).containsOnlyKeys(TypeOfRelative.RELATIVE_1, TypeOfRelative.RELATIVE_2);
}).verifyComplete();
try (Transaction transaction = driver.session().beginTransaction()) {
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);
}
@@ -270,13 +270,15 @@ class ReactiveDynamicRelationshipsIT extends DynamicRelationshipsITBase<PersonWi
assertThat(writtenPets).containsOnlyKeys(TypeOfPet.MONSTERS, TypeOfPet.FISH);
}).verifyComplete();
try (Transaction transaction = driver.session().beginTransaction()) {
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);
}

View File

@@ -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);
}