Skip to content

Commit d42b1c0

Browse files
committed
Added file with tests
1 parent c2081c4 commit d42b1c0

File tree

1 file changed

+96
-0
lines changed

1 file changed

+96
-0
lines changed
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
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 absent when feature disabled")
18+
@Test
19+
void whenCountMessagesDisabled_thenNoMessagesCount() {
20+
// Create a fresh channel with default configuration (count_messages disabled 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+
// The messages_count field should be null / absent when the feature is disabled
48+
Assertions.assertNull(
49+
refreshed.getChannel().getMessagesCount(),
50+
"messages_count should be null when count_messages is disabled");
51+
}
52+
53+
@DisplayName("Message count is returned when feature enabled")
54+
@Test
55+
void whenCountMessagesEnabled_thenMessagesCountPresent() {
56+
// Create a fresh channel first
57+
ChannelGetResponse channelGetResponse =
58+
Assertions.assertDoesNotThrow(
59+
() ->
60+
Channel.getOrCreate("team", RandomStringUtils.randomAlphabetic(12))
61+
.data(
62+
ChannelRequestObject.builder()
63+
.createdBy(testUserRequestObject)
64+
.members(buildChannelMembersList())
65+
.build())
66+
.request());
67+
68+
String type = channelGetResponse.getChannel().getType();
69+
String id = channelGetResponse.getChannel().getId();
70+
71+
// Enable count_messages via partial update (config_overrides)
72+
Map<String, Object> overrides = new HashMap<>();
73+
overrides.put("count_messages", true);
74+
Assertions.assertDoesNotThrow(
75+
() -> Channel.partialUpdate(type, id).setValue("config_overrides", overrides).request());
76+
77+
// Post a message so the channel has activity to count
78+
MessageRequestObject messageRequest =
79+
MessageRequestObject.builder()
80+
.text("test message")
81+
.userId(testUserRequestObject.getId())
82+
.build();
83+
Assertions.assertDoesNotThrow(() -> Message.send(type, id).message(messageRequest).request());
84+
85+
// Retrieve the channel again
86+
ChannelGetResponse refreshed =
87+
Assertions.assertDoesNotThrow(() -> Channel.getOrCreate(type, id).request());
88+
89+
Integer messagesCount = refreshed.getChannel().getMessagesCount();
90+
Assertions.assertNotNull(
91+
messagesCount, "messages_count should be present when count_messages is enabled");
92+
Assertions.assertTrue(
93+
messagesCount >= 1,
94+
"messages_count should be at least 1 after sending a message when the feature is enabled");
95+
}
96+
}

0 commit comments

Comments
 (0)