Skip to content

Commit c166df3

Browse files
committed
Added tests again
1 parent 944d33c commit c166df3

File tree

1 file changed

+95
-0
lines changed

1 file changed

+95
-0
lines changed
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
package io.getstream.chat.java;
2+
3+
import io.getstream.chat.java.models.Channel;
4+
import io.getstream.chat.java.models.Channel.ChannelGetResponse;
5+
import io.getstream.chat.java.models.Channel.ChannelRequestObject;
6+
import io.getstream.chat.java.models.Message;
7+
import io.getstream.chat.java.models.Message.MessageRequestObject;
8+
import java.util.HashMap;
9+
import java.util.Map;
10+
import org.apache.commons.lang3.RandomStringUtils;
11+
import org.junit.jupiter.api.Assertions;
12+
import org.junit.jupiter.api.DisplayName;
13+
import org.junit.jupiter.api.Test;
14+
15+
public class MessageCountTest extends BasicTest {
16+
17+
@DisplayName("Message count is present when feature enabled")
18+
@Test
19+
void whenCountMessagesEnabled_thenMessagesCount() {
20+
// Create a fresh channel with default configuration (count_messages enabled by default)
21+
ChannelGetResponse channelGetResponse =
22+
Assertions.assertDoesNotThrow(
23+
() ->
24+
Channel.getOrCreate("team", RandomStringUtils.randomAlphabetic(12))
25+
.data(
26+
ChannelRequestObject.builder()
27+
.createdBy(testUserRequestObject)
28+
.members(buildChannelMembersList())
29+
.build())
30+
.request());
31+
32+
String type = channelGetResponse.getChannel().getType();
33+
String id = channelGetResponse.getChannel().getId();
34+
35+
// Post a message so the channel has at least one message
36+
MessageRequestObject messageRequest =
37+
MessageRequestObject.builder()
38+
.text("test message")
39+
.userId(testUserRequestObject.getId())
40+
.build();
41+
Assertions.assertDoesNotThrow(() -> Message.send(type, id).message(messageRequest).request());
42+
43+
// Retrieve the channel again to inspect server response
44+
ChannelGetResponse refreshed =
45+
Assertions.assertDoesNotThrow(() -> Channel.getOrCreate(type, id).request());
46+
47+
System.out.printf("%s", refreshed.getChannel());
48+
49+
Assertions.assertTrue(
50+
refreshed.getChannel().getMessageCount() == 1,
51+
"messages_count should be 1 when count_messages is enabled");
52+
}
53+
54+
@DisplayName("Message count is not returned when feature disabled")
55+
@Test
56+
void whenCountMessagesDisabled_thenNoMessageCountPresent() {
57+
// Create a fresh channel first
58+
ChannelGetResponse channelGetResponse =
59+
Assertions.assertDoesNotThrow(
60+
() ->
61+
Channel.getOrCreate("team", RandomStringUtils.randomAlphabetic(12))
62+
.data(
63+
ChannelRequestObject.builder()
64+
.createdBy(testUserRequestObject)
65+
.members(buildChannelMembersList())
66+
.build())
67+
.request());
68+
69+
String type = channelGetResponse.getChannel().getType();
70+
String id = channelGetResponse.getChannel().getId();
71+
System.out.printf("[count_enabled] Channel CID: %s%n", channelGetResponse.getChannel().getCId());
72+
73+
// Disable count_messages via partial update (config_overrides)
74+
Map<String, Object> overrides = new HashMap<>();
75+
overrides.put("count_messages", false);
76+
Assertions.assertDoesNotThrow(
77+
() -> Channel.partialUpdate(type, id).setValue("config_overrides", overrides).request());
78+
79+
80+
MessageRequestObject messageRequest =
81+
MessageRequestObject.builder()
82+
.text("test message")
83+
.userId(testUserRequestObject.getId())
84+
.build();
85+
Assertions.assertDoesNotThrow(() -> Message.send(type, id).message(messageRequest).request());
86+
87+
// Retrieve the channel again
88+
ChannelGetResponse refreshed =
89+
Assertions.assertDoesNotThrow(() -> Channel.getOrCreate(type, id).request());
90+
91+
Integer messagesCount = refreshed.getChannel().getMessageCount();
92+
Assertions.assertNull(messagesCount, "messages_count should not be present when count_messages is disabled");
93+
}
94+
95+
}

0 commit comments

Comments
 (0)