diff --git a/driver/src/main/java/org/neo4j/driver/SessionConfig.java b/driver/src/main/java/org/neo4j/driver/SessionConfig.java index 1a70b18897..6d73b51e4c 100644 --- a/driver/src/main/java/org/neo4j/driver/SessionConfig.java +++ b/driver/src/main/java/org/neo4j/driver/SessionConfig.java @@ -123,7 +123,7 @@ public boolean equals( Object o ) return false; } SessionConfig that = (SessionConfig) o; - return Objects.equals( bookmarks, that.bookmarks ) && defaultAccessMode == that.defaultAccessMode && database.equals( that.database ); + return Objects.equals( bookmarks, that.bookmarks ) && defaultAccessMode == that.defaultAccessMode && Objects.equals( database, that.database ); } @Override diff --git a/driver/src/test/java/org/neo4j/driver/SessionConfigTest.java b/driver/src/test/java/org/neo4j/driver/SessionConfigTest.java index 1c737021cb..000d3c0889 100644 --- a/driver/src/test/java/org/neo4j/driver/SessionConfigTest.java +++ b/driver/src/test/java/org/neo4j/driver/SessionConfigTest.java @@ -18,14 +18,16 @@ */ package org.neo4j.driver; -import org.junit.Assert; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.EnumSource; +import org.junit.jupiter.params.provider.MethodSource; import org.junit.jupiter.params.provider.ValueSource; import java.util.Arrays; import java.util.List; +import java.util.stream.Stream; import org.neo4j.driver.internal.Bookmark; @@ -37,6 +39,7 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.params.provider.Arguments.arguments; import static org.neo4j.driver.SessionConfig.builder; import static org.neo4j.driver.SessionConfig.defaultConfig; import static org.neo4j.driver.internal.InternalBookmark.parse; @@ -49,7 +52,7 @@ void shouldReturnDefaultValues() throws Throwable { SessionConfig config = defaultConfig(); - Assert.assertEquals( AccessMode.WRITE, config.defaultAccessMode() ); + assertEquals( AccessMode.WRITE, config.defaultAccessMode() ); assertFalse( config.database().isPresent() ); assertNull( config.bookmarks() ); } @@ -77,6 +80,22 @@ void shouldNotAllowNullDatabaseName() throws Throwable assertThrows( NullPointerException.class, () -> builder().withDatabase( null ) ); } + @ParameterizedTest + @MethodSource("someConfigs") + void nullDatabaseNameMustNotBreakEquals(SessionConfig config1, SessionConfig config2, boolean expectedEquals) { + + assertEquals( config1.equals( config2 ), expectedEquals ); + } + + static Stream someConfigs() { + return Stream.of( + arguments( SessionConfig.builder().build(), SessionConfig.builder().build(), true ), + arguments( SessionConfig.builder().withDatabase( "a" ).build(), SessionConfig.builder().build(), false ), + arguments( SessionConfig.builder().build(), SessionConfig.builder().withDatabase( "a" ).build(), false ), + arguments( SessionConfig.builder().withDatabase( "a" ).build(), SessionConfig.builder().withDatabase( "a" ).build(), true ) + ); + } + @ParameterizedTest @ValueSource( strings = {"", ABSENT_DB_NAME} ) void shouldForbiddenEmptyStringDatabaseName( String databaseName ) throws Throwable