From 709d0703d734d4139524e3f884d72e4c7255617b Mon Sep 17 00:00:00 2001 From: Pontus Melke Date: Tue, 22 Mar 2016 11:32:21 +0100 Subject: [PATCH 1/3] Handle null for AuthToken and Config --- .../org/neo4j/driver/v1/GraphDatabase.java | 5 ++- .../driver/v1/integration/SessionIT.java | 32 +++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/driver/src/main/java/org/neo4j/driver/v1/GraphDatabase.java b/driver/src/main/java/org/neo4j/driver/v1/GraphDatabase.java index 229d14baa3..1cf3f629be 100644 --- a/driver/src/main/java/org/neo4j/driver/v1/GraphDatabase.java +++ b/driver/src/main/java/org/neo4j/driver/v1/GraphDatabase.java @@ -122,6 +122,9 @@ public static Driver driver( String url, AuthToken authToken, Config config ) */ public static Driver driver( URI url, AuthToken authToken, Config config ) { - return new InternalDriver( url, authToken, config ); + AuthToken tokenToUse = authToken != null ? authToken: AuthTokens.none(); + Config configToUse = config != null ? config: Config.defaultConfig(); + + return new InternalDriver( url, tokenToUse, configToUse ); } } diff --git a/driver/src/test/java/org/neo4j/driver/v1/integration/SessionIT.java b/driver/src/test/java/org/neo4j/driver/v1/integration/SessionIT.java index fceeacd841..495b60915d 100644 --- a/driver/src/test/java/org/neo4j/driver/v1/integration/SessionIT.java +++ b/driver/src/test/java/org/neo4j/driver/v1/integration/SessionIT.java @@ -21,6 +21,8 @@ import org.junit.Rule; import org.junit.Test; +import org.neo4j.driver.v1.AuthToken; +import org.neo4j.driver.v1.AuthTokens; import org.neo4j.driver.v1.Driver; import org.neo4j.driver.v1.GraphDatabase; import org.neo4j.driver.v1.Session; @@ -46,4 +48,34 @@ public void shouldKnowSessionIsClosed() throws Throwable // Then assertFalse( session.isOpen() ); } + + @Test + public void shouldHandleNullConfig() throws Throwable + { + // Given + Driver driver = GraphDatabase.driver( neo4j.address(), AuthTokens.none(), null ); + Session session = driver.session(); + + // When + session.close(); + + // Then + assertFalse( session.isOpen() ); + } + + @SuppressWarnings( "ConstantConditions" ) + @Test + public void shouldHandleNullAuthToken() throws Throwable + { + // Given + AuthToken token = null; + Driver driver = GraphDatabase.driver( neo4j.address(), token); + Session session = driver.session(); + + // When + session.close(); + + // Then + assertFalse( session.isOpen() ); + } } From d91525ec736a02571be45b8653eee13c01938336 Mon Sep 17 00:00:00 2001 From: Pontus Melke Date: Tue, 22 Mar 2016 11:42:39 +0100 Subject: [PATCH 2/3] Handle null params in session.run --- .../driver/internal/InternalSession.java | 7 ++-- .../driver/v1/integration/StatementIT.java | 40 +++++++++++++++++++ 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/driver/src/main/java/org/neo4j/driver/internal/InternalSession.java b/driver/src/main/java/org/neo4j/driver/internal/InternalSession.java index 7f71f6b3b8..70fa2d79cb 100644 --- a/driver/src/main/java/org/neo4j/driver/internal/InternalSession.java +++ b/driver/src/main/java/org/neo4j/driver/internal/InternalSession.java @@ -69,14 +69,15 @@ public StatementResult run( String statementText ) @Override public StatementResult run( String statementText, Map statementParameters ) { - return run( statementText, value( statementParameters ) ); + Value params = statementParameters == null ? Values.EmptyMap : value(statementParameters); + return run( statementText, params ); } @Override public StatementResult run( String statementTemplate, Record statementParameters ) { - // TODO: This conversion to map here is pointless, it gets converted right back - return run( statementTemplate, statementParameters.asMap() ); + Value params = statementParameters == null ? Values.EmptyMap : value( statementParameters.asMap() ); + return run( statementTemplate, params ); } @Override diff --git a/driver/src/test/java/org/neo4j/driver/v1/integration/StatementIT.java b/driver/src/test/java/org/neo4j/driver/v1/integration/StatementIT.java index 04198a3e83..c1534194ab 100644 --- a/driver/src/test/java/org/neo4j/driver/v1/integration/StatementIT.java +++ b/driver/src/test/java/org/neo4j/driver/v1/integration/StatementIT.java @@ -24,6 +24,7 @@ import java.util.Collections; import java.util.Iterator; import java.util.List; +import java.util.Map; import org.neo4j.driver.v1.Record; import org.neo4j.driver.v1.StatementResult; @@ -74,6 +75,45 @@ public void shouldRunWithParameters() throws Throwable // Then nothing should've failed } + @SuppressWarnings( "ConstantConditions" ) + @Test + public void shouldRunWithNullValuesAsParameters() throws Throwable + { + // Given + Value params = null; + + // When + session.run( "CREATE (n:FirstNode {name:'Steven'})", params ); + + // Then nothing should've failed + } + + @SuppressWarnings( "ConstantConditions" ) + @Test + public void shouldRunWithNullRecordAsParameters() throws Throwable + { + // Given + Record params = null; + + // When + session.run( "CREATE (n:FirstNode {name:'Steven'})", params ); + + // Then nothing should've failed + } + + @SuppressWarnings( "ConstantConditions" ) + @Test + public void shouldRunWithNullMapAsParameters() throws Throwable + { + // Given + Map params = null; + + // When + session.run( "CREATE (n:FirstNode {name:'Steven'})", params ); + + // Then nothing should've failed + } + @Test public void shouldRunWithCollectionAsParameter() throws Throwable { From 3c47e0a646fc410e8b0e3bf70e3c5e0b28ab07bd Mon Sep 17 00:00:00 2001 From: Pontus Melke Date: Tue, 22 Mar 2016 11:56:20 +0100 Subject: [PATCH 3/3] Handle null params in tx.run --- .../driver/internal/InternalTransaction.java | 8 ++-- .../driver/v1/integration/TransactionIT.java | 47 +++++++++++++++++++ 2 files changed, 52 insertions(+), 3 deletions(-) diff --git a/driver/src/main/java/org/neo4j/driver/internal/InternalTransaction.java b/driver/src/main/java/org/neo4j/driver/internal/InternalTransaction.java index 684ee4bc9b..9fb43949a2 100644 --- a/driver/src/main/java/org/neo4j/driver/internal/InternalTransaction.java +++ b/driver/src/main/java/org/neo4j/driver/internal/InternalTransaction.java @@ -35,6 +35,7 @@ import org.neo4j.driver.v1.types.TypeSystem; import static org.neo4j.driver.v1.Values.ofValue; +import static org.neo4j.driver.v1.Values.value; public class InternalTransaction implements Transaction { @@ -142,14 +143,15 @@ public StatementResult run( String statementText ) @Override public StatementResult run( String statementText, Map statementParameters ) { - return run( statementText, Values.value( statementParameters ) ); + Value params = statementParameters == null ? Values.EmptyMap : value(statementParameters); + return run( statementText, params ); } @Override public StatementResult run( String statementTemplate, Record statementParameters ) { - // TODO: This conversion to map here is pointless, it gets converted right back - return run( statementTemplate, statementParameters.asMap() ); + Value params = statementParameters == null ? Values.EmptyMap : value( statementParameters.asMap() ); + return run( statementTemplate, params ); } @Override diff --git a/driver/src/test/java/org/neo4j/driver/v1/integration/TransactionIT.java b/driver/src/test/java/org/neo4j/driver/v1/integration/TransactionIT.java index 511efb6190..dbe6de3750 100644 --- a/driver/src/test/java/org/neo4j/driver/v1/integration/TransactionIT.java +++ b/driver/src/test/java/org/neo4j/driver/v1/integration/TransactionIT.java @@ -22,6 +22,9 @@ import org.junit.Test; import org.junit.rules.ExpectedException; +import java.util.Map; + +import org.neo4j.driver.v1.Record; import org.neo4j.driver.v1.StatementResult; import org.neo4j.driver.v1.Transaction; import org.neo4j.driver.v1.Value; @@ -164,4 +167,48 @@ public void shouldHandleFailureAfterClosingTransaction() session.run("CREAT (n) RETURN n").consume(); } + @SuppressWarnings( "ConstantConditions" ) + @Test + public void shouldHandleNullRecordParameters() throws Throwable + { + // When + try ( Transaction tx = session.beginTransaction() ) + { + Record params = null; + tx.run( "CREATE (n:FirstNode)", params ); + tx.success(); + } + + // Then it wasn't the end of the world as we know it + } + + @SuppressWarnings( "ConstantConditions" ) + @Test + public void shouldHandleNullValueParameters() throws Throwable + { + // When + try ( Transaction tx = session.beginTransaction() ) + { + Value params = null; + tx.run( "CREATE (n:FirstNode)", params ); + tx.success(); + } + + // Then it wasn't the end of the world as we know it + } + + @SuppressWarnings( "ConstantConditions" ) + @Test + public void shouldHandleNullMapParameters() throws Throwable + { + // When + try ( Transaction tx = session.beginTransaction() ) + { + Map params = null; + tx.run( "CREATE (n:FirstNode)", params ); + tx.success(); + } + + // Then it wasn't the end of the world as we know it + } }