mirror of
https://codeberg.org/Mercury-IM/Mercury-IM
synced 2024-06-16 00:24:51 +02:00
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;
|
package org.mercury_im.messenger.data.repository;
|
||||||
|
|
||||||
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.mercury_im.messenger.data.mapping.AccountMapping;
|
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.Account;
|
||||||
import org.mercury_im.messenger.entity.IAccount;
|
import org.mercury_im.messenger.entity.IAccount;
|
||||||
import org.mercury_im.messenger.entity.PasswordAuthentication;
|
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 org.sqlite.SQLiteDataSource;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import io.reactivex.functions.Predicate;
|
||||||
import io.reactivex.observers.TestObserver;
|
import io.reactivex.observers.TestObserver;
|
||||||
import io.reactivex.schedulers.Schedulers;
|
import io.reactivex.schedulers.Schedulers;
|
||||||
import io.reactivex.subscribers.TestSubscriber;
|
import io.reactivex.subscribers.TestSubscriber;
|
||||||
import io.requery.Persistable;
|
import io.requery.Persistable;
|
||||||
import io.requery.cache.EntityCacheBuilder;
|
import io.requery.cache.EntityCacheBuilder;
|
||||||
|
import io.requery.cache.WeakEntityCache;
|
||||||
import io.requery.meta.EntityModel;
|
import io.requery.meta.EntityModel;
|
||||||
import io.requery.reactivex.ReactiveEntityStore;
|
import io.requery.reactivex.ReactiveEntityStore;
|
||||||
import io.requery.reactivex.ReactiveSupport;
|
import io.requery.reactivex.ReactiveSupport;
|
||||||
import io.requery.sql.Configuration;
|
import io.requery.sql.Configuration;
|
||||||
import io.requery.sql.ConfigurationBuilder;
|
import io.requery.sql.ConfigurationBuilder;
|
||||||
import io.requery.sql.EntityDataStore;
|
import io.requery.sql.EntityDataStore;
|
||||||
|
import io.requery.sql.SchemaModifier;
|
||||||
|
import io.requery.sql.TableCreationMode;
|
||||||
import io.requery.sql.TransactionMode;
|
import io.requery.sql.TransactionMode;
|
||||||
|
|
||||||
|
import static junit.framework.TestCase.assertEquals;
|
||||||
|
|
||||||
public class AccountRepositoryTest {
|
public class AccountRepositoryTest {
|
||||||
|
|
||||||
ReactiveEntityStore<Persistable> dataStore;
|
ReactiveEntityStore<Persistable> dataStore;
|
||||||
|
|
||||||
XmppAccountRepository accountRepository;
|
XmppAccountRepository accountRepository;
|
||||||
|
|
||||||
|
XmppDirectChatRepository directChatRepository;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
SQLiteDataSource dataSource = new SQLiteDataSource();
|
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;
|
EntityModel model = Models.DEFAULT;
|
||||||
Configuration configuration = new ConfigurationBuilder(dataSource, model)
|
Configuration configuration = new ConfigurationBuilder(dataSource, model)
|
||||||
|
.setEntityCache(new WeakEntityCache())
|
||||||
.useDefaultLogging()
|
.useDefaultLogging()
|
||||||
.setTransactionMode(TransactionMode.AUTO)
|
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
SchemaModifier modifier = new SchemaModifier(dataSource, model);
|
||||||
|
modifier.createTables(TableCreationMode.DROP_CREATE);
|
||||||
|
|
||||||
dataStore = ReactiveSupport.toReactiveStore(new EntityDataStore<>(configuration));
|
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();
|
accountRepository.mapping = new AccountMapping();
|
||||||
|
|
||||||
|
directChatRepository = new XmppDirectChatRepository(dataStore, Schedulers.io(), Schedulers.trampoline());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -51,9 +90,25 @@ public class AccountRepositoryTest {
|
||||||
account.setEnabled(true);
|
account.setEnabled(true);
|
||||||
account.setAuthentication(new PasswordAuthentication("swordfish"));
|
account.setAuthentication(new PasswordAuthentication("swordfish"));
|
||||||
|
|
||||||
TestObserver<Account> testObserver = accountRepository.insertAccount(account)
|
Peer peer = new IPeer();
|
||||||
.subscribeWith(new TestObserver<>());
|
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 a new issue