22
22
import org .junit .jupiter .api .AfterEach ;
23
23
import org .junit .jupiter .api .BeforeAll ;
24
24
import org .junit .jupiter .api .Test ;
25
- import org .mockito .ArgumentCaptor ;
26
25
import reactor .core .publisher .Flux ;
27
26
import reactor .core .publisher .Mono ;
28
27
import reactor .test .StepVerifier ;
29
28
30
29
import java .net .URI ;
31
30
import java .util .ArrayList ;
32
31
import java .util .List ;
33
- import java .util .Optional ;
34
32
import java .util .function .Consumer ;
35
33
36
34
import org .neo4j .driver .AccessMode ;
39
37
import org .neo4j .driver .Config ;
40
38
import org .neo4j .driver .Driver ;
41
39
import org .neo4j .driver .GraphDatabase ;
42
- import org .neo4j .driver .Logger ;
43
- import org .neo4j .driver .Record ;
44
40
import org .neo4j .driver .Result ;
45
41
import org .neo4j .driver .Session ;
46
42
import org .neo4j .driver .Transaction ;
67
63
import static org .junit .jupiter .api .Assertions .assertNull ;
68
64
import static org .junit .jupiter .api .Assertions .assertThrows ;
69
65
import static org .junit .jupiter .api .Assertions .assertTrue ;
70
- import static org .mockito .ArgumentMatchers .any ;
71
- import static org .mockito .Mockito .atLeastOnce ;
72
- import static org .mockito .Mockito .mock ;
73
- import static org .mockito .Mockito .verify ;
74
- import static org .mockito .Mockito .when ;
75
66
import static org .neo4j .driver .SessionConfig .builder ;
76
67
import static org .neo4j .driver .SessionConfig .forDatabase ;
77
- import static org .neo4j .driver .Values .parameters ;
78
68
import static org .neo4j .driver .internal .logging .DevNullLogging .DEV_NULL_LOGGING ;
79
69
import static org .neo4j .driver .util .StubServer .INSECURE_CONFIG ;
80
70
import static org .neo4j .driver .util .StubServer .insecureBuilder ;
81
- import static org .neo4j .driver .util .TestUtil .asOrderedSet ;
82
71
import static org .neo4j .driver .util .TestUtil .await ;
83
72
84
73
class DirectDriverBoltKitIT
@@ -97,140 +86,6 @@ public void killServers()
97
86
stubController .reset ();
98
87
}
99
88
100
- @ Test
101
- void shouldBeAbleRunCypher () throws Exception
102
- {
103
- StubServer server = stubController .startStub ( "return_x.script" , 9001 );
104
- URI uri = URI .create ( "bolt://127.0.0.1:9001" );
105
- int x ;
106
-
107
- try ( Driver driver = GraphDatabase .driver ( uri , INSECURE_CONFIG ) )
108
- {
109
- try ( Session session = driver .session () )
110
- {
111
- Record record = session .run ( "RETURN {x}" , parameters ( "x" , 1 ) ).single ();
112
- x = record .get ( 0 ).asInt ();
113
- }
114
- }
115
-
116
- assertThat ( x , equalTo ( 1 ) );
117
- assertThat ( server .exitStatus (), equalTo ( 0 ) );
118
- }
119
-
120
- @ Test
121
- void shouldSendMultipleBookmarks () throws Exception
122
- {
123
- StubServer server = stubController .startStub ( "multiple_bookmarks.script" , 9001 );
124
-
125
- Bookmark bookmarks = InternalBookmark .parse ( asOrderedSet ( "neo4j:bookmark:v1:tx5" , "neo4j:bookmark:v1:tx29" ,
126
- "neo4j:bookmark:v1:tx94" , "neo4j:bookmark:v1:tx56" , "neo4j:bookmark:v1:tx16" , "neo4j:bookmark:v1:tx68" ) );
127
-
128
- try ( Driver driver = GraphDatabase .driver ( "bolt://localhost:9001" , INSECURE_CONFIG );
129
- Session session = driver .session ( builder ().withBookmarks ( bookmarks ).build () ) )
130
- {
131
- try ( Transaction tx = session .beginTransaction () )
132
- {
133
- tx .run ( "CREATE (n {name:'Bob'})" );
134
- tx .commit ();
135
- }
136
-
137
- assertEquals ( InternalBookmark .parse ( "neo4j:bookmark:v1:tx95" ), session .lastBookmark () );
138
- }
139
- finally
140
- {
141
- assertEquals ( 0 , server .exitStatus () );
142
- }
143
- }
144
-
145
- @ Test
146
- void shouldSendNullRoutingContextForBoltUri () throws Exception
147
- {
148
- StubServer server = StubServer .start ( "hello_with_routing_context_bolt.script" , 9001 );
149
-
150
- try ( Driver driver = GraphDatabase .driver ( "bolt://localhost:9001" , INSECURE_CONFIG );
151
- Session session = driver .session () )
152
- {
153
- List <String > names = session .run ( "MATCH (n) RETURN n.name" ).list ( record -> record .get ( 0 ).asString () );
154
- assertEquals ( asList ( "Foo" , "Bar" ), names );
155
-
156
- }
157
- finally
158
- {
159
- assertEquals ( 0 , server .exitStatus () );
160
- }
161
- }
162
-
163
- @ Test
164
- void shouldLogConnectionIdInDebugMode () throws Exception
165
- {
166
- StubServer server = stubController .startStub ( "hello_run_exit.script" , 9001 );
167
-
168
- Logger logger = mock ( Logger .class );
169
- when ( logger .isDebugEnabled () ).thenReturn ( true );
170
-
171
- Config config = Config .builder ()
172
- .withLogging ( ignore -> logger )
173
- .withoutEncryption ()
174
- .build ();
175
-
176
- try ( Driver driver = GraphDatabase .driver ( "bolt://localhost:9001" , config );
177
- Session session = driver .session () )
178
- {
179
- List <String > names = session .run ( "MATCH (n) RETURN n.name" ).list ( record -> record .get ( 0 ).asString () );
180
- assertEquals ( asList ( "Foo" , "Bar" ), names );
181
-
182
- ArgumentCaptor <String > messageCaptor = ArgumentCaptor .forClass ( String .class );
183
- verify ( logger , atLeastOnce () ).debug ( messageCaptor .capture (), any ( Object [].class ) );
184
-
185
- Optional <String > logMessageWithConnectionId = messageCaptor .getAllValues ()
186
- .stream ()
187
- .filter ( line -> line .contains ( "bolt-123456789" ) )
188
- .findAny ();
189
-
190
- assertTrue ( logMessageWithConnectionId .isPresent (),
191
- "Expected log call did not happen. All debug log calls:\n " + String .join ( "\n " , messageCaptor .getAllValues () ) );
192
- }
193
- finally
194
- {
195
- assertEquals ( 0 , server .exitStatus () );
196
- }
197
- }
198
-
199
- @ Test
200
- void shouldSendReadAccessModeInQueryMetadata () throws Exception
201
- {
202
- StubServer server = stubController .startStub ( "hello_run_exit_read.script" , 9001 );
203
-
204
-
205
- try ( Driver driver = GraphDatabase .driver ( "bolt://localhost:9001" , INSECURE_CONFIG );
206
- Session session = driver .session ( builder ().withDefaultAccessMode ( AccessMode .READ ).build () ) )
207
- {
208
- List <String > names = session .run ( "MATCH (n) RETURN n.name" ).list ( record -> record .get ( 0 ).asString () );
209
- assertEquals ( asList ( "Foo" , "Bar" ), names );
210
- }
211
- finally
212
- {
213
- assertEquals ( 0 , server .exitStatus () );
214
- }
215
- }
216
-
217
- @ Test
218
- void shouldNotSendWriteAccessModeInQueryMetadata () throws Exception
219
- {
220
- StubServer server = stubController .startStub ( "hello_run_exit.script" , 9001 );
221
-
222
- try ( Driver driver = GraphDatabase .driver ( "bolt://localhost:9001" , INSECURE_CONFIG );
223
- Session session = driver .session ( builder ().withDefaultAccessMode ( AccessMode .WRITE ).build () ) )
224
- {
225
- List <String > names = session .run ( "MATCH (n) RETURN n.name" ).list ( record -> record .get ( 0 ).asString () );
226
- assertEquals ( asList ( "Foo" , "Bar" ), names );
227
- }
228
- finally
229
- {
230
- assertEquals ( 0 , server .exitStatus () );
231
- }
232
- }
233
-
234
89
@ Test
235
90
void shouldCloseChannelWhenResetFails () throws Exception
236
91
{
@@ -597,25 +452,6 @@ void shouldBeAbleHandleNOOPsDuringRunCypher() throws Exception
597
452
assertThat ( server .exitStatus (), equalTo ( 0 ) );
598
453
}
599
454
600
- @ Test
601
- void shouldSendCustomerUserAgentInHelloMessage () throws Exception
602
- {
603
- StubServer server = stubController .startStub ( "hello_with_custom_user_agent.script" , 9001 );
604
-
605
- Config config = Config .builder ().withUserAgent ( "AwesomeClient" ).build ();
606
-
607
- try ( Driver driver = GraphDatabase .driver ( "bolt://localhost:9001" , config );
608
- Session session = driver .session ( builder ().withDefaultAccessMode ( AccessMode .WRITE ).build () ) )
609
- {
610
- List <String > names = session .run ( "MATCH (n) RETURN n.name" ).list ( record -> record .get ( 0 ).asString () );
611
- assertEquals ( asList ( "Foo" , "Bar" ), names );
612
- }
613
- finally
614
- {
615
- assertEquals ( 0 , server .exitStatus () );
616
- }
617
- }
618
-
619
455
private static void testTxCloseErrorPropagation ( String script , Consumer <Transaction > txAction , String expectedErrorMessage )
620
456
throws Exception
621
457
{
0 commit comments