|
56 | 56 | import io.realm.entities.StringOnly; |
57 | 57 | import io.realm.entities.StringOnlyRequired; |
58 | 58 | import io.realm.entities.Thread; |
| 59 | +import io.realm.entities.embedded.EmbeddedSimpleChild; |
| 60 | +import io.realm.entities.embedded.EmbeddedSimpleParent; |
59 | 61 | import io.realm.entities.migration.MigrationClassRenamed; |
60 | 62 | import io.realm.entities.migration.MigrationCore6PKStringIndexedByDefault; |
61 | 63 | import io.realm.entities.migration.MigrationFieldRenameAndAdd; |
@@ -1488,6 +1490,42 @@ public void migrate(DynamicRealm realm, long oldVersion, long newVersion) { |
1488 | 1490 | realm.close(); |
1489 | 1491 | } |
1490 | 1492 |
|
| 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 | + |
1491 | 1529 | // TODO Add unit tests for default nullability |
1492 | 1530 | // TODO Add unit tests for default Indexing for Primary keys |
1493 | 1531 | } |
0 commit comments