Search in sources :

Example 1 with StreamService

use of com.github.jamesnetherton.zulip.client.api.stream.StreamService in project zulip-java-client by jamesnetherton.

the class ZulipEventIT method messageEvents.

@Test
public void messageEvents() throws Exception {
    CountDownLatch latch = new CountDownLatch(3);
    List<String> messages = new ArrayList<>();
    String streamName = UUID.randomUUID().toString().split("-")[0];
    StreamSubscriptionRequest subscriptionRequest = StreamSubscriptionRequest.of(streamName, streamName);
    StreamService streamService = zulip.streams();
    streamService.subscribe(subscriptionRequest).execute();
    for (int i = 0; i < 10; i++) {
        List<Stream> streams = streamService.getAll().execute();
        List<Stream> matches = streams.stream().filter(stream -> stream.getName().equals(streamName)).collect(Collectors.toList());
        if (matches.size() == 1) {
            break;
        }
        Thread.sleep(500);
    }
    EventPoller eventPoller = zulip.events().captureMessageEvents(new MessageEventListener() {

        @Override
        public void onEvent(Message event) {
            messages.add(event.getContent());
            latch.countDown();
        }
    });
    try {
        eventPoller.start();
        MessageService messageService = zulip.messages();
        for (int i = 0; i < 3; i++) {
            messageService.sendStreamMessage("Test Content " + i, streamName, "testtopic").execute();
        }
        assertTrue(latch.await(5, TimeUnit.SECONDS));
        for (int i = 0; i < 3; i++) {
            assertEquals("Test Content " + i, messages.get(i));
        }
    } catch (ZulipClientException e) {
        e.printStackTrace();
        throw e;
    } finally {
        eventPoller.stop();
    }
}
Also used : StreamService(com.github.jamesnetherton.zulip.client.api.stream.StreamService) Message(com.github.jamesnetherton.zulip.client.api.message.Message) StreamService(com.github.jamesnetherton.zulip.client.api.stream.StreamService) ZulipClientException(com.github.jamesnetherton.zulip.client.exception.ZulipClientException) MessageService(com.github.jamesnetherton.zulip.client.api.message.MessageService) Stream(com.github.jamesnetherton.zulip.client.api.stream.Stream) EventPoller(com.github.jamesnetherton.zulip.client.api.event.EventPoller) StreamSubscriptionRequest(com.github.jamesnetherton.zulip.client.api.stream.StreamSubscriptionRequest) ZulipIntegrationTestBase(com.github.jamesnetherton.zulip.client.api.integration.ZulipIntegrationTestBase) UUID(java.util.UUID) Disabled(org.junit.jupiter.api.Disabled) Collectors(java.util.stream.Collectors) ArrayList(java.util.ArrayList) TimeUnit(java.util.concurrent.TimeUnit) Test(org.junit.jupiter.api.Test) CountDownLatch(java.util.concurrent.CountDownLatch) List(java.util.List) MessageEventListener(com.github.jamesnetherton.zulip.client.api.event.MessageEventListener) Narrow(com.github.jamesnetherton.zulip.client.api.narrow.Narrow) Assertions.assertTrue(org.junit.jupiter.api.Assertions.assertTrue) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) ZulipClientException(com.github.jamesnetherton.zulip.client.exception.ZulipClientException) EventPoller(com.github.jamesnetherton.zulip.client.api.event.EventPoller) Message(com.github.jamesnetherton.zulip.client.api.message.Message) StreamSubscriptionRequest(com.github.jamesnetherton.zulip.client.api.stream.StreamSubscriptionRequest) MessageEventListener(com.github.jamesnetherton.zulip.client.api.event.MessageEventListener) ArrayList(java.util.ArrayList) CountDownLatch(java.util.concurrent.CountDownLatch) MessageService(com.github.jamesnetherton.zulip.client.api.message.MessageService) Stream(com.github.jamesnetherton.zulip.client.api.stream.Stream) Test(org.junit.jupiter.api.Test)

Aggregations

EventPoller (com.github.jamesnetherton.zulip.client.api.event.EventPoller)1 MessageEventListener (com.github.jamesnetherton.zulip.client.api.event.MessageEventListener)1 ZulipIntegrationTestBase (com.github.jamesnetherton.zulip.client.api.integration.ZulipIntegrationTestBase)1 Message (com.github.jamesnetherton.zulip.client.api.message.Message)1 MessageService (com.github.jamesnetherton.zulip.client.api.message.MessageService)1 Narrow (com.github.jamesnetherton.zulip.client.api.narrow.Narrow)1 Stream (com.github.jamesnetherton.zulip.client.api.stream.Stream)1 StreamService (com.github.jamesnetherton.zulip.client.api.stream.StreamService)1 StreamSubscriptionRequest (com.github.jamesnetherton.zulip.client.api.stream.StreamSubscriptionRequest)1 ZulipClientException (com.github.jamesnetherton.zulip.client.exception.ZulipClientException)1 ArrayList (java.util.ArrayList)1 List (java.util.List)1 UUID (java.util.UUID)1 CountDownLatch (java.util.concurrent.CountDownLatch)1 TimeUnit (java.util.concurrent.TimeUnit)1 Collectors (java.util.stream.Collectors)1 Assertions.assertEquals (org.junit.jupiter.api.Assertions.assertEquals)1 Assertions.assertTrue (org.junit.jupiter.api.Assertions.assertTrue)1 Disabled (org.junit.jupiter.api.Disabled)1 Test (org.junit.jupiter.api.Test)1