@@ -21,17 +21,17 @@ import uniffi.xmtpv3.GroupPermissions
21
21
22
22
@RunWith(AndroidJUnit4 ::class )
23
23
class GroupTest {
24
- lateinit var fakeApiClient: FakeApiClient
25
- lateinit var alixWallet: PrivateKeyBuilder
26
- lateinit var boWallet: PrivateKeyBuilder
27
- lateinit var alix: PrivateKey
28
- lateinit var alixClient: Client
29
- lateinit var bo: PrivateKey
30
- lateinit var boClient: Client
31
- lateinit var caroWallet: PrivateKeyBuilder
32
- lateinit var caro: PrivateKey
33
- lateinit var caroClient: Client
34
- lateinit var fixtures: Fixtures
24
+ private lateinit var fakeApiClient: FakeApiClient
25
+ private lateinit var alixWallet: PrivateKeyBuilder
26
+ private lateinit var boWallet: PrivateKeyBuilder
27
+ private lateinit var alix: PrivateKey
28
+ private lateinit var alixClient: Client
29
+ private lateinit var bo: PrivateKey
30
+ private lateinit var boClient: Client
31
+ private lateinit var caroWallet: PrivateKeyBuilder
32
+ private lateinit var caro: PrivateKey
33
+ private lateinit var caroClient: Client
34
+ private lateinit var fixtures: Fixtures
35
35
36
36
@Before
37
37
fun setUp () {
@@ -99,6 +99,9 @@ class GroupTest {
99
99
assert (boGroup.id.isNotEmpty())
100
100
assert (alixGroup.id.isNotEmpty())
101
101
102
+ assertEquals(boClient.contacts.consentList.groupState(boGroup.id), ConsentState .ALLOWED )
103
+ assertEquals(alixClient.contacts.consentList.groupState(alixGroup.id), ConsentState .UNKNOWN )
104
+
102
105
boGroup.addMembers(listOf (caro.walletAddress))
103
106
runBlocking { alixGroup.sync() }
104
107
assertEquals(alixGroup.memberAddresses().size, 3 )
@@ -239,7 +242,7 @@ class GroupTest {
239
242
240
243
@Test
241
244
fun testCannotSendMessageToGroupMemberNotOnV3 () {
242
- var fakeApiClient = FakeApiClient ()
245
+ val fakeApiClient = FakeApiClient ()
243
246
val chuxAccount = PrivateKeyBuilder ()
244
247
val chux: PrivateKey = chuxAccount.getPrivateKey()
245
248
val chuxClient: Client = Client ().create(account = chuxAccount, apiClient = fakeApiClient)
@@ -263,6 +266,16 @@ class GroupTest {
263
266
}
264
267
}
265
268
269
+ @Test
270
+ fun testGroupStartsWithAllowedState () {
271
+ val group = boClient.conversations.newGroup(listOf (alix.walletAddress))
272
+ group.send(" howdy" )
273
+ group.send(" gm" )
274
+ runBlocking { group.sync() }
275
+ assert (boClient.contacts.isGroupAllowed(group.id))
276
+ assertEquals(boClient.contacts.consentList.groupState(group.id), ConsentState .ALLOWED )
277
+ }
278
+
266
279
@Test
267
280
fun testCanSendMessageToGroup () {
268
281
val group = boClient.conversations.newGroup(listOf (alix.walletAddress))
@@ -406,4 +419,41 @@ class GroupTest {
406
419
assertEquals(conversation.topic, awaitItem().topic)
407
420
}
408
421
}
422
+
423
+ @Test
424
+ fun testCanAllowGroup () {
425
+ val group = boClient.conversations.newGroup(
426
+ listOf (
427
+ alix.walletAddress,
428
+ caro.walletAddress
429
+ )
430
+ )
431
+
432
+ var result = boClient.contacts.isGroupAllowed(group.id)
433
+
434
+ assert (! result)
435
+
436
+ boClient.contacts.allowGroup(listOf (group.id))
437
+
438
+ result = boClient.contacts.isGroupAllowed(group.id)
439
+ assert (result)
440
+ }
441
+
442
+ @Test
443
+ fun testCanDenyGroup () {
444
+ val group = boClient.conversations.newGroup(
445
+ listOf (
446
+ alix.walletAddress,
447
+ caro.walletAddress
448
+ )
449
+ )
450
+ var result = boClient.contacts.isGroupAllowed(group.id)
451
+
452
+ assert (! result)
453
+
454
+ boClient.contacts.denyGroup(listOf (group.id))
455
+
456
+ result = boClient.contacts.isGroupDenied(group.id)
457
+ assert (result)
458
+ }
409
459
}
0 commit comments