@@ -118,6 +118,72 @@ await Assert.ThrowsAsync<FirebaseException>(
118118 async ( ) => await userManager . GetUserById ( "user1" ) ) ;
119119 }
120120
121+ [ Fact ]
122+ public async Task ListUsers ( )
123+ {
124+ var nextPageToken = Guid . NewGuid ( ) . ToString ( ) ;
125+ var handler = new MockMessageHandler ( )
126+ {
127+ Response = new DownloadAccountResponse ( )
128+ {
129+ NextPageToken = nextPageToken ,
130+ Users = new List < GetAccountInfoResponse . User > ( )
131+ {
132+ new GetAccountInfoResponse . User ( ) { UserId = "user1" } ,
133+ new GetAccountInfoResponse . User ( ) { UserId = "user2" } ,
134+ new GetAccountInfoResponse . User ( ) { UserId = "user3" } ,
135+ } ,
136+ } ,
137+ } ;
138+
139+ var factory = new MockHttpClientFactory ( handler ) ;
140+ var userManager = new FirebaseUserManager (
141+ new FirebaseUserManagerArgs
142+ {
143+ Credential = MockCredential ,
144+ ProjectId = MockProjectId ,
145+ ClientFactory = factory ,
146+ } ) ;
147+ var listUsersRequest = userManager . CreateListUserRequest ( new ListUsersOptions ( ) ) ;
148+ var userRecords = await listUsersRequest . ExecuteAsync ( ) ;
149+ Assert . Equal ( nextPageToken , userRecords . NextPageToken ) ;
150+ Assert . Equal ( 3 , userRecords . Users . Count ) ;
151+ Assert . Equal ( "user1" , userRecords . Users [ 0 ] . Uid ) ;
152+ Assert . Equal ( "user2" , userRecords . Users [ 1 ] . Uid ) ;
153+ Assert . Equal ( "user3" , userRecords . Users [ 2 ] . Uid ) ;
154+ }
155+
156+ [ Fact ]
157+ public void ListUsersRequestOptionsAreSet ( )
158+ {
159+ var handler = new MockMessageHandler ( )
160+ {
161+ } ;
162+
163+ var factory = new MockHttpClientFactory ( handler ) ;
164+ var userManager = new FirebaseUserManager (
165+ new FirebaseUserManagerArgs
166+ {
167+ Credential = MockCredential ,
168+ ProjectId = MockProjectId ,
169+ ClientFactory = factory ,
170+ } ) ;
171+
172+ var listUsersRequest = userManager . CreateListUserRequest ( new ListUsersOptions ( ) ) ;
173+
174+ // by default they are set
175+ Assert . True ( listUsersRequest . RequestParameters . ContainsKey ( "maxResults" ) ) ;
176+ Assert . True ( listUsersRequest . RequestParameters . ContainsKey ( "nextPageToken" ) ) ;
177+ Assert . Equal ( FirebaseUserManager . MaxListUsersResults , int . Parse ( listUsersRequest . RequestParameters [ "maxResults" ] . DefaultValue ) ) ;
178+ Assert . Null ( listUsersRequest . RequestParameters [ "nextPageToken" ] . DefaultValue ) ;
179+
180+ // change the values and check again
181+ listUsersRequest . SetPageSize ( 10 ) ;
182+ listUsersRequest . SetPageToken ( "theNewNextPageToken" ) ;
183+ Assert . Equal ( 10 , int . Parse ( listUsersRequest . RequestParameters [ "maxResults" ] . DefaultValue ) ) ;
184+ Assert . Equal ( "theNewNextPageToken" , listUsersRequest . RequestParameters [ "nextPageToken" ] . DefaultValue ) ;
185+ }
186+
121187 [ Fact ]
122188 public async Task UpdateUser ( )
123189 {
0 commit comments