1
+ using NUnit . Framework ;
2
+ using Stream ;
3
+ using System ;
4
+ using System . Collections . Generic ;
5
+ using System . Linq ;
6
+ using System . Threading . Tasks ;
7
+
8
+ namespace StreamNetTests
9
+ {
10
+ [ TestFixture ]
11
+ public class UsersBatchTests : TestBase
12
+ {
13
+ [ Test ]
14
+ public async Task TestAddGetUsersAsync ( )
15
+ {
16
+ var userIds = new List < string > { Guid . NewGuid ( ) . ToString ( ) , Guid . NewGuid ( ) . ToString ( ) } ;
17
+
18
+ var users = new List < User >
19
+ {
20
+ new User { Id = userIds [ 0 ] , Data = new Dictionary < string , object > { { "field" , "value1" } } } ,
21
+ new User { Id = userIds [ 1 ] , Data = new Dictionary < string , object > { { "field" , "value2" } } } ,
22
+ } ;
23
+
24
+ var response = await Client . UsersBatch . UpsertUsersAsync ( users ) ;
25
+
26
+ Assert . NotNull ( response ) ;
27
+ Assert . AreEqual ( users . Count , response . Count ( ) ) ;
28
+
29
+ var usersReturned = await Client . UsersBatch . GetUsersAsync ( userIds ) ;
30
+
31
+ Assert . NotNull ( usersReturned ) ;
32
+ Assert . AreEqual ( userIds . Count , usersReturned . Count ( ) ) ;
33
+ }
34
+
35
+ [ Test ]
36
+ public async Task TestDeleteUsersAsync ( )
37
+ {
38
+ var userIds = new List < string > { Guid . NewGuid ( ) . ToString ( ) , Guid . NewGuid ( ) . ToString ( ) } ;
39
+
40
+ var deletedUserIds = await Client . UsersBatch . DeleteUsersAsync ( userIds ) ;
41
+
42
+ Assert . NotNull ( deletedUserIds ) ;
43
+ Assert . AreEqual ( userIds . Count , deletedUserIds . Count ( ) ) ;
44
+ Assert . IsTrue ( userIds . All ( id => deletedUserIds . Contains ( id ) ) ) ;
45
+ }
46
+
47
+ [ Test ]
48
+ public async Task AddGetDeleteGetUsersAsync ( )
49
+ {
50
+ var userIds = new List < string > { Guid . NewGuid ( ) . ToString ( ) , Guid . NewGuid ( ) . ToString ( ) } ;
51
+
52
+ // Add users
53
+ var users = new List < User >
54
+ {
55
+ new User { Id = userIds [ 0 ] , Data = new Dictionary < string , object > { { "field" , "value1" } } } ,
56
+ new User { Id = userIds [ 1 ] , Data = new Dictionary < string , object > { { "field" , "value2" } } } ,
57
+ } ;
58
+
59
+ var addResponse = await Client . UsersBatch . UpsertUsersAsync ( users ) ;
60
+ Assert . NotNull ( addResponse ) ;
61
+ Assert . AreEqual ( users . Count , addResponse . Count ( ) ) ;
62
+
63
+ // Get users to confirm they were added
64
+ var getUsersResponse = await Client . UsersBatch . GetUsersAsync ( userIds ) ;
65
+ Assert . NotNull ( getUsersResponse ) ;
66
+ Assert . AreEqual ( users . Count , getUsersResponse . Count ( ) ) ;
67
+
68
+ // Delete users
69
+ var deleteResponse = await Client . UsersBatch . DeleteUsersAsync ( userIds ) ;
70
+ Assert . NotNull ( deleteResponse ) ;
71
+ Assert . AreEqual ( userIds . Count ( ) , deleteResponse . Count ( ) ) ;
72
+ Assert . IsTrue ( userIds . All ( id => deleteResponse . Contains ( id ) ) ) ;
73
+
74
+ // Attempt to get deleted users to confirm they were deleted
75
+ var getDeletedUsersResponse = await Client . UsersBatch . GetUsersAsync ( userIds ) ;
76
+ Assert . IsEmpty ( getDeletedUsersResponse ) ;
77
+ }
78
+ }
79
+ }
0 commit comments