Search in sources :

Example 31 with MessageVO

use of com.fanap.podchat.mainmodel.MessageVO in project pod-chat-android-sdk by FanapSoft.

the class MessageManager method getSendingFromSendingCache.

public static List<Sending> getSendingFromSendingCache(List<SendingQueueCache> listCaches) {
    List<Sending> listQueues = new ArrayList<>();
    for (SendingQueueCache queueCache : listCaches) {
        Sending sending = new Sending();
        sending.setThreadId(queueCache.getThreadId());
        MessageVO messageVO = new MessageVO();
        messageVO.setId(queueCache.getId());
        messageVO.setMessage(queueCache.getMessage());
        messageVO.setMessageType(queueCache.getMessageType());
        messageVO.setMetadata(queueCache.getMetadata());
        messageVO.setSystemMetadata(queueCache.getSystemMetadata());
        sending.setMessageVo(messageVO);
        sending.setUniqueId(queueCache.getUniqueId());
        listQueues.add(sending);
    }
    return listQueues;
}
Also used : SendingQueueCache(com.fanap.podchat.cachemodel.queue.SendingQueueCache) Sending(com.fanap.podchat.cachemodel.queue.Sending) ArrayList(java.util.ArrayList) MessageVO(com.fanap.podchat.mainmodel.MessageVO)

Example 32 with MessageVO

use of com.fanap.podchat.mainmodel.MessageVO in project pod-chat-android-sdk by FanapSoft.

the class MessagesCacheTest method forwardMessageAndCheckCache.

@Test
public void forwardMessageAndCheckCache() {
    populateThreadsListFromServerOnly();
    populateMessagesFromServer();
    assert threads.size() > 1;
    assert threadMessagesList.size() > 0;
    Collections.shuffle(threads);
    Thread thread2 = threads.get(1);
    MessageVO message = threadMessagesList.get(0);
    ChatListener mTestListener = Mockito.mock(ChatListener.class);
    chat.setListener(mTestListener);
    RequestForwardMessage forRequest = new RequestForwardMessage.Builder(thread2.getId(), new ArrayList<>(Collections.singletonList(message.getId()))).build();
    chat.forwardMessage(forRequest);
    sleep(2000);
    RequestGetHistory requestGetHistory = new RequestGetHistory.Builder(thread2.getId()).build();
    chat.getHistory(requestGetHistory, null);
    Mockito.verify(mTestListener, Mockito.after(2000).atLeastOnce()).onGetHistory(Mockito.any(), Mockito.argThat((ChatResponse<ResultHistory> response) -> response.isCache() && response.getResult().getHistory().stream().anyMatch(messageVO -> messageVO.getForwardInfo() != null)));
}
Also used : ResultThreads(com.fanap.podchat.model.ResultThreads) Context(android.content.Context) ResultNewMessage(com.fanap.podchat.model.ResultNewMessage) RequestConnect(com.fanap.podchat.requestobject.RequestConnect) BeforeClass(org.junit.BeforeClass) RequestForwardMessage(com.fanap.podchat.requestobject.RequestForwardMessage) Mock(org.mockito.Mock) Date(java.util.Date) Thread(com.fanap.podchat.mainmodel.Thread) RunWith(org.junit.runner.RunWith) ChatPresenter(com.example.chat.application.chatexample.ChatPresenter) ChatContract(com.example.chat.application.chatexample.ChatContract) ChatResponse(com.fanap.podchat.model.ChatResponse) ArrayList(java.util.ArrayList) R(com.fanap.podchat.example.R) ResultHistory(com.fanap.podchat.model.ResultHistory) Looper(android.os.Looper) BaseApplication(com.example.chat.application.chatexample.BaseApplication) ChatActivity(com.example.chat.application.chatexample.ChatActivity) RequestThread(com.fanap.podchat.requestobject.RequestThread) RequestMessage(com.fanap.podchat.requestobject.RequestMessage) Before(org.junit.Before) RequestGetHistory(com.fanap.podchat.requestobject.RequestGetHistory) CHAT_READY(com.fanap.podchat.util.ChatStateType.ChatSateConstant.CHAT_READY) ActivityTestRule(android.support.test.rule.ActivityTestRule) Test(org.junit.Test) InstrumentationRegistry(android.support.test.InstrumentationRegistry) AndroidJUnit4(android.support.test.runner.AndroidJUnit4) ChatListener(com.fanap.podchat.chat.ChatListener) MessageVO(com.fanap.podchat.mainmodel.MessageVO) Collectors(java.util.stream.Collectors) Mockito(org.mockito.Mockito) APP_ID(com.example.chat.application.chatexample.ChatActivity.APP_ID) Rule(org.junit.Rule) TextMessageType(com.fanap.podchat.util.TextMessageType) Assert(org.junit.Assert) Activity(android.app.Activity) Chat(com.fanap.podchat.chat.Chat) Collections(java.util.Collections) RequestReplyMessage(com.fanap.podchat.requestobject.RequestReplyMessage) RequestForwardMessage(com.fanap.podchat.requestobject.RequestForwardMessage) RequestGetHistory(com.fanap.podchat.requestobject.RequestGetHistory) ChatListener(com.fanap.podchat.chat.ChatListener) ArrayList(java.util.ArrayList) MessageVO(com.fanap.podchat.mainmodel.MessageVO) ResultHistory(com.fanap.podchat.model.ResultHistory) Thread(com.fanap.podchat.mainmodel.Thread) RequestThread(com.fanap.podchat.requestobject.RequestThread) Test(org.junit.Test)

Example 33 with MessageVO

use of com.fanap.podchat.mainmodel.MessageVO in project pod-chat-android-sdk by FanapSoft.

the class MessagesCacheTest method testIfConversationAreSame.

@Test
public void testIfConversationAreSame() {
    populateMessagesFromServer();
    assert threadMessagesList.size() > 0;
    Collections.shuffle(threadMessagesList);
    MessageVO message = threadMessagesList.get(0);
    assert message.getConversation() != null;
    Thread thread = message.getConversation();
    chat.setListener(new ChatListener() {

        @Override
        public void onNewMessage(String content, ChatResponse<ResultNewMessage> response) {
            resumeProcess();
        }
    });
    RequestMessage repRequest = new RequestMessage.Builder("Message at " + new Date(), thread.getId()).messageType(TextMessageType.Constants.TEXT).build();
    chat.sendTextMessage(repRequest, null);
    pauseProcess();
    // Load Server messages
    ArrayList<MessageVO> msgFromServer = new ArrayList<>();
    chatListeners = new ChatListener() {

        @Override
        public void onGetHistory(String content, ChatResponse<ResultHistory> history) {
            if (!history.isCache()) {
                System.out.println("Received Message List Server: " + content);
                msgFromServer.addAll(history.getResult().getHistory());
                chat.removeListener(chatListeners);
                resumeProcess();
            }
        }
    };
    chat.addListener(chatListeners);
    RequestGetHistory requestGetHistory = new RequestGetHistory.Builder(thread.getId()).withNoCache().build();
    chat.getHistory(requestGetHistory, null);
    pauseProcess();
    // Load cache
    ArrayList<MessageVO> msgFromCache = new ArrayList<>();
    chatListeners = new ChatListener() {

        @Override
        public void onGetHistory(String content, ChatResponse<ResultHistory> history) {
            if (history.isCache()) {
                System.out.println("Received Message List Cache: " + content);
                msgFromCache.addAll(history.getResult().getHistory());
                chat.removeListener(chatListeners);
                resumeProcess();
            }
        }
    };
    chat.addListener(chatListeners);
    RequestGetHistory requestGetHistoryCache = new RequestGetHistory.Builder(thread.getId()).build();
    chat.getHistory(requestGetHistoryCache, null);
    pauseProcess();
    assert msgFromServer.size() > 0;
    assert msgFromCache.size() > 0;
    assert msgFromCache.size() == msgFromServer.size();
    for (MessageVO msg : msgFromServer) {
        if (msg.getMessage() == null)
            continue;
        System.out.println(">>>>>>>>>>> Server Message " + msg.getMessage() + " Conversation: " + msg.getConversation());
        MessageVO msgInCache = msgFromCache.stream().filter(messageVO -> messageVO.getId() == msg.getId()).findFirst().get();
        System.out.println(">>>>>>>>>>> Cache Message " + msgInCache.getMessage() + " RepInfo: " + msgInCache.getConversation());
        Assert.assertEquals(msg.getConversation() != null, msgInCache.getConversation() != null);
        if (msg.getConversation() != null) {
            Assert.assertEquals(msg.getConversation().getId(), msgInCache.getConversation().getId());
        }
    }
}
Also used : RequestGetHistory(com.fanap.podchat.requestobject.RequestGetHistory) ArrayList(java.util.ArrayList) ResultHistory(com.fanap.podchat.model.ResultHistory) Date(java.util.Date) Thread(com.fanap.podchat.mainmodel.Thread) RequestThread(com.fanap.podchat.requestobject.RequestThread) ResultNewMessage(com.fanap.podchat.model.ResultNewMessage) RequestMessage(com.fanap.podchat.requestobject.RequestMessage) ChatListener(com.fanap.podchat.chat.ChatListener) MessageVO(com.fanap.podchat.mainmodel.MessageVO) Test(org.junit.Test)

Example 34 with MessageVO

use of com.fanap.podchat.mainmodel.MessageVO in project pod-chat-android-sdk by FanapSoft.

the class MessagesCacheTest method sendReplyMessage.

@Test
public void sendReplyMessage() {
    populateMessagesFromServer();
    Collections.shuffle(threadMessagesList);
    MessageVO message = threadMessagesList.get(0);
    Assert.assertNotNull(message);
    Thread thread = message.getConversation();
    ChatListener mTestListener = Mockito.mock(ChatListener.class);
    chat.setListener(mTestListener);
    RequestReplyMessage repRequest = new RequestReplyMessage.Builder("Reply to " + message.getMessage(), thread.getId(), message.getId(), TextMessageType.Constants.TEXT).build();
    chat.replyMessage(repRequest, null);
    Mockito.verify(mTestListener, Mockito.after(2000).atLeastOnce()).onNewMessage(Mockito.any(), Mockito.any());
    sleep(2000);
}
Also used : RequestReplyMessage(com.fanap.podchat.requestobject.RequestReplyMessage) ChatListener(com.fanap.podchat.chat.ChatListener) MessageVO(com.fanap.podchat.mainmodel.MessageVO) Thread(com.fanap.podchat.mainmodel.Thread) RequestThread(com.fanap.podchat.requestobject.RequestThread) Test(org.junit.Test)

Example 35 with MessageVO

use of com.fanap.podchat.mainmodel.MessageVO in project pod-chat-android-sdk by FanapSoft.

the class MessagesCacheTest method forwardMessage.

@Test
public void forwardMessage() {
    populateThreadsListFromServerOnly();
    populateMessagesFromServer();
    assert threads.size() > 1;
    assert threadMessagesList.size() > 0;
    Thread thread = threads.get(0);
    Thread thread2 = threads.get(1);
    MessageVO message = threadMessagesList.get(0);
    ChatListener mTestListener = Mockito.mock(ChatListener.class);
    chat.setListener(mTestListener);
    RequestForwardMessage forRequest = new RequestForwardMessage.Builder(thread2.getId(), new ArrayList<>(Collections.singletonList(message.getId()))).build();
    chat.forwardMessage(forRequest);
    Mockito.verify(mTestListener, Mockito.after(2000).atLeastOnce()).onNewMessage(Mockito.any(), Mockito.any());
    sleep(2000);
}
Also used : RequestForwardMessage(com.fanap.podchat.requestobject.RequestForwardMessage) ChatListener(com.fanap.podchat.chat.ChatListener) ArrayList(java.util.ArrayList) MessageVO(com.fanap.podchat.mainmodel.MessageVO) Thread(com.fanap.podchat.mainmodel.Thread) RequestThread(com.fanap.podchat.requestobject.RequestThread) Test(org.junit.Test)

Aggregations

MessageVO (com.fanap.podchat.mainmodel.MessageVO)48 ArrayList (java.util.ArrayList)34 CacheMessageVO (com.fanap.podchat.cachemodel.CacheMessageVO)25 GapMessageVO (com.fanap.podchat.cachemodel.GapMessageVO)20 Thread (com.fanap.podchat.mainmodel.Thread)20 Test (org.junit.Test)20 ChatResponse (com.fanap.podchat.model.ChatResponse)18 ResultHistory (com.fanap.podchat.model.ResultHistory)18 ChatListener (com.fanap.podchat.chat.ChatListener)15 ResultNewMessage (com.fanap.podchat.model.ResultNewMessage)15 RequestThread (com.fanap.podchat.requestobject.RequestThread)15 PinMessageVO (com.fanap.podchat.mainmodel.PinMessageVO)13 Activity (android.app.Activity)10 Context (android.content.Context)10 Looper (android.os.Looper)10 InstrumentationRegistry (android.support.test.InstrumentationRegistry)10 ActivityTestRule (android.support.test.rule.ActivityTestRule)10 AndroidJUnit4 (android.support.test.runner.AndroidJUnit4)10 BaseApplication (com.example.chat.application.chatexample.BaseApplication)10 ChatActivity (com.example.chat.application.chatexample.ChatActivity)10