Tinker with junit database test
This commit is contained in:
parent
787484ebdd
commit
abf4b59500
|
@ -1,5 +1,6 @@
|
|||
package org.mercury_im.messenger.data.repository;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.mercury_im.messenger.data.mapping.AccountMapping;
|
||||
|
@ -7,41 +8,79 @@ import org.mercury_im.messenger.data.model.Models;
|
|||
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.Chat;
|
||||
import org.mercury_im.messenger.entity.chat.ChatPreferences;
|
||||
import org.mercury_im.messenger.entity.chat.DirectChat;
|
||||
import org.mercury_im.messenger.entity.chat.IChatPreferences;
|
||||
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.IMessagePayload;
|
||||
import org.mercury_im.messenger.entity.message.Message;
|
||||
import org.mercury_im.messenger.entity.message.MessageDeliveryState;
|
||||
import org.mercury_im.messenger.entity.message.content.MessageContent;
|
||||
import org.mercury_im.messenger.entity.message.content.TextMessageContent;
|
||||
import org.sqlite.SQLiteConfig;
|
||||
import org.sqlite.SQLiteDataSource;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.functions.Predicate;
|
||||
import io.reactivex.observers.TestObserver;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
import io.reactivex.subscribers.TestSubscriber;
|
||||
import io.requery.Persistable;
|
||||
import io.requery.cache.EntityCacheBuilder;
|
||||
import io.requery.cache.WeakEntityCache;
|
||||
import io.requery.meta.EntityModel;
|
||||
import io.requery.reactivex.ReactiveEntityStore;
|
||||
import io.requery.reactivex.ReactiveSupport;
|
||||
import io.requery.sql.Configuration;
|
||||
import io.requery.sql.ConfigurationBuilder;
|
||||
import io.requery.sql.EntityDataStore;
|
||||
import io.requery.sql.SchemaModifier;
|
||||
import io.requery.sql.TableCreationMode;
|
||||
import io.requery.sql.TransactionMode;
|
||||
|
||||
import static junit.framework.TestCase.assertEquals;
|
||||
|
||||
public class AccountRepositoryTest {
|
||||
|
||||
ReactiveEntityStore<Persistable> dataStore;
|
||||
|
||||
XmppAccountRepository accountRepository;
|
||||
|
||||
XmppDirectChatRepository directChatRepository;
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
SQLiteDataSource dataSource = new SQLiteDataSource();
|
||||
dataSource.setUrl("jdbc:sqlite::memory:");
|
||||
dataSource.setUrl("jdbc:sqlite::memory:test");
|
||||
SQLiteConfig config = new SQLiteConfig();
|
||||
config.setDateClass("TEXT");
|
||||
dataSource.setConfig(config);
|
||||
// Turn on foreign keys support.
|
||||
// NOTE: Do it after setConfig, or setConfig will overwrite this setting
|
||||
dataSource.setEnforceForeignKeys(true);
|
||||
|
||||
EntityModel model = Models.DEFAULT;
|
||||
Configuration configuration = new ConfigurationBuilder(dataSource, model)
|
||||
.setEntityCache(new WeakEntityCache())
|
||||
.useDefaultLogging()
|
||||
.setTransactionMode(TransactionMode.AUTO)
|
||||
.build();
|
||||
|
||||
SchemaModifier modifier = new SchemaModifier(dataSource, model);
|
||||
modifier.createTables(TableCreationMode.DROP_CREATE);
|
||||
|
||||
dataStore = ReactiveSupport.toReactiveStore(new EntityDataStore<>(configuration));
|
||||
|
||||
accountRepository = new XmppAccountRepository(dataStore, Schedulers.io(), Schedulers.computation());
|
||||
accountRepository = new XmppAccountRepository(dataStore, Schedulers.io(), Schedulers.trampoline());
|
||||
accountRepository.mapping = new AccountMapping();
|
||||
|
||||
directChatRepository = new XmppDirectChatRepository(dataStore, Schedulers.io(), Schedulers.trampoline());
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -51,9 +90,25 @@ public class AccountRepositoryTest {
|
|||
account.setEnabled(true);
|
||||
account.setAuthentication(new PasswordAuthentication("swordfish"));
|
||||
|
||||
TestObserver<Account> testObserver = accountRepository.insertAccount(account)
|
||||
.subscribeWith(new TestObserver<>());
|
||||
Peer peer = new IPeer();
|
||||
peer.setName("Test Peer");
|
||||
peer.setAddress("peer@peer.peer");
|
||||
peer.setAccount(account);
|
||||
|
||||
testObserver.getEvents();
|
||||
DirectChat directChat = new IDirectChat();
|
||||
directChat.setPeer(peer);
|
||||
directChat.setAccount(account);
|
||||
|
||||
//Account model = accountRepository.insertAccount(account).blockingGet();
|
||||
//assertEquals(1, model.getId());
|
||||
|
||||
DirectChat model = directChatRepository.insertDirectChat(directChat)
|
||||
.blockingGet();
|
||||
assertEquals(1, model.getId());
|
||||
}
|
||||
|
||||
@After
|
||||
public void teardown() {
|
||||
dataStore.close();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue