Skip to content

Commit e6ceab1

Browse files
author
DvirDukhan
committed
bug fix tests
1 parent 3daea75 commit e6ceab1

File tree

1 file changed

+133
-8
lines changed

1 file changed

+133
-8
lines changed

src/test/java/com/redislabs/redisgraph/RedisGraphAPITest.java

Lines changed: 133 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,7 @@ public void testMultiThread(){
303303

304304
Property nameProperty = new Property("name", ResultSet.ResultSetScalarTypes.PROPERTY_STRING, "roi");
305305
Property ageProperty = new Property("age", ResultSet.ResultSetScalarTypes.PROPERTY_INTEGER, 32);
306+
Property lastNameProperty =new Property("lastName", ResultSet.ResultSetScalarTypes.PROPERTY_STRING, "a");
306307

307308
Node expectedNode = new Node();
308309
expectedNode.setId(0);
@@ -321,36 +322,160 @@ public void testMultiThread(){
321322
for (ResultSet resultSet : resultSets){
322323
Assert.assertNotNull(resultSet.getHeader());
323324
Header header = resultSet.getHeader();
324-
325325
List<String> schemaNames = header.getSchemaNames();
326326
List<Header.ResultSetColumnTypes> schemaTypes = header.getSchemaTypes();
327-
328327
Assert.assertNotNull(schemaNames);
329328
Assert.assertNotNull(schemaTypes);
330-
331329
Assert.assertEquals(3, schemaNames.size());
332330
Assert.assertEquals(3, schemaTypes.size());
333-
334331
Assert.assertEquals("a", schemaNames.get(0));
335332
Assert.assertEquals("r", schemaNames.get(1));
336333
Assert.assertEquals("a.age", schemaNames.get(2));
337-
338334
Assert.assertEquals(COLUMN_NODE, schemaTypes.get(0));
339335
Assert.assertEquals(COLUMN_RELATION, schemaTypes.get(1));
340336
Assert.assertEquals(COLUMN_SCALAR, schemaTypes.get(2));
341-
342337
Assert.assertEquals(1, resultSet.size());
343338
Assert.assertTrue(resultSet.hasNext());
344339
Record record = resultSet.next();
345340
Assert.assertFalse(resultSet.hasNext());
341+
Assert.assertEquals(Arrays.asList("a", "r", "a.age"), record.keys());
342+
Assert.assertEquals(Arrays.asList(expectedNode, expectedEdge, 32), record.values());
343+
}
346344

345+
//test for update in local cache
346+
expectedNode.removeProperty("name");
347+
expectedNode.removeProperty("age");
348+
expectedNode.addProperty(lastNameProperty);
349+
expectedNode.removeLabel("person");
350+
expectedNode.addLabel("worker");
351+
expectedNode.setId(2);
347352

348-
Assert.assertEquals(Arrays.asList("a", "r", "a.age"), record.keys());
349353

350-
Assert.assertEquals(Arrays.asList(expectedNode, expectedEdge, 32), record.values());
354+
expectedEdge.setRelationshipType("worksWith");
355+
expectedEdge.setSource(2);
356+
expectedEdge.setDestination(3);
357+
expectedEdge.setId(1);
358+
359+
Assert.assertNotNull(api.query("social", "CREATE (:worker{lastName:'a'})"));
360+
Assert.assertNotNull(api.query("social", "CREATE (:worker{lastName:'b'})"));
361+
Assert.assertNotNull(api.query("social", "MATCH (a:worker), (b:worker) WHERE (a.lastName = 'a' AND b.lastName='b') CREATE (a)-[:worksWith]->(b)"));
362+
363+
resultSets = IntStream.range(0,16).parallel().
364+
mapToObj(i-> api.query("social", "MATCH (a:worker)-[r:worksWith]->(b:worker) RETURN a,r")).
365+
collect(Collectors.toList());
366+
367+
for (ResultSet resultSet : resultSets){
368+
Assert.assertNotNull(resultSet.getHeader());
369+
Header header = resultSet.getHeader();
370+
List<String> schemaNames = header.getSchemaNames();
371+
List<Header.ResultSetColumnTypes> schemaTypes = header.getSchemaTypes();
372+
Assert.assertNotNull(schemaNames);
373+
Assert.assertNotNull(schemaTypes);
374+
Assert.assertEquals(2, schemaNames.size());
375+
Assert.assertEquals(2, schemaTypes.size());
376+
Assert.assertEquals("a", schemaNames.get(0));
377+
Assert.assertEquals("r", schemaNames.get(1));
378+
Assert.assertEquals(COLUMN_NODE, schemaTypes.get(0));
379+
Assert.assertEquals(COLUMN_RELATION, schemaTypes.get(1));
380+
Assert.assertEquals(1, resultSet.size());
381+
Assert.assertTrue(resultSet.hasNext());
382+
Record record = resultSet.next();
383+
Assert.assertFalse(resultSet.hasNext());
384+
Assert.assertEquals(Arrays.asList("a", "r"), record.keys());
385+
Assert.assertEquals(Arrays.asList(expectedNode, expectedEdge), record.values());
351386
}
352387
}
353388

389+
390+
@Test
391+
public void testAdditionToProcedures(){
392+
393+
Assert.assertNotNull(api.query("social", "CREATE (:person{name:'roi',age:32})"));
394+
Assert.assertNotNull(api.query("social", "CREATE (:person{name:'amit',age:30})"));
395+
Assert.assertNotNull(api.query("social", "MATCH (a:person), (b:person) WHERE (a.name = 'roi' AND b.name='amit') CREATE (a)-[:knows]->(b)"));
396+
397+
398+
List<ResultSet> resultSets = IntStream.range(0,16).parallel().
399+
mapToObj(i-> api.query("social", "MATCH (a:person)-[r:knows]->(b:person) RETURN a,r")).
400+
collect(Collectors.toList());
401+
402+
//expected objects init
403+
Property nameProperty = new Property("name", ResultSet.ResultSetScalarTypes.PROPERTY_STRING, "roi");
404+
Property ageProperty = new Property("age", ResultSet.ResultSetScalarTypes.PROPERTY_INTEGER, 32);
405+
Property lastNameProperty =new Property("lastName", ResultSet.ResultSetScalarTypes.PROPERTY_STRING, "a");
406+
407+
Node expectedNode = new Node();
408+
expectedNode.setId(0);
409+
expectedNode.addLabel("person");
410+
expectedNode.addProperty(nameProperty);
411+
expectedNode.addProperty(ageProperty);
412+
413+
414+
Edge expectedEdge = new Edge();
415+
expectedEdge.setId(0);
416+
expectedEdge.setSource(0);
417+
expectedEdge.setDestination(1);
418+
expectedEdge.setRelationshipType("knows");
419+
420+
421+
ResultSet resultSet = api.query("social", "MATCH (a:person)-[r:knows]->(b:person) RETURN a,r");
422+
Assert.assertNotNull(resultSet.getHeader());
423+
Header header = resultSet.getHeader();
424+
List<String> schemaNames = header.getSchemaNames();
425+
List<Header.ResultSetColumnTypes> schemaTypes = header.getSchemaTypes();
426+
Assert.assertNotNull(schemaNames);
427+
Assert.assertNotNull(schemaTypes);
428+
Assert.assertEquals(2, schemaNames.size());
429+
Assert.assertEquals(2, schemaTypes.size());
430+
Assert.assertEquals("a", schemaNames.get(0));
431+
Assert.assertEquals("r", schemaNames.get(1));
432+
Assert.assertEquals(COLUMN_NODE, schemaTypes.get(0));
433+
Assert.assertEquals(COLUMN_RELATION, schemaTypes.get(1));
434+
Assert.assertEquals(1, resultSet.size());
435+
Assert.assertTrue(resultSet.hasNext());
436+
Record record = resultSet.next();
437+
Assert.assertFalse(resultSet.hasNext());
438+
Assert.assertEquals(Arrays.asList("a", "r"), record.keys());
439+
Assert.assertEquals(Arrays.asList(expectedNode, expectedEdge), record.values());
440+
441+
//test for local cache updates
442+
443+
expectedNode.removeProperty("name");
444+
expectedNode.removeProperty("age");
445+
expectedNode.addProperty(lastNameProperty);
446+
expectedNode.removeLabel("person");
447+
expectedNode.addLabel("worker");
448+
expectedNode.setId(2);
449+
expectedEdge.setRelationshipType("worksWith");
450+
expectedEdge.setSource(2);
451+
expectedEdge.setDestination(3);
452+
expectedEdge.setId(1);
453+
Assert.assertNotNull(api.query("social", "CREATE (:worker{lastName:'a'})"));
454+
Assert.assertNotNull(api.query("social", "CREATE (:worker{lastName:'b'})"));
455+
Assert.assertNotNull(api.query("social", "MATCH (a:worker), (b:worker) WHERE (a.lastName = 'a' AND b.lastName='b') CREATE (a)-[:worksWith]->(b)"));
456+
resultSet = api.query("social", "MATCH (a:worker)-[r:worksWith]->(b:worker) RETURN a,r");
457+
Assert.assertNotNull(resultSet.getHeader());
458+
header = resultSet.getHeader();
459+
schemaNames = header.getSchemaNames();
460+
schemaTypes = header.getSchemaTypes();
461+
Assert.assertNotNull(schemaNames);
462+
Assert.assertNotNull(schemaTypes);
463+
Assert.assertEquals(2, schemaNames.size());
464+
Assert.assertEquals(2, schemaTypes.size());
465+
Assert.assertEquals("a", schemaNames.get(0));
466+
Assert.assertEquals("r", schemaNames.get(1));
467+
Assert.assertEquals(COLUMN_NODE, schemaTypes.get(0));
468+
Assert.assertEquals(COLUMN_RELATION, schemaTypes.get(1));
469+
Assert.assertEquals(1, resultSet.size());
470+
Assert.assertTrue(resultSet.hasNext());
471+
record = resultSet.next();
472+
Assert.assertFalse(resultSet.hasNext());
473+
Assert.assertEquals(Arrays.asList("a", "r"), record.keys());
474+
Assert.assertEquals(Arrays.asList(expectedNode, expectedEdge), record.values());
475+
476+
}
477+
478+
354479
@Test
355480
public void testEscapedQuery() {
356481
Assert.assertNotNull(api.query("social", "CREATE (:escaped{s1:%s,s2:%s})", "S\"\'", "S\\'\\\""));

0 commit comments

Comments
 (0)