Skip to content

Commit 2816ad7

Browse files
authored
[CHA-1209] added member message response (#192)
* Added member to message response * Added member to message response * Updated test * Spotless apply * Updated test * Format
1 parent 6d3209e commit 2816ad7

File tree

2 files changed

+104
-0
lines changed

2 files changed

+104
-0
lines changed

src/main/java/io/getstream/chat/java/models/Message.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.fasterxml.jackson.annotation.*;
44
import io.getstream.chat.java.exceptions.StreamException;
5+
import io.getstream.chat.java.models.Channel.ChannelMember;
56
import io.getstream.chat.java.models.Flag.FlagCreateRequestData.FlagCreateRequest;
67
import io.getstream.chat.java.models.Flag.FlagDeleteRequestData.FlagDeleteRequest;
78
import io.getstream.chat.java.models.Flag.FlagMessageQueryRequestData.FlagMessageQueryRequest;
@@ -172,6 +173,10 @@ public class Message {
172173
@JsonProperty("shared_location")
173174
private SharedLocation sharedLocation;
174175

176+
@Nullable
177+
@JsonProperty("member")
178+
private ChannelMember member;
179+
175180
@NotNull @JsonIgnore private Map<String, Object> additionalFields = new HashMap<>();
176181

177182
@JsonAnyGetter
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
package io.getstream.chat.java;
2+
3+
import io.getstream.chat.java.models.Channel;
4+
import io.getstream.chat.java.models.Channel.*;
5+
import io.getstream.chat.java.models.Message;
6+
import io.getstream.chat.java.models.Message.MessageRequestObject;
7+
import io.getstream.chat.java.models.User.UserRequestObject;
8+
import java.util.List;
9+
import org.apache.commons.lang3.RandomStringUtils;
10+
import org.junit.jupiter.api.Assertions;
11+
import org.junit.jupiter.api.DisplayName;
12+
import org.junit.jupiter.api.Test;
13+
14+
public class ChannelMemberRoleMessageTest extends BasicTest {
15+
16+
@DisplayName("Messages include channel member role")
17+
@Test
18+
void whenSendingMessages_thenMemberRoleIsIncluded() {
19+
String customRole = "custom_role";
20+
21+
UserRequestObject userWithCustomRole = testUsersRequestObjects.get(0);
22+
UserRequestObject userWithDefaultRole = testUsersRequestObjects.get(1);
23+
24+
var channelResp =
25+
Assertions.assertDoesNotThrow(
26+
() ->
27+
Channel.getOrCreate("team", RandomStringUtils.randomAlphabetic(12))
28+
.data(
29+
ChannelRequestObject.builder()
30+
.createdBy(testUserRequestObject)
31+
.member(
32+
ChannelMemberRequestObject.builder()
33+
.user(userWithCustomRole)
34+
.channelRole(customRole)
35+
.build())
36+
.member(
37+
ChannelMemberRequestObject.builder()
38+
.user(userWithDefaultRole)
39+
.build())
40+
.build())
41+
.request());
42+
var channel = channelResp.getChannel();
43+
44+
Message messageWithRole =
45+
Assertions.assertDoesNotThrow(
46+
() ->
47+
Message.send(channel.getType(), channel.getId())
48+
.message(
49+
MessageRequestObject.builder()
50+
.text("Message from user with role")
51+
.userId(userWithCustomRole.getId())
52+
.build())
53+
.request())
54+
.getMessage();
55+
56+
Message messageWithoutRole =
57+
Assertions.assertDoesNotThrow(
58+
() ->
59+
Message.send(channel.getType(), channel.getId())
60+
.message(
61+
MessageRequestObject.builder()
62+
.text("Message from user without role")
63+
.userId(userWithDefaultRole.getId())
64+
.build())
65+
.request())
66+
.getMessage();
67+
68+
Assertions.assertNotNull(messageWithRole.getMember());
69+
Assertions.assertEquals(customRole, messageWithRole.getMember().getChannelRole());
70+
71+
Assertions.assertNotNull(messageWithoutRole.getMember());
72+
Assertions.assertEquals("channel_member", messageWithoutRole.getMember().getChannelRole());
73+
74+
var channelState =
75+
Assertions.assertDoesNotThrow(
76+
() -> Channel.getOrCreate(channel.getType(), channel.getId()).state(true).request());
77+
78+
List<Message> messages = channelState.getMessages();
79+
Assertions.assertNotNull(messages);
80+
Message storedWithRole =
81+
messages.stream()
82+
.filter(m -> m.getId().equals(messageWithRole.getId()))
83+
.findFirst()
84+
.orElse(null);
85+
Message storedWithoutRole =
86+
messages.stream()
87+
.filter(m -> m.getId().equals(messageWithoutRole.getId()))
88+
.findFirst()
89+
.orElse(null);
90+
91+
Assertions.assertNotNull(storedWithRole);
92+
Assertions.assertNotNull(storedWithRole.getMember());
93+
Assertions.assertEquals(customRole, storedWithRole.getMember().getChannelRole());
94+
95+
Assertions.assertNotNull(storedWithoutRole);
96+
Assertions.assertNotNull(storedWithoutRole.getMember());
97+
Assertions.assertEquals("channel_member", storedWithoutRole.getMember().getChannelRole());
98+
}
99+
}

0 commit comments

Comments
 (0)