Search in sources :

Example 11 with SyncUser

use of io.realm.SyncUser in project realm-java by realm.

the class ProcessCommitTests method expectALot.

// 1. Open a sync Realm and listen to changes.
// A. Open the same sync Realm.
// B. Create 100 objects.
// 2. Check if the 100 objects are received.
// #. Repeat B/2 10 times.
@Test
@RunTestWithRemoteService(remoteService = ALotCommitsRemoteService.class, onLooperThread = true)
@RunTestInLooperThread
public void expectALot() throws Throwable {
    looperThread.runAfterTest(remoteService.afterRunnable);
    remoteService.createHandler(Looper.myLooper());
    final SyncUser user = UserFactory.getInstance().createDefaultUser(Constants.AUTH_URL);
    String realmUrl = Constants.SYNC_SERVER_URL;
    final SyncConfiguration syncConfig = user.createConfiguration(realmUrl).modules(new ProcessCommitTestsModule()).directory(looperThread.getRoot()).build();
    final Realm realm = Realm.getInstance(syncConfig);
    final RealmResults<TestObject> all = realm.where(TestObject.class).sort("intProp").findAll();
    looperThread.keepStrongReference(all);
    final AtomicInteger listenerCalledCounter = new AtomicInteger(0);
    all.addChangeListener(new RealmChangeListener<RealmResults<TestObject>>() {

        @Override
        public void onChange(RealmResults<TestObject> element) {
            int counter = listenerCalledCounter.incrementAndGet();
            int size = all.size();
            if (size == 0) {
                listenerCalledCounter.decrementAndGet();
                return;
            }
            // Added 100 objects every time.
            assertEquals(0, size % 100);
            assertEquals(counter * 100 - 1, all.last().getIntProp());
            assertEquals("Str" + (counter * 100 - 1), all.last().getStringProp());
            if (counter == 10) {
                remoteService.triggerServiceStep(ALotCommitsRemoteService.stepC_closeRealm);
                realm.close();
                user.logOut();
                looperThread.testComplete();
            } else {
                remoteService.triggerServiceStep(ALotCommitsRemoteService.stepB_createObjects);
            }
        }
    });
    remoteService.triggerServiceStep(ALotCommitsRemoteService.stepA_openRealm);
    remoteService.triggerServiceStep(ALotCommitsRemoteService.stepB_createObjects);
}
Also used : SyncUser(io.realm.SyncUser) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) TestObject(io.realm.objectserver.model.TestObject) Realm(io.realm.Realm) SyncConfiguration(io.realm.SyncConfiguration) RealmResults(io.realm.RealmResults) RunTestWithRemoteService(io.realm.rule.RunTestWithRemoteService) RunTestInLooperThread(io.realm.rule.RunTestInLooperThread) Test(org.junit.Test) StandardIntegrationTest(io.realm.StandardIntegrationTest)

Aggregations

SyncUser (io.realm.SyncUser)11 Realm (io.realm.Realm)8 SyncConfiguration (io.realm.SyncConfiguration)8 Test (org.junit.Test)7 ObjectServerError (io.realm.ObjectServerError)6 RunTestInLooperThread (io.realm.rule.RunTestInLooperThread)6 RealmResults (io.realm.RealmResults)4 SyncCredentials (io.realm.SyncCredentials)4 ClientResetHandler (io.realm.ClientResetHandler)3 SyncSession (io.realm.SyncSession)3 ProcessInfo (io.realm.objectserver.model.ProcessInfo)3 RealmChangeListener (io.realm.RealmChangeListener)2 StandardIntegrationTest (io.realm.StandardIntegrationTest)2 TestObject (io.realm.objectserver.model.TestObject)2 RunTestWithRemoteService (io.realm.rule.RunTestWithRemoteService)2 Ignore (org.junit.Ignore)2 ProgressDialog (android.app.ProgressDialog)1 Context (android.content.Context)1 Intent (android.content.Intent)1 SecureUserStore (io.realm.android.SecureUserStore)1