Skip to content

Commit ac5ab7b

Browse files
TestEntity: add String array property and test.
- Expand BoxTest.testPutAndGet() to put and assert all properties. - Add to NonArgConstructorTest.
1 parent 17a825a commit ac5ab7b

File tree

6 files changed

+62
-11
lines changed

6 files changed

+62
-11
lines changed

tests/objectbox-java-test/src/main/java/io/objectbox/TestEntity.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ public class TestEntity {
3232
private String simpleString;
3333
/** Not-null value. */
3434
private byte[] simpleByteArray;
35+
/** Not-null value. */
36+
private String[] simpleStringArray;
3537
/** In "real" entity would be annotated with @Unsigned. */
3638
private short simpleShortU;
3739
/** In "real" entity would be annotated with @Unsigned. */
@@ -49,7 +51,7 @@ public TestEntity(long id) {
4951
this.id = id;
5052
}
5153

52-
public TestEntity(long id, boolean simpleBoolean, byte simpleByte, short simpleShort, int simpleInt, long simpleLong, float simpleFloat, double simpleDouble, String simpleString, byte[] simpleByteArray, short simpleShortU, int simpleIntU, long simpleLongU) {
54+
public TestEntity(long id, boolean simpleBoolean, byte simpleByte, short simpleShort, int simpleInt, long simpleLong, float simpleFloat, double simpleDouble, String simpleString, byte[] simpleByteArray, String[] simpleStringArray, short simpleShortU, int simpleIntU, long simpleLongU) {
5355
this.id = id;
5456
this.simpleBoolean = simpleBoolean;
5557
this.simpleByte = simpleByte;
@@ -60,6 +62,7 @@ public TestEntity(long id, boolean simpleBoolean, byte simpleByte, short simpleS
6062
this.simpleDouble = simpleDouble;
6163
this.simpleString = simpleString;
6264
this.simpleByteArray = simpleByteArray;
65+
this.simpleStringArray = simpleStringArray;
6366
this.simpleShortU = simpleShortU;
6467
this.simpleIntU = simpleIntU;
6568
this.simpleLongU = simpleLongU;
@@ -149,6 +152,15 @@ public void setSimpleByteArray(byte[] simpleByteArray) {
149152
this.simpleByteArray = simpleByteArray;
150153
}
151154

155+
/** Not-null value. */
156+
public String[] getSimpleStringArray() {
157+
return simpleStringArray;
158+
}
159+
160+
/** Not-null value; ensure this value is available before it is saved to the database. */
161+
public void setSimpleStringArray(String[] simpleStringArray) {
162+
this.simpleStringArray = simpleStringArray;
163+
}
152164
public short getSimpleShortU() {
153165
return simpleShortU;
154166
}

tests/objectbox-java-test/src/main/java/io/objectbox/TestEntityCursor.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ public Cursor<TestEntity> createCursor(io.objectbox.Transaction tx, long cursorH
5151
private final static int __ID_simpleDouble = TestEntity_.simpleDouble.id;
5252
private final static int __ID_simpleString = TestEntity_.simpleString.id;
5353
private final static int __ID_simpleByteArray = TestEntity_.simpleByteArray.id;
54+
private final static int __ID_simpleStringArray = TestEntity_.simpleStringArray.id;
5455
private final static int __ID_simpleShortU = TestEntity_.simpleShortU.id;
5556
private final static int __ID_simpleIntU = TestEntity_.simpleIntU.id;
5657
private final static int __ID_simpleLongU = TestEntity_.simpleLongU.id;
@@ -71,12 +72,18 @@ public final long getId(TestEntity entity) {
7172
*/
7273
@Override
7374
public final long put(TestEntity entity) {
75+
String[] simpleStringArray = entity.getSimpleStringArray();
76+
int __id10 = simpleStringArray != null ? __ID_simpleStringArray : 0;
77+
78+
collectStringArray(cursor, 0, PUT_FLAG_FIRST,
79+
__id10, simpleStringArray);
80+
7481
String simpleString = entity.getSimpleString();
7582
int __id8 = simpleString != null ? __ID_simpleString : 0;
7683
byte[] simpleByteArray = entity.getSimpleByteArray();
7784
int __id9 = simpleByteArray != null ? __ID_simpleByteArray : 0;
7885

79-
collect313311(cursor, 0, PUT_FLAG_FIRST,
86+
collect313311(cursor, 0, 0,
8087
__id8, simpleString, 0, null,
8188
0, null, __id9, simpleByteArray,
8289
__ID_simpleLong, entity.getSimpleLong(), __ID_simpleLongU, entity.getSimpleLongU(),

tests/objectbox-java-test/src/main/java/io/objectbox/TestEntity_.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,14 +77,17 @@ public final class TestEntity_ implements EntityInfo<TestEntity> {
7777
public final static io.objectbox.Property<TestEntity> simpleByteArray =
7878
new io.objectbox.Property<>(__INSTANCE, 9, 10, byte[].class, "simpleByteArray");
7979

80+
public final static io.objectbox.Property<TestEntity> simpleStringArray =
81+
new io.objectbox.Property<>(__INSTANCE, 10, 11, String[].class, "simpleStringArray", false, "simpleStringArray");
82+
8083
public final static io.objectbox.Property<TestEntity> simpleShortU =
81-
new io.objectbox.Property<>(__INSTANCE, 10, 11, short.class, "simpleShortU");
84+
new io.objectbox.Property<>(__INSTANCE, 11, 12, short.class, "simpleShortU");
8285

8386
public final static io.objectbox.Property<TestEntity> simpleIntU =
84-
new io.objectbox.Property<>(__INSTANCE, 11, 12, int.class, "simpleIntU");
87+
new io.objectbox.Property<>(__INSTANCE, 12, 13, int.class, "simpleIntU");
8588

8689
public final static io.objectbox.Property<TestEntity> simpleLongU =
87-
new io.objectbox.Property<>(__INSTANCE, 12, 13, long.class, "simpleLongU");
90+
new io.objectbox.Property<>(__INSTANCE, 13, 14, long.class, "simpleLongU");
8891

8992
@SuppressWarnings("unchecked")
9093
public final static io.objectbox.Property<TestEntity>[] __ALL_PROPERTIES = new io.objectbox.Property[]{
@@ -98,6 +101,7 @@ public final class TestEntity_ implements EntityInfo<TestEntity> {
98101
simpleDouble,
99102
simpleString,
100103
simpleByteArray,
104+
simpleStringArray,
101105
simpleShortU,
102106
simpleIntU,
103107
simpleLongU

tests/objectbox-java-test/src/test/java/io/objectbox/AbstractObjectBoxTest.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
import io.objectbox.model.PropertyFlags;
3535
import io.objectbox.model.PropertyType;
3636

37+
38+
import static org.junit.Assert.assertArrayEquals;
3739
import static org.junit.Assert.assertEquals;
3840
import static org.junit.Assert.assertTrue;
3941

@@ -197,6 +199,7 @@ private void addTestEntity(ModelBuilder modelBuilder, boolean withIndex) {
197199
pb.flags(PropertyFlags.INDEXED).indexId(++lastIndexId, lastIndexUid);
198200
}
199201
entityBuilder.property("simpleByteArray", PropertyType.ByteVector).id(TestEntity_.simpleByteArray.id, ++lastUid);
202+
entityBuilder.property("simpleStringArray", PropertyType.StringVector).id(TestEntity_.simpleStringArray.id, ++lastUid);
200203

201204
// Unsigned integers.
202205
entityBuilder.property("simpleShortU", PropertyType.Short).id(TestEntity_.simpleShortU.id, ++lastUid)
@@ -241,12 +244,32 @@ protected TestEntity createTestEntity(@Nullable String simpleString, int nr) {
241244
entity.setSimpleFloat(200 + nr / 10f);
242245
entity.setSimpleDouble(2000 + nr / 100f);
243246
entity.setSimpleByteArray(new byte[]{1, 2, (byte) nr});
247+
entity.setSimpleStringArray(new String[]{simpleString});
244248
entity.setSimpleShortU((short) (100 + nr));
245249
entity.setSimpleIntU(nr);
246250
entity.setSimpleLongU(1000 + nr);
247251
return entity;
248252
}
249253

254+
/**
255+
* Asserts all properties, excluding id. Assumes entity was created with {@link #createTestEntity(String, int)}.
256+
*/
257+
protected void assertTestEntity(TestEntity actual, @Nullable String simpleString, int nr) {
258+
assertEquals(simpleString, actual.getSimpleString());
259+
assertEquals(nr, actual.getSimpleInt());
260+
assertEquals((byte) (10 + nr), actual.getSimpleByte());
261+
assertEquals(nr % 2 == 0, actual.getSimpleBoolean());
262+
assertEquals((short) (100 + nr), actual.getSimpleShort());
263+
assertEquals(1000 + nr, actual.getSimpleLong());
264+
assertEquals(200 + nr / 10f, actual.getSimpleFloat(), 0);
265+
assertEquals(2000 + nr / 100f, actual.getSimpleDouble(), 0);
266+
assertArrayEquals(new byte[]{1, 2, (byte) nr}, actual.getSimpleByteArray());
267+
assertArrayEquals(new String[]{simpleString}, actual.getSimpleStringArray());
268+
assertEquals((short) (100 + nr), actual.getSimpleShortU());
269+
assertEquals(nr, actual.getSimpleIntU());
270+
assertEquals(1000 + nr, actual.getSimpleLongU());
271+
}
272+
250273
protected TestEntity putTestEntity(@Nullable String simpleString, int nr) {
251274
TestEntity entity = createTestEntity(simpleString, nr);
252275
long key = getTestEntityBox().put(entity);

tests/objectbox-java-test/src/test/java/io/objectbox/BoxTest.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,18 @@ public void setUpBox() {
3737

3838
@Test
3939
public void testPutAndGet() {
40-
TestEntity entity = new TestEntity();
41-
entity.setSimpleInt(1977);
40+
final String simpleString = "sunrise";
41+
final int simpleInt = 1977;
42+
43+
TestEntity entity = createTestEntity(simpleString, simpleInt);
4244
long key = box.put(entity);
4345
assertTrue(key != 0);
4446
assertEquals(key, entity.getId());
4547

4648
TestEntity entityRead = box.get(key);
4749
assertNotNull(entityRead);
48-
assertEquals(1977, entityRead.getSimpleInt());
50+
assertEquals(key, entityRead.getId());
51+
assertTestEntity(entityRead, simpleString, simpleInt);
4952
}
5053

5154
@Test

tests/objectbox-java-test/src/test/java/io/objectbox/NonArgConstructorTest.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,11 @@
1919
import org.junit.Before;
2020
import org.junit.Test;
2121

22-
import java.util.Arrays;
23-
2422
import io.objectbox.ModelBuilder.EntityBuilder;
2523
import io.objectbox.model.EntityFlags;
2624

2725

26+
import static org.junit.Assert.assertArrayEquals;
2827
import static org.junit.Assert.assertEquals;
2928
import static org.junit.Assert.assertNotNull;
3029
import static org.junit.Assert.assertTrue;
@@ -56,6 +55,8 @@ public void testPutAndGet() {
5655
entity.setSimpleLong(789437444354L);
5756
entity.setSimpleShort((short) 233);
5857
entity.setSimpleString("foo");
58+
String[] strings = {"foo", "bar"};
59+
entity.setSimpleStringArray(strings);
5960
long key = box.put(entity);
6061

6162
TestEntity entityRead = box.get(key);
@@ -68,8 +69,9 @@ public void testPutAndGet() {
6869
assertEquals(789437444354L, entityRead.getSimpleLong());
6970
assertEquals(3.14f, entityRead.getSimpleFloat(), 0.000001f);
7071
assertEquals(3.141f, entityRead.getSimpleDouble(), 0.000001);
71-
assertTrue(Arrays.equals(bytes, entityRead.getSimpleByteArray()));
72+
assertArrayEquals(bytes, entityRead.getSimpleByteArray());
7273
assertEquals("foo", entityRead.getSimpleString());
74+
assertArrayEquals(strings, entityRead.getSimpleStringArray());
7375
}
7476

7577
}

0 commit comments

Comments
 (0)