@@ -4,7 +4,6 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
4
4
import app.cash.turbine.test
5
5
import com.google.protobuf.kotlin.toByteString
6
6
import com.google.protobuf.kotlin.toByteStringUtf8
7
- import kotlinx.coroutines.ExperimentalCoroutinesApi
8
7
import kotlinx.coroutines.runBlocking
9
8
import org.junit.Assert
10
9
import org.junit.Assert.assertEquals
@@ -46,7 +45,6 @@ import org.xmtp.proto.message.contents.Invitation.InvitationV1.Context
46
45
import java.nio.charset.StandardCharsets
47
46
import java.util.Date
48
47
49
- @OptIn(ExperimentalCoroutinesApi ::class )
50
48
@RunWith(AndroidJUnit4 ::class )
51
49
class ConversationTest {
52
50
lateinit var fakeApiClient: FakeApiClient
@@ -78,23 +76,6 @@ class ConversationTest {
78
76
}
79
77
}
80
78
81
- @Test
82
- fun testCanInitiateV2Conversation () {
83
- val existingConversations = aliceClient.conversations.conversationsByTopic
84
- assert (existingConversations.isEmpty())
85
- val conversation =
86
- runBlocking { bobClient.conversations.newConversation(alice.walletAddress) }
87
- val aliceInviteMessage =
88
- fakeApiClient.findPublishedEnvelope(Topic .userInvite(alice.walletAddress))
89
- val bobInviteMessage =
90
- fakeApiClient.findPublishedEnvelope(Topic .userInvite(bob.walletAddress))
91
- assert (aliceInviteMessage != null )
92
- assert (bobInviteMessage != null )
93
- assertEquals(conversation.peerAddress, alice.walletAddress)
94
- val newConversations = aliceClient.conversations.list()
95
- assertEquals(" already had conversations somehow" , 1 , newConversations.size)
96
- }
97
-
98
79
@Test
99
80
fun testCanFindExistingV1Conversation () {
100
81
val encoder = TextCodec ()
@@ -475,7 +456,7 @@ class ConversationTest {
475
456
assertEquals(" hey alice 3" , messages[0 ].body)
476
457
val messages2 = aliceConversation.messages(limit = 1 , after = date)
477
458
assertEquals(1 , messages2.size)
478
- assertEquals(" hey alice 1 " , messages2[0 ].body)
459
+ assertEquals(" hey alice 3 " , messages2[0 ].body)
479
460
val messagesAsc =
480
461
aliceConversation.messages(direction = MessageApiOuterClass .SortDirection .SORT_DIRECTION_ASCENDING )
481
462
assertEquals(" hey alice 1" , messagesAsc[0 ].body)
@@ -530,7 +511,7 @@ class ConversationTest {
530
511
),
531
512
)
532
513
val isSteveOrBobConversation = { topic: String ->
533
- (topic.equals( steveConversation.topic) || topic.equals( bobConversation.topic))
514
+ (topic.lowercase() == steveConversation.topic.lowercase( ) || topic.lowercase() == bobConversation.topic.lowercase( ))
534
515
}
535
516
assertEquals(3 , messages.size)
536
517
assertTrue(isSteveOrBobConversation(messages[0 ].topic))
@@ -606,7 +587,6 @@ class ConversationTest {
606
587
val conversation = bobClient.conversations.newConversation(alice.walletAddress)
607
588
conversation.send(content = " hi" )
608
589
assertEquals(" hi" , awaitItem().messages(limit = 1 ).first().body)
609
- awaitComplete()
610
590
}
611
591
}
612
592
@@ -617,52 +597,17 @@ class ConversationTest {
617
597
fixtures.publishLegacyContact(client = aliceClient)
618
598
val conversation = aliceClient.conversations.newConversation(bob.walletAddress)
619
599
conversation.streamMessages().test {
620
- val encoder = TextCodec ()
621
- val encodedContent = encoder.encode(content = " hi alice" )
622
- // Stream a message
623
- fakeApiClient.send(
624
- envelope = EnvelopeBuilder .buildFromString(
625
- topic = conversation.topic,
626
- timestamp = Date (),
627
- message = MessageBuilder .buildFromMessageV1(
628
- v1 = MessageV1Builder .buildEncode(
629
- sender = bobClient.privateKeyBundleV1!! ,
630
- recipient = aliceClient.privateKeyBundleV1!! .toPublicKeyBundle(),
631
- message = encodedContent.toByteArray(),
632
- timestamp = Date (),
633
- ),
634
- ).toByteArray(),
635
- ),
636
- )
600
+ conversation.send(" hi alice" )
637
601
assertEquals(" hi alice" , awaitItem().encodedContent.content.toStringUtf8())
638
- awaitComplete()
639
602
}
640
603
}
641
604
642
605
@Test
643
606
fun testStreamingMessagesFromV2Conversations () = kotlinx.coroutines.test.runTest {
644
607
val conversation = aliceClient.conversations.newConversation(bob.walletAddress)
645
608
conversation.streamMessages().test {
646
- val encoder = TextCodec ()
647
- val encodedContent = encoder.encode(content = " hi alice" )
648
- // Stream a message
649
- fakeApiClient.send(
650
- envelope = EnvelopeBuilder .buildFromString(
651
- topic = conversation.topic,
652
- timestamp = Date (),
653
- message = MessageBuilder .buildFromMessageV2(
654
- v2 = MessageV2Builder .buildEncode(
655
- client = bobClient,
656
- encodedContent,
657
- topic = conversation.topic,
658
- keyMaterial = conversation.keyMaterial!! ,
659
- codec = encoder,
660
- ).messageV2,
661
- ).toByteArray(),
662
- ),
663
- )
609
+ conversation.send(" hi alice" )
664
610
assertEquals(" hi alice" , awaitItem().encodedContent.content.toStringUtf8())
665
- awaitComplete()
666
611
}
667
612
}
668
613
@@ -859,7 +804,7 @@ class ConversationTest {
859
804
val isBobAllowed = aliceConversation.consentState() == ConsentState .ALLOWED
860
805
assertTrue(isBobAllowed)
861
806
862
- val aliceClient2 = Client ().create(aliceWallet, fakeApiClient )
807
+ val aliceClient2 = Client ().create(aliceWallet)
863
808
val aliceConversation2 = aliceClient2.conversations.list()[0 ]
864
809
865
810
aliceClient2.contacts.refreshConsentList()
0 commit comments