diff --git a/lib/src/test/java/io/ably/lib/test/common/Helpers.java b/lib/src/test/java/io/ably/lib/test/common/Helpers.java index 724e818af..35d2622fc 100644 --- a/lib/src/test/java/io/ably/lib/test/common/Helpers.java +++ b/lib/src/test/java/io/ably/lib/test/common/Helpers.java @@ -956,6 +956,12 @@ public synchronized void waitFor() { } catch(InterruptedException e) {} } + public synchronized void reset() { + gotResult = false; + result = null; + error = null; + } + public T result; public ErrorInfo error; private boolean gotResult = false; diff --git a/lib/src/test/java/io/ably/lib/test/realtime/RealtimeChannelMessageEditTest.java b/lib/src/test/java/io/ably/lib/test/realtime/RealtimeChannelMessageEditTest.java index 5e4954ca1..7d06a5f24 100644 --- a/lib/src/test/java/io/ably/lib/test/realtime/RealtimeChannelMessageEditTest.java +++ b/lib/src/test/java/io/ably/lib/test/realtime/RealtimeChannelMessageEditTest.java @@ -385,13 +385,23 @@ public void appendMessage_checkUpdatedData() throws Exception { messageAppend.data = "Append data"; channel.appendMessage(messageAppend); + appendWaiter.waitFor(); + // 3. Verify update Message retrieved = waitForUpdatedMessageAppear(channel, serial); assertEquals("Expected updated data in history", "Initial dataAppend data", retrieved.data); assertEquals("Expected MESSAGE_UPDATE action in history", MessageAction.MESSAGE_UPDATE, retrieved.action); - assertEquals("Expected MESSAGE_APPEND action through realtime", MessageAction.MESSAGE_APPEND, appendWaiter.result.action); - assertEquals("Expected delta through realtime", "Append data", appendWaiter.result.data); + assertEquals("Expected MESSAGE_UPDATE only for the first time from realtime", MessageAction.MESSAGE_UPDATE, appendWaiter.result.action); + assertEquals("Expected full message data through realtime", "Initial dataAppend data", appendWaiter.result.data); + appendWaiter.reset(); + + channel.appendMessage(messageAppend); + + appendWaiter.waitFor(); + + assertEquals("Expected MESSAGE_APPEND action through realtime", MessageAction.MESSAGE_APPEND, appendWaiter.result.action); + assertEquals("Expected only delta through realtime", "Append data", appendWaiter.result.data); } private PaginatedResult waitForMessageAppearInVersionHistory(Channel channel, String serial, Param[] params, Predicate predicate) throws Exception {