Skip to content

Commit 33c0803

Browse files
authored
feat: add new field to Message (#112)
* feat: add deleted_reply_count field to Message * fix: print stream key * fix: delete channels before running tests * fix: wait until channel deletion task completes * fix: remove unwanted sleep
1 parent 8ba87f1 commit 33c0803

File tree

3 files changed

+52
-0
lines changed

3 files changed

+52
-0
lines changed

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,10 @@ public class Message {
9797
@JsonProperty("reply_count")
9898
private Integer replyCount;
9999

100+
@Nullable
101+
@JsonProperty("deleted_reply_count")
102+
private Integer deletedReplyCount;
103+
100104
@Nullable
101105
@JsonProperty("quoted_message_id")
102106
private String quotedMessageId;

src/test/java/io/getstream/chat/java/BasicTest.java

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import io.getstream.chat.java.models.Channel.ChannelMemberRequestObject;
77
import io.getstream.chat.java.models.Channel.ChannelRequestObject;
88
import io.getstream.chat.java.models.Message.MessageRequestObject;
9+
import io.getstream.chat.java.models.TaskStatus.TaskStatusGetResponse;
910
import io.getstream.chat.java.models.User.UserRequestObject;
1011
import io.getstream.chat.java.models.User.UserUpsertRequestData.UserUpsertRequest;
1112
import java.util.ArrayList;
@@ -29,6 +30,7 @@ public class BasicTest {
2930
static void setup() throws StreamException, SecurityException, IllegalArgumentException {
3031
// failOnUnknownProperties();
3132
setProperties();
33+
cleanChannels();
3234
cleanChannelTypes();
3335
cleanBlocklists();
3436
cleanCommands();
@@ -37,6 +39,43 @@ static void setup() throws StreamException, SecurityException, IllegalArgumentEx
3739
createTestMessage();
3840
}
3941

42+
private static void cleanChannels() throws StreamException {
43+
while (true) {
44+
List<String> channels =
45+
Channel.list().request().getChannels().stream()
46+
.map(channel -> channel.getChannel().getCId())
47+
.collect(Collectors.toList());
48+
49+
if (channels.size() == 0) {
50+
break;
51+
}
52+
53+
var deleteManyResponse =
54+
Channel.deleteMany(channels).setDeleteStrategy(DeleteStrategy.HARD).request();
55+
String taskId = deleteManyResponse.getTaskId();
56+
Assertions.assertNotNull(taskId);
57+
58+
System.out.printf("Waiting for channel deletion task %s to complete...\n", taskId);
59+
60+
while (true) {
61+
TaskStatusGetResponse response = TaskStatus.get(taskId).request();
62+
String status = response.getStatus();
63+
64+
if (status.equals("completed") || status.equals("ok")) {
65+
break;
66+
}
67+
if (status.equals("failed") || status.equals("error")) {
68+
throw new StreamException(
69+
String.format("Failed to delete channel(task_id: %s): %s", response.getId(), status),
70+
(Throwable) null);
71+
}
72+
73+
// wait for the channels to delete
74+
Assertions.assertDoesNotThrow(() -> Thread.sleep(500));
75+
}
76+
}
77+
}
78+
4079
private static void cleanChannelTypes() throws StreamException {
4180
ChannelType.list()
4281
.request()

src/test/java/io/getstream/chat/java/MessageTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -510,6 +510,15 @@ void whenRetrievingReplies_thenAreRetrieved() {
510510
.getMessages();
511511
// This assertion is for now commented as there is an issue on the backend
512512
// Assertions.assertEquals(1, repliesAfterFirstMessage.size());
513+
514+
// test deleted reply count
515+
Assertions.assertDoesNotThrow(() -> Message.delete(firstReply.getId()).request());
516+
Message m =
517+
Assertions.assertDoesNotThrow(() -> Message.get(parentMessage.getId()).request())
518+
.getMessage();
519+
520+
Assertions.assertEquals(2, m.getReplyCount());
521+
Assertions.assertEquals(1, m.getDeletedReplyCount());
513522
}
514523

515524
@DisplayName("Can execute command action")

0 commit comments

Comments
 (0)