28
28
import io .objectbox .BoxStoreBuilder ;
29
29
import io .objectbox .DebugFlags ;
30
30
import io .objectbox .TestEntity ;
31
+ import io .objectbox .TestEntityCursor ;
31
32
import io .objectbox .query .QueryBuilder .StringOrder ;
32
33
33
34
import static io .objectbox .TestEntity_ .*;
@@ -80,6 +81,50 @@ public void testFindStrings() {
80
81
assertTrue (list .contains ("banana milk shake" ));
81
82
}
82
83
84
+ @ Test
85
+ public void testFindStrings_nullValue () {
86
+ putTestEntity (null , 3 );
87
+ putTestEntitiesStrings ();
88
+ Query <TestEntity > query = box .query ().equal (simpleInt , 3 ).build ();
89
+
90
+ String [] strings = query .property (simpleString ).findStrings ();
91
+ assertEquals (1 , strings .length );
92
+ assertEquals ("bar" , strings [0 ]);
93
+
94
+ strings = query .property (simpleString ).nullValue ("****" ).findStrings ();
95
+ assertEquals (2 , strings .length );
96
+ assertEquals ("****" , strings [0 ]);
97
+ assertEquals ("bar" , strings [1 ]);
98
+
99
+ putTestEntity (null , 3 );
100
+
101
+ assertEquals (3 , query .property (simpleString ).nullValue ("****" ).findStrings ().length );
102
+ assertEquals (2 , query .property (simpleString ).nullValue ("****" ).distinct ().findStrings ().length );
103
+ }
104
+
105
+ @ Test
106
+ public void testFindInts_nullValue () {
107
+ putTestEntity (null , 1 );
108
+ TestEntityCursor .INT_NULL_HACK = true ;
109
+ try {
110
+ putTestEntities (3 );
111
+ } finally {
112
+ TestEntityCursor .INT_NULL_HACK = false ;
113
+ }
114
+ Query <TestEntity > query = box .query ().equal (simpleLong , 1001 ).build ();
115
+
116
+ int [] results = query .property (simpleInt ).findInts ();
117
+ assertEquals (1 , results .length );
118
+ assertEquals (1 , results [0 ]);
119
+
120
+ results = query .property (simpleInt ).nullValue (-1977 ).findInts ();
121
+ assertEquals (2 , results .length );
122
+ assertEquals (1 , results [0 ]);
123
+ assertEquals (-1977 , results [1 ]);
124
+ }
125
+
126
+ // TODO add null tests for other types
127
+
83
128
@ Test (expected = IllegalArgumentException .class )
84
129
public void testFindStrings_wrongPropertyType () {
85
130
putTestEntitiesStrings ();
@@ -107,7 +152,7 @@ public void testFindLongs() {
107
152
public void testFindInts () {
108
153
putTestEntities (5 );
109
154
Query <TestEntity > query = box .query ().greater (simpleInt , 2 ).build ();
110
- int [] result = query .property (simpleInt ).findInts () ;
155
+ int [] result = query .property (simpleInt ).findInts ();
111
156
assertEquals (3 , result .length );
112
157
assertEquals (3 , result [0 ]);
113
158
assertEquals (4 , result [1 ]);
@@ -124,7 +169,7 @@ public void testFindInts() {
124
169
public void testFindShorts () {
125
170
putTestEntities (5 );
126
171
Query <TestEntity > query = box .query ().greater (simpleInt , 2 ).build ();
127
- short [] result = query .property (simpleShort ).findShorts () ;
172
+ short [] result = query .property (simpleShort ).findShorts ();
128
173
assertEquals (3 , result .length );
129
174
assertEquals (103 , result [0 ]);
130
175
assertEquals (104 , result [1 ]);
@@ -143,7 +188,7 @@ public void testFindShorts() {
143
188
public void testFindFloats () {
144
189
putTestEntities (5 );
145
190
Query <TestEntity > query = box .query ().greater (simpleInt , 2 ).build ();
146
- float [] result = query .property (simpleFloat ).findFloats () ;
191
+ float [] result = query .property (simpleFloat ).findFloats ();
147
192
assertEquals (3 , result .length );
148
193
assertEquals (200.3f , result [0 ], 0.0001f );
149
194
assertEquals (200.4f , result [1 ], 0.0001f );
@@ -160,7 +205,7 @@ public void testFindFloats() {
160
205
public void testFindDoubles () {
161
206
putTestEntities (5 );
162
207
Query <TestEntity > query = box .query ().greater (simpleInt , 2 ).build ();
163
- double [] result = query .property (simpleDouble ).findDoubles () ;
208
+ double [] result = query .property (simpleDouble ).findDoubles ();
164
209
assertEquals (3 , result .length );
165
210
assertEquals (2000.03 , result [0 ], 0.0001 );
166
211
assertEquals (2000.04 , result [1 ], 0.0001 );
@@ -177,7 +222,7 @@ public void testFindDoubles() {
177
222
public void testFindBytes () {
178
223
putTestEntities (5 );
179
224
Query <TestEntity > query = box .query ().greater (simpleByte , 12 ).build ();
180
- byte [] result = query .property (simpleByte ).findBytes () ;
225
+ byte [] result = query .property (simpleByte ).findBytes ();
181
226
assertEquals (3 , result .length );
182
227
assertEquals (13 , result [0 ]);
183
228
assertEquals (14 , result [1 ]);
0 commit comments