Mercury-IM/data/src/test/java/org/mercury_im/messenger/data/repository/AccountRepositoryTest.java

97 lines
3.2 KiB
Java

package org.mercury_im.messenger.data.repository;
import org.junit.Test;
import org.mercury_im.messenger.data.di.DaggerRepositoryTestComponent;
import org.mercury_im.messenger.data.di.RepositoryTestComponent;
import org.mercury_im.messenger.entity.Account;
import org.mercury_im.messenger.entity.IAccount;
import org.mercury_im.messenger.entity.PasswordAuthentication;
import org.mercury_im.messenger.entity.chat.DirectChat;
import org.mercury_im.messenger.entity.chat.IDirectChat;
import org.mercury_im.messenger.entity.contact.IPeer;
import org.mercury_im.messenger.entity.contact.Peer;
import org.mercury_im.messenger.entity.message.IMessage;
import org.mercury_im.messenger.entity.message.IPayloadContainer;
import org.mercury_im.messenger.entity.message.Message;
import org.mercury_im.messenger.entity.message.PayloadContainer;
import org.mercury_im.messenger.entity.message.content.TextPayload;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import javax.inject.Inject;
import io.requery.Persistable;
import io.requery.reactivex.ReactiveEntityStore;
import static junit.framework.TestCase.assertEquals;
public class AccountRepositoryTest {
@Inject
ReactiveEntityStore<Persistable> dataStore;
@Inject
XmppAccountRepository accountRepository;
@Inject
XmppDirectChatRepository directChatRepository;
@Inject
XmppPeerRepository contactRepository;
@Inject
XmppMessageRepository messageRepository;
@Inject
public AccountRepositoryTest() {
RepositoryTestComponent testComponent = DaggerRepositoryTestComponent.builder()
.build();
testComponent.inject(this);
}
@Test
public void test() {
Account account = new IAccount();
account.setAddress("test@test.test");
account.setEnabled(true);
account.setAuthentication(new PasswordAuthentication("swordfish"));
Peer peer = new IPeer();
peer.setName("Test Peer");
peer.setAddress("peer@peer.peer");
peer.setAccount(account);
DirectChat directChat = new IDirectChat();
directChat.setPeer(peer);
directChat.setAccount(account);
//Account accountModel = accountRepository.insertAccount(account).blockingGet();
//assertEquals(1, accountModel.getId());
DirectChat chatModel = directChatRepository.insertDirectChat(directChat)
.blockingGet();
assertEquals(1, chatModel.getId());
Message message = new IMessage();
message.setSender("test@test.test");
message.setRecipient("peer@peer.peer");
message.setTimestamp(new Date());
PayloadContainer container = new IPayloadContainer();
TextPayload body = new TextPayload();
body.setBody("Hallo");
container.setMessageContents(Collections.singletonList(body));
List<PayloadContainer> payloadContainers = new ArrayList<>();
payloadContainers.add(container);
message.setMessagePayloads(payloadContainers);
Message _message = messageRepository.insertMessage(directChat, message)
.blockingGet();
dataStore.close();
}
}