3
3
using System . Linq ;
4
4
using System . Threading . Tasks ;
5
5
using FluentAssertions ;
6
- using Newtonsoft . Json ;
7
6
using NUnit . Framework ;
8
7
using StreamChat . Models ;
9
8
@@ -21,6 +20,7 @@ public class ChannelClientTests : TestBase
21
20
private UserRequest _user2 ;
22
21
private UserRequest _user3 ;
23
22
private ChannelWithConfig _channel ;
23
+ private ChannelWithConfig _channel2 ;
24
24
25
25
[ OneTimeSetUp ]
26
26
public async Task SetupAsync ( )
@@ -29,7 +29,13 @@ public async Task SetupAsync()
29
29
await UpsertNewUserAsync ( ) ) ;
30
30
_channel = await CreateChannelAsync ( createdByUserId : _user1 . Id ,
31
31
members : new [ ] { _user1 . Id , _user2 . Id , _user3 . Id } ) ;
32
- await _messageClient . SendMessageAsync ( _channel . Type , _channel . Id , _user1 . Id , "text" ) ;
32
+ _channel2 = await CreateChannelAsync ( createdByUserId : _user1 . Id ,
33
+ members : new [ ] { _user1 . Id , _user2 . Id , _user3 . Id } ) ;
34
+ await _messageClient . SendMessageAsync ( _channel2 . Type , _channel2 . Id , _user1 . Id , "text" ) ;
35
+ await _messageClient . SendMessageAsync ( _channel2 . Type , _channel2 . Id , _user1 . Id , "text 2" ) ;
36
+ await _messageClient . SendMessageAsync ( _channel2 . Type , _channel2 . Id , _user1 . Id , "text 3" ) ;
37
+ await _messageClient . SendMessageAsync ( _channel2 . Type , _channel2 . Id , _user1 . Id , "text 4" ) ;
38
+ await _messageClient . SendMessageAsync ( _channel2 . Type , _channel2 . Id , _user1 . Id , "text 5" ) ;
33
39
}
34
40
35
41
[ OneTimeTearDown ]
@@ -812,5 +818,67 @@ public async Task TestUnarchiveChannelForMemberAsync()
812
818
813
819
archivedChannels . Channels . Should ( ) . NotContain ( c => c . Channel . Cid == channel . Cid ) ;
814
820
}
821
+
822
+ [ Test ]
823
+ public async Task TestQueryChannelsWithoutMembersLimitAsync ( )
824
+ {
825
+ var queryChannelResponse = await _channelClient . QueryChannelsAsync ( new QueryChannelsOptions
826
+ {
827
+ Filter = new Dictionary < string , object > ( )
828
+ {
829
+ { "cid" , _channel2 . Cid } ,
830
+ } ,
831
+ UserId = _user1 . Id ,
832
+ } ) ;
833
+ queryChannelResponse . Channels . Should ( ) . HaveCount ( 1 ) ;
834
+ queryChannelResponse . Channels . First ( ) . Members . Should ( ) . HaveCount ( 3 ) ;
835
+ }
836
+
837
+ [ Test ]
838
+ public async Task TestQueryChannelsWithMembersLimitAsync ( )
839
+ {
840
+ var queryChannelResponse = await _channelClient . QueryChannelsAsync ( new QueryChannelsOptions
841
+ {
842
+ Filter = new Dictionary < string , object > ( )
843
+ {
844
+ { "cid" , _channel2 . Cid } ,
845
+ } ,
846
+ MemberLimit = 1 ,
847
+ UserId = _user1 . Id ,
848
+ } ) ;
849
+ queryChannelResponse . Channels . Should ( ) . HaveCount ( 1 ) ;
850
+ queryChannelResponse . Channels . First ( ) . Members . Should ( ) . HaveCount ( 1 ) ;
851
+ }
852
+
853
+ [ Test ]
854
+ public async Task TestQueryChannelsWithoutMessageLimitAsync ( )
855
+ {
856
+ var queryChannelResponse = await _channelClient . QueryChannelsAsync ( new QueryChannelsOptions
857
+ {
858
+ Filter = new Dictionary < string , object > ( )
859
+ {
860
+ { "cid" , _channel2 . Cid } ,
861
+ } ,
862
+ UserId = _user1 . Id ,
863
+ } ) ;
864
+ queryChannelResponse . Channels . Should ( ) . HaveCount ( 1 ) ;
865
+ queryChannelResponse . Channels . First ( ) . Messages . Should ( ) . HaveCount ( 5 ) ;
866
+ }
867
+
868
+ [ Test ]
869
+ public async Task TestQueryChannelsWithMessageLimitAsync ( )
870
+ {
871
+ var queryChannelResponse = await _channelClient . QueryChannelsAsync ( new QueryChannelsOptions
872
+ {
873
+ Filter = new Dictionary < string , object > ( )
874
+ {
875
+ { "cid" , _channel2 . Cid } ,
876
+ } ,
877
+ MessageLimit = 2 ,
878
+ UserId = _user1 . Id ,
879
+ } ) ;
880
+ queryChannelResponse . Channels . Should ( ) . HaveCount ( 1 ) ;
881
+ queryChannelResponse . Channels . First ( ) . Messages . Should ( ) . HaveCount ( 2 ) ;
882
+ }
815
883
}
816
884
}
0 commit comments