@@ -880,4 +880,96 @@ void whenUnblockingAMessage_thenIsUnblocked() {
880
880
881
881
Assertions .assertDoesNotThrow (() -> Blocklist .delete (blocklistName ).request ());
882
882
}
883
+
884
+ @ DisplayName ("Can delete message for me only" )
885
+ @ Test
886
+ void whenDeletingMessageForMe_thenIsDeletedForMe () {
887
+ String text = "This is a message to delete for me only" ;
888
+ MessageRequestObject messageRequest =
889
+ MessageRequestObject .builder ().text (text ).userId (testUserRequestObject .getId ()).build ();
890
+ Message message =
891
+ Assertions .assertDoesNotThrow (
892
+ () ->
893
+ Message .send (testChannel .getType (), testChannel .getId ())
894
+ .message (messageRequest )
895
+ .request ())
896
+ .getMessage ();
897
+ Assertions .assertNull (message .getDeletedAt ());
898
+
899
+ // Test delete for me only
900
+ Message deletedMessage =
901
+ Assertions .assertDoesNotThrow (
902
+ () ->
903
+ Message .delete (message .getId ())
904
+ .deleteForMe (testUserRequestObject .getId ())
905
+ .request ())
906
+ .getMessage ();
907
+
908
+ // Verify the delete request was successful
909
+ Assertions .assertNotNull (deletedMessage );
910
+
911
+ // For delete for me, the message should still exist but be marked as deleted for the specific
912
+ // user
913
+ // The deletedAt might be null as this is a "soft delete for me" operation
914
+ System .out .println ("Delete for me response - deletedAt: " + deletedMessage .getDeletedAt ());
915
+
916
+ // Verify the message still exists (delete for me doesn't permanently delete)
917
+ Message retrievedMessage =
918
+ Assertions .assertDoesNotThrow (() -> Message .get (message .getId ()).request ()).getMessage ();
919
+ Assertions .assertNotNull (retrievedMessage );
920
+ Assertions .assertEquals (message .getId (), retrievedMessage .getId ());
921
+ }
922
+
923
+ @ DisplayName ("Can use convenience method for delete for me" )
924
+ @ Test
925
+ void whenUsingDeleteForMeConvenienceMethod_thenIsDeletedForMe () {
926
+ String text = "This is a message to delete for me using convenience method" ;
927
+ MessageRequestObject messageRequest =
928
+ MessageRequestObject .builder ().text (text ).userId (testUserRequestObject .getId ()).build ();
929
+ Message message =
930
+ Assertions .assertDoesNotThrow (
931
+ () ->
932
+ Message .send (testChannel .getType (), testChannel .getId ())
933
+ .message (messageRequest )
934
+ .request ())
935
+ .getMessage ();
936
+ Assertions .assertNull (message .getDeletedAt ());
937
+
938
+ // Test convenience method for delete for me
939
+ Message deletedMessage =
940
+ Assertions .assertDoesNotThrow (
941
+ () -> Message .deleteForMe (message .getId (), testUserRequestObject .getId ()).request ())
942
+ .getMessage ();
943
+
944
+ // Verify the delete request was successful
945
+ Assertions .assertNotNull (deletedMessage );
946
+
947
+ // Verify the message still exists (delete for me doesn't permanently delete)
948
+ Message retrievedMessage =
949
+ Assertions .assertDoesNotThrow (() -> Message .get (message .getId ()).request ()).getMessage ();
950
+ Assertions .assertNotNull (retrievedMessage );
951
+ Assertions .assertEquals (message .getId (), retrievedMessage .getId ());
952
+ }
953
+
954
+ @ DisplayName ("Can use convenience method for hard delete" )
955
+ @ Test
956
+ void whenUsingHardDeleteConvenienceMethod_thenIsHardDeleted () {
957
+ String text = "This is a message to hard delete using convenience method" ;
958
+ MessageRequestObject messageRequest =
959
+ MessageRequestObject .builder ().text (text ).userId (testUserRequestObject .getId ()).build ();
960
+ Message message =
961
+ Assertions .assertDoesNotThrow (
962
+ () ->
963
+ Message .send (testChannel .getType (), testChannel .getId ())
964
+ .message (messageRequest )
965
+ .request ())
966
+ .getMessage ();
967
+ Assertions .assertNull (message .getDeletedAt ());
968
+
969
+ // Test convenience method for hard delete
970
+ Message deletedMessage =
971
+ Assertions .assertDoesNotThrow (() -> Message .hardDelete (message .getId ()).request ())
972
+ .getMessage ();
973
+ Assertions .assertNotNull (deletedMessage .getDeletedAt ());
974
+ }
883
975
}
0 commit comments