From f5e07de11b743c1fd99ac8ab13ca9cdf278f62d7 Mon Sep 17 00:00:00 2001 From: Slava Bobik Date: Wed, 29 Jan 2025 14:46:02 +0100 Subject: [PATCH] Added restricted visibility --- .../getstream/chat/java/models/Message.java | 8 +++ .../io/getstream/chat/java/MessageTest.java | 65 +++++++++++++++++++ 2 files changed, 73 insertions(+) diff --git a/src/main/java/io/getstream/chat/java/models/Message.java b/src/main/java/io/getstream/chat/java/models/Message.java index 63307626..0cf5beea 100644 --- a/src/main/java/io/getstream/chat/java/models/Message.java +++ b/src/main/java/io/getstream/chat/java/models/Message.java @@ -66,6 +66,10 @@ public class Message { @JsonProperty("user") private User user; + @Nullable + @JsonProperty("restricted_visibility") + private List restrictedVisibility; + @Nullable @JsonProperty("attachments") private List attachments; @@ -425,6 +429,10 @@ public static class MessageRequestObject { @JsonProperty("user") private UserRequestObject user; + @Nullable + @JsonProperty("restricted_visibility") + private List restrictedVisibility; + @Nullable @JsonProperty("parent_id") private String parentId; diff --git a/src/test/java/io/getstream/chat/java/MessageTest.java b/src/test/java/io/getstream/chat/java/MessageTest.java index 97d8fd9b..a2a18f52 100644 --- a/src/test/java/io/getstream/chat/java/MessageTest.java +++ b/src/test/java/io/getstream/chat/java/MessageTest.java @@ -32,6 +32,28 @@ void whenRetrievingAMessage_thenIsRetrieved() { Assertions.assertTrue(retrievedMessage.getId().equals(testMessage.getId())); } + @DisplayName("Can send a message with restricted visibility") + @Test + void whenSendingMessageWithRestrictedVisibility_thenMessageHasRestrictedVisibility() { + List restrictedUsers = Arrays.asList(testUserRequestObject.getId()); + MessageRequestObject messageRequest = + MessageRequestObject.builder() + .text("This is a restricted message") + .userId(testUserRequestObject.getId()) + .restrictedVisibility(restrictedUsers) + .build(); + + Message restrictedMessage = + Assertions.assertDoesNotThrow( + () -> + Message.send(testChannel.getType(), testChannel.getId()) + .message(messageRequest) + .request() + .getMessage()); + + Assertions.assertEquals(restrictedUsers, restrictedMessage.getRestrictedVisibility()); + } + @DisplayName("Can retrieve a deleted message") @Test void whenRetrievingADeletedMessage_thenIsRetrieved() { @@ -71,6 +93,28 @@ void whenUpdatingAMessage_thenNoException() { Assertions.assertEquals(updatedText, updatedMessage.getText()); } + @DisplayName("Can update a message with restricted visibility") + @Test + void whenUpdatingAMessageWithRestrictedVisibility_thenNoException() { + // Should not use testMessage to not modify it + Message message = Assertions.assertDoesNotThrow(() -> sendTestMessage()); + String updatedText = "This is an updated message"; + List restrictedUsers = Arrays.asList(testUserRequestObject.getId()); + + MessageRequestObject updatedMessageRequest = + MessageRequestObject.builder() + .text(updatedText) + .userId(testUserRequestObject.getId()) + .restrictedVisibility(restrictedUsers) + .build(); + Message updatedMessage = + Assertions.assertDoesNotThrow( + () -> Message.update(message.getId()).message(updatedMessageRequest).request()) + .getMessage(); + Assertions.assertEquals(updatedText, updatedMessage.getText()); + Assertions.assertEquals(restrictedUsers, updatedMessage.getRestrictedVisibility()); + } + @DisplayName("Searching with query and message filter conditions throws an exception") @Test void givenQueryAndMessageFilterConditions_whenSearchingMessages_thenThrowException() { @@ -663,6 +707,27 @@ void whenPartiallyUpdatingAMessage_thenIsUpdated() { Assertions.assertEquals(updatedText, updatedMessage.getText()); } + @DisplayName("Can partially update a message with restricted visibility") + @Test + void whenPartiallyUpdatingAMessageWithRestrictedVisibility_thenIsUpdated() { + // Should not use testMessage to not modify it + Message message = Assertions.assertDoesNotThrow(() -> sendTestMessage()); + String updatedText = "This is an updated message"; + List restrictedUsers = Arrays.asList(testUserRequestObject.getId()); + + Message updatedMessage = + Assertions.assertDoesNotThrow( + () -> + Message.partialUpdate(message.getId()) + .setValue("text", updatedText) + .setValue("restricted_visibility", restrictedUsers) + .user(testUserRequestObject) + .request()) + .getMessage(); + Assertions.assertEquals(updatedText, updatedMessage.getText()); + Assertions.assertEquals(restrictedUsers, updatedMessage.getRestrictedVisibility()); + } + @DisplayName("Can pin a message") @Test void whenPinningAMessage_thenIsPinned() {