112 lines
4.3 KiB
Java
112 lines
4.3 KiB
Java
package org.mercury_im.messenger.persistence.room;
|
|
|
|
import android.util.Log;
|
|
|
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
|
|
|
import org.junit.Test;
|
|
import org.junit.runner.RunWith;
|
|
import org.mercury_im.messenger.persistence.room.model.RoomAccountModel;
|
|
import org.mercury_im.messenger.persistence.room.model.RoomChatModel;
|
|
import org.mercury_im.messenger.persistence.room.model.RoomContactModel;
|
|
import org.mercury_im.messenger.persistence.room.model.RoomEntityModel;
|
|
|
|
import io.reactivex.Observable;
|
|
import io.reactivex.disposables.Disposable;
|
|
|
|
/**
|
|
* 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 extends AbstractDatabaseTest {
|
|
|
|
@Test
|
|
public void testUpsertContact1() {
|
|
RoomAccountModel accountModel = new RoomAccountModel();
|
|
accountModel.setJid(TEST_JID_JULIET);
|
|
accountRepository.insertAccount(accountModel).test().assertValue(1L).dispose();
|
|
|
|
RoomContactModel contactModel = new RoomContactModel();
|
|
RoomEntityModel entityModel = new RoomEntityModel();
|
|
entityModel.setAccountId(1);
|
|
entityModel.setJid(TEST_JID_ROMEO);
|
|
contactModel.setEntity(entityModel);
|
|
|
|
rosterRepository.upsertContact(contactModel).test().assertValue(1L).dispose();
|
|
rosterRepository.maybeGetContact(1L).subscribe(contact -> {
|
|
System.out.println(contact.getEntity().getAccountId() + " " + contact.getEntity().getJid().toString());
|
|
}).dispose();
|
|
|
|
rosterRepository.upsertContact(contactModel).test().assertValue(1L).dispose();
|
|
rosterRepository.maybeGetContact(1L).subscribe(contact -> {
|
|
System.out.println(contact.getEntity().getAccountId() + " " + contact.getEntity().getJid().toString());
|
|
}).dispose();
|
|
}
|
|
|
|
@Test
|
|
public void testGetOrCreateEntity() {
|
|
RoomAccountModel accountModel = new RoomAccountModel();
|
|
accountModel.setJid(TEST_JID_JULIET);
|
|
accountRepository.insertAccount(accountModel).test().assertValue(1L).dispose();
|
|
|
|
RoomEntityModel romeo = rosterRepository.getOrCreateEntityForAccountAndJid(accountModel, TEST_JID_ROMEO).blockingGet();
|
|
RoomEntityModel mercu = rosterRepository.getOrCreateEntityForAccountAndJid(accountModel, TEST_JID_MERCUTIO).blockingGet();
|
|
}
|
|
|
|
@Test
|
|
public void testObservabilityOfChat() throws InterruptedException {
|
|
RoomAccountModel accountModel = new RoomAccountModel();
|
|
accountModel.setJid(TEST_JID_JULIET);
|
|
accountRepository.insertAccount(accountModel).test().assertValue(1L).dispose();
|
|
|
|
Observable<RoomChatModel> chat = chatRepository.getOrCreateChatWith(accountModel.getId(), TEST_JID_ROMEO);
|
|
Disposable disposable = chat.subscribe(chatModel -> Log.d(AppDatabase.TAG, "onNext: " + chatModel));
|
|
|
|
|
|
RoomChatModel chatModel = chatRepository.newChatModel();
|
|
chatModel.setId(1L);
|
|
chatModel.setPeerEntityId(1L);
|
|
chatModel.setActive(true);
|
|
chatRepository.updateChat(chatModel).blockingAwait();
|
|
|
|
chatModel.setActive(false);
|
|
chatRepository.updateChat(chatModel).blockingAwait();
|
|
|
|
chatModel.setActive(true);
|
|
chatRepository.updateChat(chatModel).blockingAwait();
|
|
|
|
Thread.sleep(100);
|
|
|
|
disposable.dispose();
|
|
|
|
Thread.sleep(100);
|
|
}
|
|
|
|
@Test
|
|
public void testUpsertContact() throws InterruptedException {
|
|
RoomAccountModel accountModel = new RoomAccountModel();
|
|
accountModel.setJid(TEST_JID_ROMEO);
|
|
accountRepository.insertAccount(accountModel).test().assertValue(1L).dispose();
|
|
|
|
RoomContactModel contact = new RoomContactModel();
|
|
contact.setRosterName("A");
|
|
RoomEntityModel entity = new RoomEntityModel();
|
|
entity.setJid(TEST_JID_JULIET);
|
|
entity.setAccountId(1L);
|
|
contact.setEntity(entity);
|
|
rosterRepository.upsertContact(contact).test().assertValue(1L).dispose();
|
|
Thread.sleep(100);
|
|
contact.setId(0);
|
|
contact.setRosterName("B");
|
|
contact.getEntity().setId(0);
|
|
contact.setEntityId(0);
|
|
rosterRepository.upsertContact(contact).test().assertValue(1L).dispose();
|
|
|
|
rosterRepository.getAllContacts().subscribe(System.out::println);
|
|
|
|
Thread.sleep(200);
|
|
}
|
|
}
|