Skip to content

Commit 1c49fbc

Browse files
author
Burak Serdar
committed
Add test to find out where null array associations cause problems
1 parent e2dbad8 commit 1c49fbc

File tree

5 files changed

+125
-0
lines changed

5 files changed

+125
-0
lines changed

crud/src/test/java/com/redhat/lightblue/mediator/CompositeFinderTest.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -671,4 +671,40 @@ public void dont_do_outer_joins() throws Exception {
671671
Assert.assertEquals(1, response.getEntityData().size());
672672
}
673673

674+
@Test
675+
public void array_in_reference_fullarr() throws Exception {
676+
FindRequest fr=new FindRequest();
677+
fr.setQuery(query("{'field':'_id','op':'=','rvalue':'1'}"));
678+
fr.setProjection(projection("[{'field':'*','recursive':1},{'field':'ref'}]"));
679+
fr.setEntityVersion(new EntityVersion("arr_parent","1.0.0"));
680+
Response response=mediator.find(fr);
681+
System.out.println(response.getEntityData());
682+
Assert.assertEquals(1, response.getEntityData().size());
683+
Assert.assertEquals(3,response.getEntityData().get(0).get("ref").size());
684+
}
685+
686+
@Test
687+
public void array_in_reference_emptyarr() throws Exception {
688+
FindRequest fr=new FindRequest();
689+
fr.setQuery(query("{'field':'_id','op':'=','rvalue':'2'}"));
690+
fr.setProjection(projection("[{'field':'*','recursive':1},{'field':'ref'}]"));
691+
fr.setEntityVersion(new EntityVersion("arr_parent","1.0.0"));
692+
Response response=mediator.find(fr);
693+
System.out.println(response.getEntityData());
694+
Assert.assertEquals(1, response.getEntityData().size());
695+
Assert.assertNull(response.getEntityData().get(0).get("ref"));
696+
}
697+
698+
@Test
699+
public void array_in_reference_nullarr() throws Exception {
700+
FindRequest fr=new FindRequest();
701+
fr.setQuery(query("{'field':'_id','op':'=','rvalue':'3'}"));
702+
fr.setProjection(projection("[{'field':'*','recursive':1},{'field':'ref'}]"));
703+
fr.setEntityVersion(new EntityVersion("arr_parent","1.0.0"));
704+
Response response=mediator.find(fr);
705+
System.out.println(response.getEntityData());
706+
Assert.assertEquals(1, response.getEntityData().size());
707+
Assert.assertNull(response.getEntityData().get(0).get("ref"));
708+
}
709+
674710
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"entityInfo" : {
3+
"name": "arr_child",
4+
"datastore": {
5+
"backend":"mongo",
6+
"datasource": "mongodata",
7+
"collection": "arr_child"
8+
}
9+
},
10+
"schema" : {
11+
"name" : "arr_child",
12+
"version": {
13+
"value": "1.0.0",
14+
"changelog": "Test"
15+
},
16+
"status": {
17+
"value": "active"
18+
},
19+
"access" : {
20+
"insert": ["anyone"],
21+
"find":["anyone"],
22+
"update":["anyone"],
23+
"delete":["anyone"]
24+
},
25+
"fields": {
26+
"_id": {"type": "string", "constraints":{ "identity":1 } },
27+
"objectType": {"type": "string"},
28+
"name":{"type":"string"}
29+
}
30+
}
31+
}
32+
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[
2+
{"_id":"1","objectType":"arr_child","name":"1"},
3+
{"_id":"2","objectType":"arr_child","name":"2"},
4+
{"_id":"3","objectType":"arr_child","name":"3"},
5+
{"_id":"4","objectType":"arr_child","name":"4"},
6+
{"_id":"5","objectType":"arr_child","name":"5"},
7+
{"_id":"6","objectType":"arr_child","name":"6"},
8+
{"_id":"7","objectType":"arr_child","name":"7"}
9+
]
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
{
2+
"entityInfo" : {
3+
"name": "arr_parent",
4+
"datastore": {
5+
"backend":"mongo",
6+
"datasource": "mongodata",
7+
"collection": "arr_parent"
8+
}
9+
},
10+
"schema" : {
11+
"name" : "arr_parent",
12+
"version": {
13+
"value": "1.0.0",
14+
"changelog": "Test"
15+
},
16+
"status": {
17+
"value": "active"
18+
},
19+
"access" : {
20+
"insert": ["anyone"],
21+
"find":["anyone"],
22+
"update":["anyone"],
23+
"delete":["anyone"]
24+
},
25+
"fields": {
26+
"_id": {"type": "string", "constraints":{ "identity":1 } },
27+
"objectType": {"type": "string"},
28+
"ref": {
29+
"entity":"arr_child",
30+
"versionValue":"1.0.0",
31+
"type":"reference",
32+
"query":{"field":"_id","op":"$in","rfield":"$parent.arr" }
33+
},
34+
"arr":{
35+
"type":"array",
36+
"items":{
37+
"type":"string"
38+
}
39+
}
40+
}
41+
}
42+
}
43+
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[
2+
{ "_id":"1","objectType":"arr_parent","arr":["1","2","3"]},
3+
{ "_id":"2","objectType":"arr_parent","arr":[]},
4+
{ "_id":"3","objectType":"arr_parent"}
5+
]

0 commit comments

Comments
 (0)