forked from ringcentral/ringcentral-java
-
Notifications
You must be signed in to change notification settings - Fork 0
/
GlipTest.java
55 lines (47 loc) · 2.02 KB
/
GlipTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package com.ringcentral;
import com.alibaba.fastjson.JSON;
import com.ringcentral.definitions.GlipCreatePost;
import com.ringcentral.definitions.GlipNotification;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import java.io.IOException;
import java.util.function.Consumer;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
public class GlipTest extends BaseTest {
private String sendMessage() throws IOException, RestException {
GlipCreatePost postParameters = new GlipCreatePost();
postParameters = postParameters.text("hello world");
return restClient.post("/restapi/v1.0/glip/groups/" + config.get("glip_group") + "/posts", postParameters).string();
}
@Test
public void testPostMessage() throws IOException, RestException {
String result = sendMessage();
assertEquals(true, result.contains("hello world"));
}
@Test
public void testGroups() throws IOException, RestException {
String result = restClient.get("/restapi/v1.0/glip/groups").string();
assertEquals(true, result.contains("records"));
}
@Test
public void testReceiveMessage() throws IOException, RestException, InterruptedException {
final Consumer<String> consumer = mock(Consumer.class);
Subscription subscription = restClient.subscription(
new String[]{"/restapi/v1.0/glip/posts"},
consumer
);
subscription.subscribe();
Thread.sleep(8000);
sendMessage();
Thread.sleep(32000);
ArgumentCaptor<String> argument = ArgumentCaptor.forClass(String.class);
verify(consumer).accept(argument.capture());
String jsonString = argument.getValue();
assertTrue(jsonString.contains("hello world"));
GlipNotification glipNotification = JSON.parseObject(jsonString, GlipNotification.class);
assertEquals("hello world", glipNotification.body.text);
}
}