Skip to content

Fix more test that fail due to cypher deprecation removals #1167

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Mar 23, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,14 @@ void connectionUsedForTransactionReturnedToThePoolWhenTransactionFailsToCommitte
{
try ( Session session = driver.session() )
{
session.run( "CREATE CONSTRAINT ON (book:Library) ASSERT exists(book.isbn)" );
if ( neo4j.isNeo4j43OrEarlier() )
{
session.run( "CREATE CONSTRAINT ON (book:Library) ASSERT exists(book.isbn)" );
}
else
{
session.run( "CREATE CONSTRAINT FOR (book:Library) REQUIRE book.isbn IS NOT NULL" );
}
}

Connection connection1 = connectionPool.lastAcquiredConnectionSpy;
Expand Down
12 changes: 11 additions & 1 deletion driver/src/test/java/org/neo4j/driver/integration/ErrorIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,17 @@ void shouldExplainConnectionError()
void shouldHandleFailureAtRunTime()
{
String label = UUID.randomUUID().toString(); // avoid clashes with other tests
String query = "CREATE CONSTRAINT ON (a:`" + label + "`) ASSERT a.name IS UNIQUE";
String query;

if ( session.isNeo4j43OrEarlier() )
{
query = "CREATE CONSTRAINT ON (a:`" + label + "`) ASSERT a.name IS UNIQUE";
}
else
{
query = "CREATE CONSTRAINT FOR (a:`" + label + "`) REQUIRE a.name IS UNIQUE";
}

// given
Transaction tx = session.beginTransaction();
tx.run( query );
Expand Down
36 changes: 29 additions & 7 deletions driver/src/test/java/org/neo4j/driver/integration/SummaryIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -125,13 +125,28 @@ void shouldContainCorrectStatistics()
assertTrue( session.run( "CREATE (n {magic: 42})" ).consume().counters().containsUpdates() );
assertThat( session.run( "MATCH (n:ALabel) REMOVE n:ALabel " ).consume().counters().labelsRemoved(), equalTo( 1 ) );

assertThat( session.run( "CREATE INDEX superIndex FOR (n:ALabel) ON (n.prop)" ).consume().counters().indexesAdded(), equalTo( 1 ) );
assertThat( session.run( "DROP INDEX superIndex" ).consume().counters().indexesRemoved(), equalTo( 1 ) );

assertThat( session.run( "CREATE CONSTRAINT restrictedConstraint ON (book:Book) ASSERT book.isbn IS UNIQUE" )
.consume().counters().constraintsAdded(), equalTo( 1 ) );
assertThat( session.run( "DROP CONSTRAINT restrictedConstraint" )
.consume().counters().constraintsRemoved(), equalTo( 1 ) );
if ( neo4j.isNeo4j43OrEarlier() )
{
assertThat( session.run( "CREATE INDEX ON :ALabel(prop)" ).consume().counters().indexesAdded(), equalTo( 1 ) );
assertThat( session.run( "DROP INDEX ON :ALabel(prop)" ).consume().counters().indexesRemoved(), equalTo( 1 ) );

assertThat( session.run( "CREATE CONSTRAINT restrictedConstraint ON (book:Book) ASSERT book.isbn IS UNIQUE" )
.consume().counters().constraintsAdded(), equalTo( 1 ) );
assertThat( session.run( "DROP CONSTRAINT restrictedConstraint" )
.consume().counters().constraintsRemoved(), equalTo( 1 ) );
}
else
{
assertThat( session.run( "CREATE INDEX superIndex FOR (n:ALabel) ON (n.prop)" ).consume().counters().indexesAdded(), equalTo( 1 ) );
assertThat( session.run( "DROP INDEX superIndex" ).consume().counters().indexesRemoved(), equalTo( 1 ) );

assertThat( session.run( "CREATE CONSTRAINT restrictedConstraint FOR (book:Book) REQUIRE book.isbn IS UNIQUE" )
.consume().counters().constraintsAdded(), equalTo( 1 ) );
assertThat( session.run( "DROP CONSTRAINT restrictedConstraint" )
.consume().counters().constraintsRemoved(), equalTo( 1 ) );
}

}

@Test
Expand All @@ -152,7 +167,14 @@ void shouldContainCorrectQueryType()
assertThat( session.run("MATCH (n) RETURN 1").consume().queryType(), equalTo( QueryType.READ_ONLY ));
assertThat( session.run("CREATE (n)").consume().queryType(), equalTo( QueryType.WRITE_ONLY ));
assertThat( session.run("CREATE (n) RETURN (n)").consume().queryType(), equalTo( QueryType.READ_WRITE ));
assertThat( session.run("CREATE INDEX ON :User(p)").consume().queryType(), equalTo( QueryType.SCHEMA_WRITE ));
if ( neo4j.isNeo4j43OrEarlier() )
{
assertThat( session.run("CREATE INDEX ON :User(p)").consume().queryType(), equalTo( QueryType.SCHEMA_WRITE ));
}
else
{
assertThat( session.run("CREATE INDEX FOR (n:User) ON n.p").consume().queryType(), equalTo( QueryType.SCHEMA_WRITE ));
}
}

@Test
Expand Down
27 changes: 8 additions & 19 deletions driver/src/test/java/org/neo4j/driver/util/DatabaseExtension.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
import org.neo4j.driver.internal.BoltServerAddress;
import org.neo4j.driver.types.TypeSystem;

import static org.junit.Assume.assumeTrue;
import static java.lang.Integer.parseInt;
import static org.neo4j.driver.util.Neo4jRunner.DEFAULT_AUTH_TOKEN;
import static org.neo4j.driver.util.Neo4jRunner.HOME_DIR;
import static org.neo4j.driver.util.Neo4jRunner.debug;
Expand Down Expand Up @@ -150,20 +150,6 @@ public File tlsKeyFile()
return new File( HOME_DIR, DEFAULT_TLS_KEY_PATH );
}

public void ensureProcedures( String jarName ) throws IOException
{
// These procedures were written against 3.x API.
// As graph database service API is totally changed since 4.0. These procedures are no long valid.
assumeTrue( getMajorVersion() < 4 );
File procedureJar = new File( HOME_DIR, "plugins/" + jarName );
if ( !procedureJar.exists() )
{
FileTools.copyFile( new File( TEST_RESOURCE_FOLDER_PATH, jarName ), procedureJar );
debug( "Added a new procedure `%s`", jarName );
runner.forceToRestart(); // needs to force restart as no configuration changed
}
}

public void startDb()
{
runner.startNeo4j();
Expand All @@ -174,13 +160,16 @@ public void stopDb()
runner.stopNeo4j();
}

public int getMajorVersion()
public boolean isNeo4j43OrEarlier()
{
try ( Session session = driver().session() )
{
String protocolVersion = session.readTransaction( tx -> tx.run( "RETURN 1" ).consume().server().protocolVersion() );
String[] versions = protocolVersion.split( "\\." );
return Integer.parseInt( versions[0] );
String neo4jVersion = session.readTransaction( tx -> tx.run( "CALL dbms.components() YIELD versions " +
"RETURN versions[0] AS version" ).single().get( "version" ).asString() );
String[] versions = neo4jVersion.split( "\\." );
int major = parseInt( versions[0] );
int minor = parseInt( versions[1] );
return major <= 4 && minor <= 3;
}
}

Expand Down