use of io.realm.entities.Cat in project realm-java by realm.
the class RealmTests method schemaIndexCacheIsUpdatedAfterSchemaChange.
@Test
public void schemaIndexCacheIsUpdatedAfterSchemaChange() {
final CatRealmProxy.CatColumnInfo catColumnInfo;
catColumnInfo = (CatRealmProxy.CatColumnInfo) realm.schema.columnIndices.getColumnInfo(Cat.class);
final long nameIndex = catColumnInfo.nameIndex;
final AtomicLong nameIndexNew = new AtomicLong(-1L);
// Changes column index of "name".
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
final Table catTable = realm.getSchema().getTable(Cat.CLASS_NAME);
final long nameIndex = catTable.getColumnIndex(Cat.FIELD_NAME);
catTable.removeColumn(nameIndex);
final long newIndex = catTable.addColumn(RealmFieldType.STRING, Cat.FIELD_NAME, true);
realm.setVersion(realm.getConfiguration().getSchemaVersion() + 1);
nameIndexNew.set(newIndex);
}
});
// We need to update index cache if the schema version was changed in the same thread.
realm.sharedRealm.invokeSchemaChangeListenerIfSchemaChanged();
// Checks if the index was changed.
assertNotEquals(nameIndex, nameIndexNew);
// Checks if index in the ColumnInfo is updated.
assertEquals(nameIndexNew.get(), catColumnInfo.nameIndex);
assertEquals(nameIndexNew.get(), (long) catColumnInfo.getIndicesMap().get(Cat.FIELD_NAME));
// Checks by actual get and set.
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
final Cat cat = realm.createObject(Cat.class);
cat.setName("pochi");
}
});
//noinspection ConstantConditions
assertEquals("pochi", realm.where(Cat.class).findFirst().getName());
}
use of io.realm.entities.Cat in project realm-java by realm.
the class RealmListTests method removeAll_managedMode_wrongClass.
@Test
public void removeAll_managedMode_wrongClass() {
realm.beginTransaction();
//noinspection SuspiciousMethodCalls
assertFalse(collection.removeAll(Collections.singletonList(new Cat())));
}
use of io.realm.entities.Cat in project realm-java by realm.
the class RealmListTests method removeAll_unmanaged_wrongClass.
@Test
public void removeAll_unmanaged_wrongClass() {
RealmList<Dog> list = createUnmanagedDogList();
//noinspection SuspiciousMethodCalls
assertFalse(list.removeAll(Collections.singletonList(new Cat())));
}
use of io.realm.entities.Cat in project realm-java by realm.
the class BulkInsertTests method insertOrUpdate_emptyListWithCompositeMediator.
/**
* Added to reproduce https://github.com/realm/realm-java/issues/3103
*/
@Test
public void insertOrUpdate_emptyListWithCompositeMediator() {
final RealmConfiguration config = configFactory.createConfigurationBuilder().modules(new HumanModule(), new AnimalModule()).name("composite.realm").build();
Realm.deleteRealm(config);
assertEquals(config.getSchemaMediator().getClass(), CompositeMediator.class);
final Realm realm = Realm.getInstance(config);
//noinspection TryFinallyCanBeTryWithResources
try {
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.insertOrUpdate(Collections.<Cat>emptyList());
}
});
assertEquals(0, realm.where(Cat.class).count());
} finally {
realm.close();
}
}
use of io.realm.entities.Cat in project realm-java by realm.
the class BulkInsertTests method insert_emptyListWithCompositeMediator.
/**
* Added to reproduce https://github.com/realm/realm-java/issues/3103
*/
@Test
public void insert_emptyListWithCompositeMediator() {
final RealmConfiguration config = configFactory.createConfigurationBuilder().modules(new HumanModule(), new AnimalModule()).name("composite.realm").build();
Realm.deleteRealm(config);
assertEquals(config.getSchemaMediator().getClass(), CompositeMediator.class);
final Realm realm = Realm.getInstance(config);
//noinspection TryFinallyCanBeTryWithResources
try {
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
realm.insert(Collections.<Cat>emptyList());
}
});
assertEquals(0, realm.where(Cat.class).count());
} finally {
realm.close();
}
}
Aggregations