|
16 | 16 |
|
17 | 17 | package io.objectbox.query;
|
18 | 18 |
|
19 |
| -import org.junit.Before; |
20 | 19 | import org.junit.Test;
|
21 | 20 |
|
22 | 21 | import java.util.ArrayList;
|
|
26 | 25 |
|
27 | 26 | import javax.annotation.Nullable;
|
28 | 27 |
|
29 |
| -import io.objectbox.AbstractObjectBoxTest; |
30 | 28 | import io.objectbox.Box;
|
31 | 29 | import io.objectbox.BoxStore;
|
32 | 30 | import io.objectbox.BoxStoreBuilder;
|
|
41 | 39 | import io.objectbox.relation.Order;
|
42 | 40 | import io.objectbox.relation.Order_;
|
43 | 41 |
|
44 |
| -import static io.objectbox.TestEntity_.*; |
45 |
| -import static org.junit.Assert.*; |
46 | 42 |
|
47 |
| -public class QueryTest extends AbstractObjectBoxTest { |
| 43 | +import static io.objectbox.TestEntity_.simpleBoolean; |
| 44 | +import static io.objectbox.TestEntity_.simpleFloat; |
| 45 | +import static io.objectbox.TestEntity_.simpleInt; |
| 46 | +import static io.objectbox.TestEntity_.simpleLong; |
| 47 | +import static io.objectbox.TestEntity_.simpleShort; |
| 48 | +import static io.objectbox.TestEntity_.simpleString; |
| 49 | +import static org.junit.Assert.assertEquals; |
| 50 | +import static org.junit.Assert.assertNotNull; |
| 51 | +import static org.junit.Assert.assertNull; |
| 52 | +import static org.junit.Assert.assertSame; |
| 53 | +import static org.junit.Assert.assertTrue; |
| 54 | +import static org.junit.Assert.fail; |
48 | 55 |
|
49 |
| - private Box<TestEntity> box; |
50 |
| - |
51 |
| - @Override |
52 |
| - protected BoxStoreBuilder createBoxStoreBuilder(boolean withIndex) { |
53 |
| - return super.createBoxStoreBuilder(withIndex).debugFlags(DebugFlags.LOG_QUERY_PARAMETERS); |
54 |
| - } |
55 |
| - |
56 |
| - @Before |
57 |
| - public void setUpBox() { |
58 |
| - box = getTestEntityBox(); |
59 |
| - } |
| 56 | +public class QueryTest extends AbstractQueryTest { |
60 | 57 |
|
61 | 58 | @Test
|
62 | 59 | public void testBuild() {
|
@@ -268,6 +265,90 @@ public void testString() {
|
268 | 265 | assertEquals(2, box.query().contains(simpleString, "nana").build().count());
|
269 | 266 | }
|
270 | 267 |
|
| 268 | + @Test |
| 269 | + public void testStringLess() { |
| 270 | + putTestEntitiesStrings(); |
| 271 | + putTestEntity("BaNaNa Split", 100); |
| 272 | + Query<TestEntity> query = box.query().less(simpleString, "banana juice").order(simpleString).build(); |
| 273 | + List<TestEntity> entities = query.find(); |
| 274 | + assertEquals(2, entities.size()); |
| 275 | + assertEquals("apple", entities.get(0).getSimpleString()); |
| 276 | + assertEquals("banana", entities.get(1).getSimpleString()); |
| 277 | + |
| 278 | + query.setParameter(simpleString, "BANANA MZ"); |
| 279 | + entities = query.find(); |
| 280 | + assertEquals(3, entities.size()); |
| 281 | + assertEquals("apple", entities.get(0).getSimpleString()); |
| 282 | + assertEquals("banana", entities.get(1).getSimpleString()); |
| 283 | + assertEquals("banana milk shake", entities.get(2).getSimpleString()); |
| 284 | + |
| 285 | + // Case sensitive |
| 286 | + query = box.query().less(simpleString, "BANANA", StringOrder.CASE_SENSITIVE).order(simpleString).build(); |
| 287 | + assertEquals(0, query.count()); |
| 288 | + |
| 289 | + query.setParameter(simpleString, "banana a"); |
| 290 | + entities = query.find(); |
| 291 | + assertEquals(3, entities.size()); |
| 292 | + assertEquals("apple", entities.get(0).getSimpleString()); |
| 293 | + assertEquals("banana", entities.get(1).getSimpleString()); |
| 294 | + assertEquals("BaNaNa Split", entities.get(2).getSimpleString()); |
| 295 | + } |
| 296 | + |
| 297 | + @Test |
| 298 | + public void testStringGreater() { |
| 299 | + putTestEntitiesStrings(); |
| 300 | + putTestEntity("FOO", 100); |
| 301 | + Query<TestEntity> query = box.query().greater(simpleString, "banana juice").order(simpleString).build(); |
| 302 | + List<TestEntity> entities = query.find(); |
| 303 | + assertEquals(4, entities.size()); |
| 304 | + assertEquals("banana milk shake", entities.get(0).getSimpleString()); |
| 305 | + assertEquals("bar", entities.get(1).getSimpleString()); |
| 306 | + assertEquals("FOO", entities.get(2).getSimpleString()); |
| 307 | + assertEquals("foo bar", entities.get(3).getSimpleString()); |
| 308 | + |
| 309 | + query.setParameter(simpleString, "FO"); |
| 310 | + entities = query.find(); |
| 311 | + assertEquals(2, entities.size()); |
| 312 | + assertEquals("FOO", entities.get(0).getSimpleString()); |
| 313 | + assertEquals("foo bar", entities.get(1).getSimpleString()); |
| 314 | + |
| 315 | + // Case sensitive |
| 316 | + query = box.query().greater(simpleString, "banana", StringOrder.CASE_SENSITIVE).order(simpleString).build(); |
| 317 | + entities = query.find(); |
| 318 | + assertEquals(3, entities.size()); |
| 319 | + assertEquals("banana milk shake", entities.get(0).getSimpleString()); |
| 320 | + assertEquals("bar", entities.get(1).getSimpleString()); |
| 321 | + assertEquals("foo bar", entities.get(2).getSimpleString()); |
| 322 | + } |
| 323 | + |
| 324 | + @Test |
| 325 | + public void testStringIn() { |
| 326 | + putTestEntitiesStrings(); |
| 327 | + putTestEntity("BAR", 100); |
| 328 | + String[] values = {"bar", "foo bar"}; |
| 329 | + Query<TestEntity> query = box.query().in(simpleString, values).order(simpleString, OrderFlags.CASE_SENSITIVE) |
| 330 | + .build(); |
| 331 | + List<TestEntity> entities = query.find(); |
| 332 | + assertEquals(3, entities.size()); |
| 333 | + assertEquals("BAR", entities.get(0).getSimpleString()); |
| 334 | + assertEquals("bar", entities.get(1).getSimpleString()); |
| 335 | + assertEquals("foo bar", entities.get(2).getSimpleString()); |
| 336 | + |
| 337 | + String[] values2 = {"bar"}; |
| 338 | + query.setParameters(simpleString, values2); |
| 339 | + entities = query.find(); |
| 340 | + assertEquals(2, entities.size()); |
| 341 | + assertEquals("BAR", entities.get(0).getSimpleString()); |
| 342 | + assertEquals("bar", entities.get(1).getSimpleString()); |
| 343 | + |
| 344 | + // Case sensitive |
| 345 | + query = box.query().in(simpleString, values, StringOrder.CASE_SENSITIVE).order(simpleString).build(); |
| 346 | + entities = query.find(); |
| 347 | + assertEquals(2, entities.size()); |
| 348 | + assertEquals("bar", entities.get(0).getSimpleString()); |
| 349 | + assertEquals("foo bar", entities.get(1).getSimpleString()); |
| 350 | + } |
| 351 | + |
271 | 352 | @Test
|
272 | 353 | public void testScalarFloatLessAndGreater() {
|
273 | 354 | putTestEntitiesScalars();
|
@@ -615,22 +696,4 @@ public boolean keep(TestEntity entity) {
|
615 | 696 | };
|
616 | 697 | }
|
617 | 698 |
|
618 |
| - /** |
619 |
| - * Puts 10 TestEntity starting at nr 2000 using {@link AbstractObjectBoxTest#createTestEntity(String, int)}. |
620 |
| - */ |
621 |
| - private List<TestEntity> putTestEntitiesScalars() { |
622 |
| - return putTestEntities(10, null, 2000); |
623 |
| - } |
624 |
| - |
625 |
| - private List<TestEntity> putTestEntitiesStrings() { |
626 |
| - List<TestEntity> entities = new ArrayList<>(); |
627 |
| - entities.add(createTestEntity("banana", 1)); |
628 |
| - entities.add(createTestEntity("apple", 2)); |
629 |
| - entities.add(createTestEntity("bar", 3)); |
630 |
| - entities.add(createTestEntity("banana milk shake", 4)); |
631 |
| - entities.add(createTestEntity("foo bar", 5)); |
632 |
| - box.put(entities); |
633 |
| - return entities; |
634 |
| - } |
635 |
| - |
636 | 699 | }
|
0 commit comments