Skip to content

Commit d923fc6

Browse files
authored
Add test for embedded objects (#7456)
1 parent f42fcd2 commit d923fc6

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

realm/realm-library/src/androidTest/java/io/realm/RealmMigrationTests.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@
5656
import io.realm.entities.StringOnly;
5757
import io.realm.entities.StringOnlyRequired;
5858
import io.realm.entities.Thread;
59+
import io.realm.entities.embedded.EmbeddedSimpleChild;
60+
import io.realm.entities.embedded.EmbeddedSimpleParent;
5961
import io.realm.entities.migration.MigrationClassRenamed;
6062
import io.realm.entities.migration.MigrationCore6PKStringIndexedByDefault;
6163
import io.realm.entities.migration.MigrationFieldRenameAndAdd;
@@ -1488,6 +1490,42 @@ public void migrate(DynamicRealm realm, long oldVersion, long newVersion) {
14881490
realm.close();
14891491
}
14901492

1493+
@Test
1494+
public void migrate_embeddedObject(){
1495+
// Create schema v0
1496+
RealmConfiguration originalConfig = configFactory.createConfigurationBuilder()
1497+
.schema(StringOnly.class)
1498+
.build();
1499+
1500+
Realm.getInstance(originalConfig).close();
1501+
1502+
RealmMigration migration = new RealmMigration() {
1503+
@Override
1504+
public void migrate(DynamicRealm realm, long oldVersion, long newVersion) {
1505+
RealmSchema schema = realm.getSchema();
1506+
RealmObjectSchema embeddedSimpleChildSchema = schema
1507+
.create(EmbeddedSimpleChild.NAME)
1508+
.addField("childId", String.class, FieldAttribute.REQUIRED);
1509+
1510+
schema.create(EmbeddedSimpleParent.NAME)
1511+
.addField("_id", String.class, FieldAttribute.PRIMARY_KEY, FieldAttribute.REQUIRED)
1512+
.addRealmObjectField(EmbeddedSimpleParent.CHILD, embeddedSimpleChildSchema);
1513+
1514+
embeddedSimpleChildSchema.setEmbedded(true);
1515+
}
1516+
};
1517+
1518+
// Create schema v1
1519+
RealmConfiguration realmConfig = configFactory
1520+
.createConfigurationBuilder()
1521+
.schemaVersion(1)
1522+
.schema(StringOnly.class, EmbeddedSimpleParent.class, EmbeddedSimpleChild.class)
1523+
.migration(migration)
1524+
.build();
1525+
1526+
realm = Realm.getInstance(realmConfig);
1527+
}
1528+
14911529
// TODO Add unit tests for default nullability
14921530
// TODO Add unit tests for default Indexing for Primary keys
14931531
}

realm/realm-library/src/androidTest/kotlin/io/realm/entities/embedded/EmbeddedSimpleParent.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,10 @@ import java.util.*
2121

2222
// Top-level object describing a simple embedded objects structure consisting of only an object reference.
2323
open class EmbeddedSimpleParent(@PrimaryKey var _id: String = UUID.randomUUID().toString()) : RealmObject() {
24+
companion object {
25+
const val NAME = "EmbeddedSimpleParent"
26+
const val CHILD = "child"
27+
}
28+
2429
var child: EmbeddedSimpleChild? = null
2530
}

0 commit comments

Comments
 (0)