Search in sources :

Example 6 with Cat

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());
}
Also used : AtomicLong(java.util.concurrent.atomic.AtomicLong) Table(io.realm.internal.Table) Cat(io.realm.entities.Cat) SharedRealm(io.realm.internal.SharedRealm) Test(org.junit.Test)

Example 7 with Cat

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())));
}
Also used : Cat(io.realm.entities.Cat) Test(org.junit.Test)

Example 8 with 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())));
}
Also used : Cat(io.realm.entities.Cat) Dog(io.realm.entities.Dog) Test(org.junit.Test)

Example 9 with 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();
    }
}
Also used : Cat(io.realm.entities.Cat) AnimalModule(io.realm.entities.AnimalModule) HumanModule(io.realm.entities.HumanModule) Test(org.junit.Test)

Example 10 with Cat

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();
    }
}
Also used : Cat(io.realm.entities.Cat) AnimalModule(io.realm.entities.AnimalModule) HumanModule(io.realm.entities.HumanModule) Test(org.junit.Test)

Aggregations

Cat (io.realm.entities.Cat)10 Test (org.junit.Test)9 Dog (io.realm.entities.Dog)3 AnimalModule (io.realm.entities.AnimalModule)2 HumanModule (io.realm.entities.HumanModule)2 Owner (io.realm.entities.Owner)2 RunTestInLooperThread (io.realm.rule.RunTestInLooperThread)2 DogPrimaryKey (io.realm.entities.DogPrimaryKey)1 OwnerPrimaryKey (io.realm.entities.OwnerPrimaryKey)1 PrimaryKeyMix (io.realm.entities.PrimaryKeyMix)1 SharedRealm (io.realm.internal.SharedRealm)1 Table (io.realm.internal.Table)1 Date (java.util.Date)1 AtomicLong (java.util.concurrent.atomic.AtomicLong)1