16
16
* See the License for the specific language governing permissions and
17
17
* limitations under the License.
18
18
*/
19
- package org .neo4j .driver .internal .summary ;
19
+ package org .neo4j .driver .internal .util ;
20
20
21
21
import org .junit .Test ;
22
22
26
26
27
27
import org .neo4j .driver .internal .BoltServerAddress ;
28
28
import org .neo4j .driver .internal .spi .Connection ;
29
- import org .neo4j .driver .internal .util . ServerVersion ;
29
+ import org .neo4j .driver .internal .summary . InternalInputPosition ;
30
30
import org .neo4j .driver .v1 .Statement ;
31
31
import org .neo4j .driver .v1 .Value ;
32
32
import org .neo4j .driver .v1 .summary .Notification ;
35
35
import org .neo4j .driver .v1 .summary .ResultSummary ;
36
36
37
37
import static java .util .Arrays .asList ;
38
+ import static java .util .Collections .emptyList ;
38
39
import static java .util .Collections .emptyMap ;
39
40
import static java .util .Collections .singletonMap ;
40
41
import static org .junit .Assert .assertEquals ;
44
45
import static org .mockito .Mockito .mock ;
45
46
import static org .mockito .Mockito .when ;
46
47
import static org .neo4j .driver .internal .summary .InternalSummaryCounters .EMPTY_STATS ;
47
- import static org .neo4j .driver .internal .summary .ResultSummaryCreator .create ;
48
+ import static org .neo4j .driver .internal .util .MetadataUtil .extractResultAvailableAfter ;
49
+ import static org .neo4j .driver .internal .util .MetadataUtil .extractStatementKeys ;
50
+ import static org .neo4j .driver .internal .util .MetadataUtil .extractSummary ;
48
51
import static org .neo4j .driver .v1 .Values .parameters ;
49
52
import static org .neo4j .driver .v1 .Values .value ;
50
53
import static org .neo4j .driver .v1 .Values .values ;
53
56
import static org .neo4j .driver .v1 .summary .StatementType .SCHEMA_WRITE ;
54
57
import static org .neo4j .driver .v1 .summary .StatementType .WRITE_ONLY ;
55
58
56
- public class ResultSummaryCreatorTest
59
+ public class MetadataUtilTest
57
60
{
61
+ @ Test
62
+ public void shouldExtractStatementKeys ()
63
+ {
64
+ List <String > keys = asList ( "hello" , " " , "world" , "!" );
65
+ List <String > extractedKeys = extractStatementKeys ( singletonMap ( "fields" , value ( keys ) ) );
66
+ assertEquals ( keys , extractedKeys );
67
+ }
68
+
69
+ @ Test
70
+ public void shouldExtractEmptyStatementKeysWhenNoneInMetadata ()
71
+ {
72
+ List <String > extractedKeys = extractStatementKeys ( emptyMap () );
73
+ assertEquals ( emptyList (), extractedKeys );
74
+ }
75
+
76
+ @ Test
77
+ public void shouldExtractResultAvailableAfter ()
78
+ {
79
+ long extractedResultAvailableAfter = extractResultAvailableAfter (
80
+ singletonMap ( "result_available_after" , value ( 424242 ) ) );
81
+ assertEquals ( 424242L , extractedResultAvailableAfter );
82
+ }
83
+
84
+ @ Test
85
+ public void shouldExtractNoResultAvailableAfterWhenNoneInMetadata ()
86
+ {
87
+ long extractedResultAvailableAfter = extractResultAvailableAfter ( emptyMap () );
88
+ assertEquals ( -1 , extractedResultAvailableAfter );
89
+ }
90
+
58
91
@ Test
59
92
public void shouldBuildResultSummaryWithStatement ()
60
93
{
61
94
Statement statement = new Statement ( "UNWIND range(10, 100) AS x CREATE (:Node {name: $name, x: x})" ,
62
95
singletonMap ( "name" , "Apa" ) );
63
96
64
- ResultSummary summary = create ( statement , connectionMock (), 42 , emptyMap () );
97
+ ResultSummary summary = extractSummary ( statement , connectionMock (), 42 , emptyMap () );
65
98
66
99
assertEquals ( statement , summary .statement () );
67
100
}
@@ -71,7 +104,7 @@ public void shouldBuildResultSummaryWithServerInfo()
71
104
{
72
105
Connection connection = connectionMock ( new BoltServerAddress ( "server:42" ), ServerVersion .v3_2_0 );
73
106
74
- ResultSummary summary = create ( statement (), connection , 42 , emptyMap () );
107
+ ResultSummary summary = extractSummary ( statement (), connection , 42 , emptyMap () );
75
108
76
109
assertEquals ( "server:42" , summary .server ().address () );
77
110
assertEquals ( "Neo4j/3.2.0" , summary .server ().version () );
@@ -107,7 +140,7 @@ public void shouldBuildResultSummaryWithCounters()
107
140
108
141
Map <String ,Value > metadata = singletonMap ( "stats" , stats );
109
142
110
- ResultSummary summary = create ( statement (), connectionMock (), 42 , metadata );
143
+ ResultSummary summary = extractSummary ( statement (), connectionMock (), 42 , metadata );
111
144
112
145
assertEquals ( 42 , summary .counters ().nodesCreated () );
113
146
assertEquals ( 4242 , summary .counters ().nodesDeleted () );
@@ -125,7 +158,7 @@ public void shouldBuildResultSummaryWithCounters()
125
158
@ Test
126
159
public void shouldBuildResultSummaryWithoutCounters ()
127
160
{
128
- ResultSummary summary = create ( statement (), connectionMock (), 42 , emptyMap () );
161
+ ResultSummary summary = extractSummary ( statement (), connectionMock (), 42 , emptyMap () );
129
162
assertEquals ( EMPTY_STATS , summary .counters () );
130
163
}
131
164
@@ -146,7 +179,7 @@ public void shouldBuildResultSummaryWithPlan()
146
179
) );
147
180
Map <String ,Value > metadata = singletonMap ( "plan" , plan );
148
181
149
- ResultSummary summary = create ( statement (), connectionMock (), 42 , metadata );
182
+ ResultSummary summary = extractSummary ( statement (), connectionMock (), 42 , metadata );
150
183
151
184
assertTrue ( summary .hasPlan () );
152
185
assertEquals ( "Projection" , summary .plan ().operatorType () );
@@ -166,7 +199,7 @@ public void shouldBuildResultSummaryWithPlan()
166
199
@ Test
167
200
public void shouldBuildResultSummaryWithoutPlan ()
168
201
{
169
- ResultSummary summary = create ( statement (), connectionMock (), 42 , emptyMap () );
202
+ ResultSummary summary = extractSummary ( statement (), connectionMock (), 42 , emptyMap () );
170
203
assertFalse ( summary .hasPlan () );
171
204
assertNull ( summary .plan () );
172
205
}
@@ -192,7 +225,7 @@ public void shouldBuildResultSummaryWithProfiledPlan()
192
225
) );
193
226
Map <String ,Value > metadata = singletonMap ( "profile" , profile );
194
227
195
- ResultSummary summary = create ( statement (), connectionMock (), 42 , metadata );
228
+ ResultSummary summary = extractSummary ( statement (), connectionMock (), 42 , metadata );
196
229
197
230
assertTrue ( summary .hasPlan () );
198
231
assertTrue ( summary .hasProfile () );
@@ -216,7 +249,7 @@ public void shouldBuildResultSummaryWithProfiledPlan()
216
249
@ Test
217
250
public void shouldBuildResultSummaryWithoutProfiledPlan ()
218
251
{
219
- ResultSummary summary = create ( statement (), connectionMock (), 42 , emptyMap () );
252
+ ResultSummary summary = extractSummary ( statement (), connectionMock (), 42 , emptyMap () );
220
253
assertFalse ( summary .hasProfile () );
221
254
assertNull ( summary .profile () );
222
255
}
@@ -249,7 +282,7 @@ public void shouldBuildResultSummaryWithNotifications()
249
282
Value notifications = value ( notification1 , notification2 );
250
283
Map <String ,Value > metadata = singletonMap ( "notifications" , notifications );
251
284
252
- ResultSummary summary = create ( statement (), connectionMock (), 42 , metadata );
285
+ ResultSummary summary = extractSummary ( statement (), connectionMock (), 42 , metadata );
253
286
254
287
assertEquals ( 2 , summary .notifications ().size () );
255
288
Notification firstNotification = summary .notifications ().get ( 0 );
@@ -271,7 +304,7 @@ public void shouldBuildResultSummaryWithNotifications()
271
304
@ Test
272
305
public void shouldBuildResultSummaryWithoutNotifications ()
273
306
{
274
- ResultSummary summary = create ( statement (), connectionMock (), 42 , emptyMap () );
307
+ ResultSummary summary = extractSummary ( statement (), connectionMock (), 42 , emptyMap () );
275
308
assertEquals ( 0 , summary .notifications ().size () );
276
309
}
277
310
@@ -280,7 +313,7 @@ public void shouldBuildResultSummaryWithResultAvailableAfter()
280
313
{
281
314
int value = 42_000 ;
282
315
283
- ResultSummary summary = create ( statement (), connectionMock (), value , emptyMap () );
316
+ ResultSummary summary = extractSummary ( statement (), connectionMock (), value , emptyMap () );
284
317
285
318
assertEquals ( 42 , summary .resultAvailableAfter ( TimeUnit .SECONDS ) );
286
319
assertEquals ( value , summary .resultAvailableAfter ( TimeUnit .MILLISECONDS ) );
@@ -292,7 +325,7 @@ public void shouldBuildResultSummaryWithResultConsumedAfter()
292
325
int value = 42_000 ;
293
326
Map <String ,Value > metadata = singletonMap ( "result_consumed_after" , value ( value ) );
294
327
295
- ResultSummary summary = create ( statement (), connectionMock (), 42 , metadata );
328
+ ResultSummary summary = extractSummary ( statement (), connectionMock (), 42 , metadata );
296
329
297
330
assertEquals ( 42 , summary .resultConsumedAfter ( TimeUnit .SECONDS ) );
298
331
assertEquals ( value , summary .resultConsumedAfter ( TimeUnit .MILLISECONDS ) );
@@ -301,15 +334,15 @@ public void shouldBuildResultSummaryWithResultConsumedAfter()
301
334
@ Test
302
335
public void shouldBuildResultSummaryWithoutResultConsumedAfter ()
303
336
{
304
- ResultSummary summary = create ( statement (), connectionMock (), 42 , emptyMap () );
337
+ ResultSummary summary = extractSummary ( statement (), connectionMock (), 42 , emptyMap () );
305
338
assertEquals ( -1 , summary .resultConsumedAfter ( TimeUnit .SECONDS ) );
306
339
assertEquals ( -1 , summary .resultConsumedAfter ( TimeUnit .MILLISECONDS ) );
307
340
}
308
341
309
342
private static ResultSummary createWithStatementType ( Value typeValue )
310
343
{
311
344
Map <String ,Value > metadata = singletonMap ( "type" , typeValue );
312
- return create ( statement (), connectionMock (), 42 , metadata );
345
+ return extractSummary ( statement (), connectionMock (), 42 , metadata );
313
346
}
314
347
315
348
private static Statement statement ()
0 commit comments