Skip to content

Commit 30a27a8

Browse files
Move non-PropertyQuery tests to QueryTest, create abstract query test.
1 parent 8868321 commit 30a27a8

File tree

3 files changed

+165
-153
lines changed

3 files changed

+165
-153
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
/*
2+
* Copyright 2018 ObjectBox Ltd. All rights reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package io.objectbox.query;
18+
19+
import io.objectbox.*;
20+
import org.junit.Before;
21+
22+
import java.util.ArrayList;
23+
import java.util.List;
24+
25+
public class AbstractQueryTest extends AbstractObjectBoxTest {
26+
protected Box<TestEntity> box;
27+
28+
@Override
29+
protected BoxStoreBuilder createBoxStoreBuilder(boolean withIndex) {
30+
return super.createBoxStoreBuilder(withIndex).debugFlags(DebugFlags.LOG_QUERY_PARAMETERS);
31+
}
32+
33+
@Before
34+
public void setUpBox() {
35+
box = getTestEntityBox();
36+
}
37+
38+
/**
39+
* Puts 10 TestEntity starting at nr 2000 using {@link AbstractObjectBoxTest#createTestEntity(String, int)}.
40+
*/
41+
List<TestEntity> putTestEntitiesScalars() {
42+
return putTestEntities(10, null, 2000);
43+
}
44+
45+
List<TestEntity> putTestEntitiesStrings() {
46+
List<TestEntity> entities = new ArrayList<>();
47+
entities.add(createTestEntity("banana", 1));
48+
entities.add(createTestEntity("apple", 2));
49+
entities.add(createTestEntity("bar", 3));
50+
entities.add(createTestEntity("banana milk shake", 4));
51+
entities.add(createTestEntity("foo bar", 5));
52+
box.put(entities);
53+
return entities;
54+
}
55+
}

tests/objectbox-java-test/src/test/java/io/objectbox/query/PropertyQueryTest.java

Lines changed: 13 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -16,38 +16,31 @@
1616

1717
package io.objectbox.query;
1818

19-
import org.junit.Before;
2019
import org.junit.Test;
2120

22-
import java.util.ArrayList;
2321
import java.util.Arrays;
2422
import java.util.List;
2523

26-
import io.objectbox.AbstractObjectBoxTest;
27-
import io.objectbox.Box;
28-
import io.objectbox.BoxStoreBuilder;
29-
import io.objectbox.DebugFlags;
3024
import io.objectbox.TestEntity;
3125
import io.objectbox.TestEntityCursor;
3226
import io.objectbox.exception.DbException;
3327
import io.objectbox.query.QueryBuilder.StringOrder;
3428

35-
import static io.objectbox.TestEntity_.*;
36-
import static org.junit.Assert.*;
3729

38-
public class PropertyQueryTest extends AbstractObjectBoxTest {
30+
import static io.objectbox.TestEntity_.simpleBoolean;
31+
import static io.objectbox.TestEntity_.simpleByte;
32+
import static io.objectbox.TestEntity_.simpleDouble;
33+
import static io.objectbox.TestEntity_.simpleFloat;
34+
import static io.objectbox.TestEntity_.simpleInt;
35+
import static io.objectbox.TestEntity_.simpleLong;
36+
import static io.objectbox.TestEntity_.simpleShort;
37+
import static io.objectbox.TestEntity_.simpleString;
38+
import static org.junit.Assert.assertEquals;
39+
import static org.junit.Assert.assertFalse;
40+
import static org.junit.Assert.assertNull;
41+
import static org.junit.Assert.assertTrue;
3942

40-
private Box<TestEntity> box;
41-
42-
@Override
43-
protected BoxStoreBuilder createBoxStoreBuilder(boolean withIndex) {
44-
return super.createBoxStoreBuilder(withIndex).debugFlags(DebugFlags.LOG_QUERY_PARAMETERS);
45-
}
46-
47-
@Before
48-
public void setUpBox() {
49-
box = getTestEntityBox();
50-
}
43+
public class PropertyQueryTest extends AbstractQueryTest {
5144

5245
@Test
5346
public void testFindStrings() {
@@ -440,103 +433,4 @@ public void testCount() {
440433
assertEquals(6, stringQuery.distinct().count());
441434
}
442435

443-
@Test
444-
public void testStringLess() {
445-
putTestEntitiesStrings();
446-
putTestEntity("BaNaNa Split", 100);
447-
Query<TestEntity> query = box.query().less(simpleString, "banana juice").order(simpleString).build();
448-
List<TestEntity> entities = query.find();
449-
assertEquals(2, entities.size());
450-
assertEquals("apple", entities.get(0).getSimpleString());
451-
assertEquals("banana", entities.get(1).getSimpleString());
452-
453-
query.setParameter(simpleString, "BANANA MZ");
454-
entities = query.find();
455-
assertEquals(3, entities.size());
456-
assertEquals("apple", entities.get(0).getSimpleString());
457-
assertEquals("banana", entities.get(1).getSimpleString());
458-
assertEquals("banana milk shake", entities.get(2).getSimpleString());
459-
460-
// Case sensitive
461-
query = box.query().less(simpleString, "BANANA", StringOrder.CASE_SENSITIVE).order(simpleString).build();
462-
assertEquals(0, query.count());
463-
464-
query.setParameter(simpleString, "banana a");
465-
entities = query.find();
466-
assertEquals(3, entities.size());
467-
assertEquals("apple", entities.get(0).getSimpleString());
468-
assertEquals("banana", entities.get(1).getSimpleString());
469-
assertEquals("BaNaNa Split", entities.get(2).getSimpleString());
470-
}
471-
472-
@Test
473-
public void testStringGreater() {
474-
putTestEntitiesStrings();
475-
putTestEntity("FOO", 100);
476-
Query<TestEntity> query = box.query().greater(simpleString, "banana juice").order(simpleString).build();
477-
List<TestEntity> entities = query.find();
478-
assertEquals(4, entities.size());
479-
assertEquals("banana milk shake", entities.get(0).getSimpleString());
480-
assertEquals("bar", entities.get(1).getSimpleString());
481-
assertEquals("FOO", entities.get(2).getSimpleString());
482-
assertEquals("foo bar", entities.get(3).getSimpleString());
483-
484-
query.setParameter(simpleString, "FO");
485-
entities = query.find();
486-
assertEquals(2, entities.size());
487-
assertEquals("FOO", entities.get(0).getSimpleString());
488-
assertEquals("foo bar", entities.get(1).getSimpleString());
489-
490-
// Case sensitive
491-
query = box.query().greater(simpleString, "banana", StringOrder.CASE_SENSITIVE).order(simpleString).build();
492-
entities = query.find();
493-
assertEquals(3, entities.size());
494-
assertEquals("banana milk shake", entities.get(0).getSimpleString());
495-
assertEquals("bar", entities.get(1).getSimpleString());
496-
assertEquals("foo bar", entities.get(2).getSimpleString());
497-
}
498-
499-
@Test
500-
public void testStringIn() {
501-
putTestEntitiesStrings();
502-
putTestEntity("BAR", 100);
503-
String[] values = {"bar", "foo bar"};
504-
Query<TestEntity> query = box.query().in(simpleString, values).order(simpleString, OrderFlags.CASE_SENSITIVE)
505-
.build();
506-
List<TestEntity> entities = query.find();
507-
assertEquals(3, entities.size());
508-
assertEquals("BAR", entities.get(0).getSimpleString());
509-
assertEquals("bar", entities.get(1).getSimpleString());
510-
assertEquals("foo bar", entities.get(2).getSimpleString());
511-
512-
String[] values2 = {"bar"};
513-
query.setParameters(simpleString, values2);
514-
entities = query.find();
515-
assertEquals(2, entities.size());
516-
assertEquals("BAR", entities.get(0).getSimpleString());
517-
assertEquals("bar", entities.get(1).getSimpleString());
518-
519-
// Case sensitive
520-
query = box.query().in(simpleString, values, StringOrder.CASE_SENSITIVE).order(simpleString).build();
521-
entities = query.find();
522-
assertEquals(2, entities.size());
523-
assertEquals("bar", entities.get(0).getSimpleString());
524-
assertEquals("foo bar", entities.get(1).getSimpleString());
525-
}
526-
527-
private List<TestEntity> putTestEntitiesScalars() {
528-
return putTestEntities(10, null, 2000);
529-
}
530-
531-
private List<TestEntity> putTestEntitiesStrings() {
532-
List<TestEntity> entities = new ArrayList<>();
533-
entities.add(createTestEntity("banana", 1));
534-
entities.add(createTestEntity("apple", 2));
535-
entities.add(createTestEntity("bar", 3));
536-
entities.add(createTestEntity("banana milk shake", 4));
537-
entities.add(createTestEntity("foo bar", 5));
538-
box.put(entities);
539-
return entities;
540-
}
541-
542436
}

tests/objectbox-java-test/src/test/java/io/objectbox/query/QueryTest.java

Lines changed: 97 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
package io.objectbox.query;
1818

19-
import org.junit.Before;
2019
import org.junit.Test;
2120

2221
import java.util.ArrayList;
@@ -26,7 +25,6 @@
2625

2726
import javax.annotation.Nullable;
2827

29-
import io.objectbox.AbstractObjectBoxTest;
3028
import io.objectbox.Box;
3129
import io.objectbox.BoxStore;
3230
import io.objectbox.BoxStoreBuilder;
@@ -41,22 +39,21 @@
4139
import io.objectbox.relation.Order;
4240
import io.objectbox.relation.Order_;
4341

44-
import static io.objectbox.TestEntity_.*;
45-
import static org.junit.Assert.*;
4642

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;
4855

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 {
6057

6158
@Test
6259
public void testBuild() {
@@ -268,6 +265,90 @@ public void testString() {
268265
assertEquals(2, box.query().contains(simpleString, "nana").build().count());
269266
}
270267

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+
271352
@Test
272353
public void testScalarFloatLessAndGreater() {
273354
putTestEntitiesScalars();
@@ -615,22 +696,4 @@ public boolean keep(TestEntity entity) {
615696
};
616697
}
617698

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-
636699
}

0 commit comments

Comments
 (0)