Mercury-IM/persistence-room/src/androidTest/java/org/mercury_im/messenger/persistence/room/ExampleInstrumentedTest.java

64 lines
2.4 KiB
Java

package org.mercury_im.messenger.persistence.room;
import android.content.Context;
import android.util.Log;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.jxmpp.jid.impl.JidCreate;
import org.mercury_im.messenger.persistence.model.AccountModel;
import org.mercury_im.messenger.persistence.room.model.RoomAccountModel;
import org.mercury_im.messenger.persistence.room.repository.IAccountRepository;
import org.mercury_im.messenger.persistence.room.repository.IContactAttributesRepository;
import org.mercury_im.messenger.persistence.room.repository.IMessageRepository;
import java.util.List;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.functions.Predicate;
import io.reactivex.observers.DefaultObserver;
import io.reactivex.schedulers.Schedulers;
import static org.junit.Assert.assertEquals;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test
Context context = ApplicationProvider.getApplicationContext();
AppDatabase appDatabase = AppDatabase.getDatabase(context);
IAccountRepository accountRepository = new IAccountRepository(appDatabase.accountDao());
IContactAttributesRepository rosterRepository = new IContactAttributesRepository(appDatabase.rosterEntryDao());
IMessageRepository messageRepository = new IMessageRepository(appDatabase.messageDao());
Observable<List<RoomAccountModel>> accounts = accountRepository.getAllAccounts();
final RoomAccountModel a1 = new RoomAccountModel();
a1.setJid(JidCreate.entityBareFromOrThrowUnchecked("alice@wonderland.lit"));
a1.setPassword("5w0rdf1sh");
a1.setEnabled(false);
accountRepository.insertAccount(a1);
accounts.test()
.assertValue(new Predicate<List<RoomAccountModel>>() {
@Override
public boolean test(List<RoomAccountModel> roomAccountModels) throws Exception {
return roomAccountModels.size() == 1;
}
});
}
}