Skip to content

Commit 34c0d25

Browse files
authored
Merge pull request #627 from zhenlineo/4.0-bookmark-tests
Fixing the failing bookmark test
2 parents a0cf79a + 6ea49e5 commit 34c0d25

File tree

2 files changed

+51
-4
lines changed

2 files changed

+51
-4
lines changed

driver/src/test/java/org/neo4j/driver/integration/BookmarkIT.java

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,14 @@
1818
*/
1919
package org.neo4j.driver.integration;
2020

21+
import org.hamcrest.BaseMatcher;
22+
import org.hamcrest.Description;
2123
import org.junit.jupiter.api.BeforeEach;
2224
import org.junit.jupiter.api.Test;
2325
import org.junit.jupiter.api.extension.RegisterExtension;
2426

27+
import java.util.UUID;
28+
2529
import org.neo4j.driver.Driver;
2630
import org.neo4j.driver.Session;
2731
import org.neo4j.driver.Transaction;
@@ -33,7 +37,6 @@
3337
import org.neo4j.driver.util.ParallelizableIT;
3438
import org.neo4j.driver.util.SessionExtension;
3539

36-
import static org.hamcrest.Matchers.not;
3740
import static org.hamcrest.Matchers.startsWith;
3841
import static org.junit.jupiter.api.Assertions.assertEquals;
3942
import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -84,8 +87,26 @@ void shouldReceiveNewBookmarkOnSuccessfulCommit() throws Throwable
8487
createNodeInTx( session );
8588

8689
// Then
87-
assertBookmarkContainsSingleValue( session.lastBookmark(), startsWith( "neo4j:" ) );
88-
assertBookmarkContainsSingleValue( session.lastBookmark(), not( startsWith( "neo4j:bookmark:v1:tx" ) ) );
90+
assertBookmarkContainsSingleValue( session.lastBookmark(), new BaseMatcher<String>()
91+
{
92+
@Override
93+
public boolean matches( Object item )
94+
{
95+
if ( item instanceof String )
96+
{
97+
String bookmark = (String) item;
98+
String[] split = bookmark.split( ":" );
99+
return split.length == 2 && isUuid( split[0] ) && isNumeric( split[1] );
100+
}
101+
return false;
102+
}
103+
104+
@Override
105+
public void describeTo( Description description )
106+
{
107+
description.appendText( "Expecting a bookmark with format 'database_uuid:tx_id'" );
108+
}
109+
} );
89110
}
90111

91112
@Test
@@ -212,4 +233,30 @@ private static void createNodeInTx( Session session )
212233
tx.commit();
213234
}
214235
}
236+
237+
private static boolean isUuid( String string )
238+
{
239+
try
240+
{
241+
UUID.fromString( string );
242+
}
243+
catch ( IllegalArgumentException | NullPointerException e )
244+
{
245+
return false;
246+
}
247+
return true;
248+
}
249+
250+
private static boolean isNumeric( String string )
251+
{
252+
try
253+
{
254+
Long.parseLong( string );
255+
}
256+
catch ( NumberFormatException | NullPointerException e )
257+
{
258+
return false;
259+
}
260+
return true;
261+
}
215262
}

driver/src/test/java/org/neo4j/driver/util/TestUtil.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public final class TestUtil
102102
public static final int DEFAULT_TEST_PROTOCOL_VERSION = BoltProtocolV4.VERSION;
103103
public static final BoltProtocol DEFAULT_TEST_PROTOCOL = BoltProtocol.forVersion( DEFAULT_TEST_PROTOCOL_VERSION );
104104

105-
private static final long DEFAULT_WAIT_TIME_MS = MINUTES.toMillis( 1 );
105+
private static final long DEFAULT_WAIT_TIME_MS = MINUTES.toMillis( 2 );
106106
private static final String ALPHANUMERICS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz123456789";
107107
public static final Duration TX_TIMEOUT_TEST_TIMEOUT = Duration.ofSeconds( 10 );
108108

0 commit comments

Comments
 (0)