Search in sources :

Example 11 with RequestGetHistory

use of com.fanap.podchat.requestobject.RequestGetHistory in project pod-chat-android-sdk by FanapSoft.

the class ChatTestSandbox method getHistoryHashtagTest.

@Test
@LargeTest
public void getHistoryHashtagTest() {
    long startTime = System.currentTimeMillis();
    ChatListener historyListeners = new ChatListener() {

        @Override
        public void onGetHistory(String content, ChatResponse<ResultHistory> history) {
            System.out.println("onGetHistory: ");
            Logger.json(history.getJson());
            Assert.assertTrue(true);
            resumeProcess();
        }
    };
    chat.setListener(historyListeners);
    RequestGetHistory request = new RequestGetHistory.Builder(8085).offset(0).count(25).order("desc").build();
    presenter.getHistory(request, null);
    pauseProcess();
}
Also used : RequestGetHistory(com.fanap.podchat.requestobject.RequestGetHistory) ChatResponse(com.fanap.podchat.model.ChatResponse) ChatListener(com.fanap.podchat.chat.ChatListener) FlakyTest(android.support.test.filters.FlakyTest) MediumTest(android.support.test.filters.MediumTest) Test(org.junit.Test) LargeTest(android.support.test.filters.LargeTest) LargeTest(android.support.test.filters.LargeTest)

Example 12 with RequestGetHistory

use of com.fanap.podchat.requestobject.RequestGetHistory in project pod-chat-android-sdk by FanapSoft.

the class ChatTest method getThreadFullHistory.

private void getThreadFullHistory(Thread thread) {
    long startTime = System.currentTimeMillis();
    AtomicBoolean hasNext = new AtomicBoolean(true);
    int count = 25;
    AtomicLong offset = new AtomicLong(0);
    AtomicLong threadMessagesCount = new AtomicLong(-1);
    AtomicLong threadReceivedHistory = new AtomicLong(0);
    ChatListener historyListeners = new ChatListener() {

        @Override
        public void onGetHistory(String content, ChatResponse<ResultHistory> history) {
            threadMessagesCount.set(history.getResult().getContentCount());
            long received = threadReceivedHistory.get();
            threadReceivedHistory.set(received + history.getResult().getHistory().size());
            hasNext.set(history.getResult().isHasNext());
            if (hasNext.get()) {
                offset.set(offset.get() + history.getResult().getHistory().size());
            }
            resumeProcess();
        }

        @Override
        public void onError(String content, ErrorOutPut error) {
            Assert.fail(content);
        }
    };
    chat.addListener(historyListeners);
    while (hasNext.get()) {
        RequestGetHistory requestGetHistory = new RequestGetHistory.Builder(thread.getId()).offset(offset.get()).withNoCache().count(count).order("desc").build();
        String uniqueId = presenter.getHistory(requestGetHistory, null);
        pauseProcess();
    }
    long endTime = System.currentTimeMillis();
    System.out.println(">>> >>> >>>");
    System.out.println(">>> >>> >>>");
    System.out.println(">>> >>> >>>");
    System.out.println("RUNNING TEST ON THREAD:");
    System.out.println(thread.getTitle());
    System.out.println(thread.getId());
    System.out.println("RECEIVED TOTAL " + threadReceivedHistory + " MESSAGES OF HISTORY IN");
    System.out.println(endTime - startTime + " MILLISECONDS");
    System.out.println(">>> >>> >>>");
    System.out.println(">>> >>> >>>");
    System.out.println(">>> >>> >>>");
    Assert.assertEquals(threadMessagesCount.get(), threadReceivedHistory.get());
}
Also used : AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) AtomicLong(java.util.concurrent.atomic.AtomicLong) RequestGetHistory(com.fanap.podchat.requestobject.RequestGetHistory) ChatResponse(com.fanap.podchat.model.ChatResponse) ChatListener(com.fanap.podchat.chat.ChatListener) ErrorOutPut(com.fanap.podchat.model.ErrorOutPut)

Example 13 with RequestGetHistory

use of com.fanap.podchat.requestobject.RequestGetHistory in project pod-chat-android-sdk by FanapSoft.

the class ChatTest method getThreadHistoryBeforeAndAfterLastSeenMessage.

@Test
@LargeTest
public // and greater in second case
void getThreadHistoryBeforeAndAfterLastSeenMessage() {
    populateThreadsListFromServerOrCache();
    System.out.println("** Get history of " + threads.get(0).getTitle());
    Thread thread = threads.get(0);
    final long lastSeen = thread.getLastSeenMessageTime() + thread.getLastSeenMessageNanos();
    AtomicInteger numOfCacheResp = new AtomicInteger(0);
    ChatListener historyListeners = new ChatListener() {

        @Override
        public void onGetHistory(String content, ChatResponse<ResultHistory> history) {
            int invokeTimes = 0;
            if (history.isCache()) {
                invokeTimes = numOfCacheResp.getAndIncrement();
            }
            checkTimesIsValid(history, invokeTimes, lastSeen);
            if (invokeTimes >= 2) {
                resumeProcess();
            }
        }
    };
    chat.addListener(historyListeners);
    RequestGetHistory requestGetHistoryBeforeLastSeenTime = new RequestGetHistory.Builder(thread.getId()).toTimeNanos(lastSeen).offset(0).count(25).order("desc").build();
    presenter.getHistory(requestGetHistoryBeforeLastSeenTime, null);
    RequestGetHistory requestGetHistoryAfterLastSeenTime = new RequestGetHistory.Builder(thread.getId()).fromTimeNanos(lastSeen).offset(0).count(25).order("asc").build();
    presenter.getHistory(requestGetHistoryAfterLastSeenTime, null);
    pauseProcess();
    sleep(2000);
    Mockito.verify(view, Mockito.atLeast(2)).onGetThreadHistory(Mockito.any());
}
Also used : AtomicInteger(java.util.concurrent.atomic.AtomicInteger) RequestGetHistory(com.fanap.podchat.requestobject.RequestGetHistory) ChatResponse(com.fanap.podchat.model.ChatResponse) ChatListener(com.fanap.podchat.chat.ChatListener) Thread(com.fanap.podchat.mainmodel.Thread) RequestThread(com.fanap.podchat.requestobject.RequestThread) FlakyTest(android.support.test.filters.FlakyTest) MediumTest(android.support.test.filters.MediumTest) Test(org.junit.Test) LargeTest(android.support.test.filters.LargeTest) LargeTest(android.support.test.filters.LargeTest)

Example 14 with RequestGetHistory

use of com.fanap.podchat.requestobject.RequestGetHistory in project pod-chat-android-sdk by FanapSoft.

the class ChatTest method getThreadHistory.

public void getThreadHistory(long threadId) {
    RequestGetHistory request = new RequestGetHistory.Builder(threadId).offset(0).count(25).order(// .order("asc")
    "desc").build();
    presenter.getHistory(request, null);
    sleep(2000);
    Mockito.verify(view, Mockito.atLeastOnce()).onGetThreadHistory(Mockito.any());
}
Also used : RequestGetHistory(com.fanap.podchat.requestobject.RequestGetHistory)

Example 15 with RequestGetHistory

use of com.fanap.podchat.requestobject.RequestGetHistory in project pod-chat-android-sdk by FanapSoft.

the class ThreadManager method prepareGetHIstoryWithUniqueIdsRequest.

public static String prepareGetHIstoryWithUniqueIdsRequest(long threadId, String uniqueId, String[] uniqueIds, String typeCode, String token) {
    RequestGetHistory request = new RequestGetHistory.Builder(threadId).offset(0).count(uniqueIds.length).uniqueIds(uniqueIds).build();
    String content = App.getGson().toJson(request);
    ChatMessage chatMessage = new ChatMessage();
    chatMessage.setContent(content);
    chatMessage.setType(ChatMessageType.Constants.GET_HISTORY);
    chatMessage.setToken(token);
    chatMessage.setTokenIssuer("1");
    chatMessage.setUniqueId(uniqueId);
    chatMessage.setSubjectId(threadId);
    JsonObject jsonObject = (JsonObject) App.getGson().toJsonTree(chatMessage);
    if (Util.isNullOrEmpty(typeCode)) {
        jsonObject.remove("typeCode");
    } else {
        jsonObject.remove("typeCode");
        jsonObject.addProperty("typeCode", typeCode);
    }
    String asyncContent = jsonObject.toString();
    return asyncContent;
}
Also used : ChatMessage(com.fanap.podchat.mainmodel.ChatMessage) RequestGetHistory(com.fanap.podchat.requestobject.RequestGetHistory) JsonObject(com.google.gson.JsonObject)

Aggregations

RequestGetHistory (com.fanap.podchat.requestobject.RequestGetHistory)27 ChatListener (com.fanap.podchat.chat.ChatListener)23 Thread (com.fanap.podchat.mainmodel.Thread)18 RequestThread (com.fanap.podchat.requestobject.RequestThread)18 ResultHistory (com.fanap.podchat.model.ResultHistory)15 ChatResponse (com.fanap.podchat.model.ChatResponse)14 Test (org.junit.Test)14 MessageVO (com.fanap.podchat.mainmodel.MessageVO)9 ArrayList (java.util.ArrayList)9 ResultNewMessage (com.fanap.podchat.model.ResultNewMessage)8 RequestMessage (com.fanap.podchat.requestobject.RequestMessage)7 Date (java.util.Date)7 Activity (android.app.Activity)6 Context (android.content.Context)6 Looper (android.os.Looper)6 InstrumentationRegistry (android.support.test.InstrumentationRegistry)6 LargeTest (android.support.test.filters.LargeTest)6 ActivityTestRule (android.support.test.rule.ActivityTestRule)6 AndroidJUnit4 (android.support.test.runner.AndroidJUnit4)6 BaseApplication (com.example.chat.application.chatexample.BaseApplication)6