Skip to content

Commit c16710d

Browse files
moved ListUsers-logic to FirebaseUserManager
1 parent a55bfef commit c16710d

File tree

3 files changed

+28
-23
lines changed

3 files changed

+28
-23
lines changed

FirebaseAdmin/FirebaseAdmin.Tests/Auth/FirebaseUserManagerTest.cs

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
using System;
1616
using System.Collections.Generic;
17+
using System.Linq;
1718
using System.Net;
1819
using System.Net.Http;
1920
using System.Threading.Tasks;
@@ -125,7 +126,7 @@ await Assert.ThrowsAsync<FirebaseException>(
125126
public async Task ListUsersPaged()
126127
{
127128
var nextPageToken = Guid.NewGuid().ToString();
128-
var handlerInit = new MockMessageHandler()
129+
var firstCallHandler = new MockMessageHandler()
129130
{
130131
Response = new DownloadAccountResponse()
131132
{
@@ -139,7 +140,7 @@ public async Task ListUsersPaged()
139140
},
140141
};
141142

142-
var handlerSecondCall = new MockMessageHandler()
143+
var secondCallHandler = new MockMessageHandler()
143144
{
144145
Response = new DownloadAccountResponse()
145146
{
@@ -155,8 +156,8 @@ public async Task ListUsersPaged()
155156

156157
var factory = new MockHttpClientFactory(new MultipleMockMessageHandler(new Dictionary<Func<HttpRequestMessage, bool>, MockMessageHandler>
157158
{
158-
{ initMessage => initMessage.RequestUri.Query.Equals("?maxResults=3&nextPageToken="), handlerInit },
159-
{ initMessage => initMessage.RequestUri.Query.Equals($"?maxResults=3&nextPageToken={nextPageToken}"), handlerSecondCall },
159+
{ initMessage => initMessage.RequestUri.Query.Equals("?maxResults=3&nextPageToken="), firstCallHandler },
160+
{ initMessage => initMessage.RequestUri.Query.Equals($"?maxResults=3&nextPageToken={nextPageToken}"), secondCallHandler },
160161
}));
161162

162163
var userManager = new FirebaseUserManager(
@@ -167,11 +168,7 @@ public async Task ListUsersPaged()
167168
ClientFactory = factory,
168169
});
169170

170-
var requestOptions = new ListUsersOptions();
171-
var usersPage = new RestPagedAsyncEnumerable<ListUsersRequest, ExportedUserRecords, ExportedUserRecord>(
172-
() => userManager.CreateListUserRequest(requestOptions),
173-
new ListUsersPageManager());
174-
171+
var usersPage = userManager.ListUsers(new ListUsersOptions());
175172
var users = new List<ExportedUserRecord>();
176173
var pageCounter = 0;
177174

@@ -222,13 +219,14 @@ public async Task ListUsers()
222219
ProjectId = MockProjectId,
223220
ClientFactory = factory,
224221
});
225-
var listUsersRequest = userManager.CreateListUserRequest(new ListUsersOptions());
226-
var userRecords = await listUsersRequest.ExecuteAsync();
227-
Assert.Equal(nextPageToken, userRecords.NextPageToken);
228-
Assert.Equal(3, userRecords.Users.Count);
229-
Assert.Equal("user1", userRecords.Users[0].Uid);
230-
Assert.Equal("user2", userRecords.Users[1].Uid);
231-
Assert.Equal("user3", userRecords.Users[2].Uid);
222+
var usersPage = userManager.ListUsers(new ListUsersOptions());
223+
var listUsersRequest = await usersPage.ReadPageAsync(3);
224+
var userRecords = listUsersRequest.ToList();
225+
Assert.Equal(nextPageToken, listUsersRequest.NextPageToken);
226+
Assert.Equal(3, userRecords.Count);
227+
Assert.Equal("user1", userRecords[0].Uid);
228+
Assert.Equal("user2", userRecords[1].Uid);
229+
Assert.Equal("user3", userRecords[2].Uid);
232230
}
233231

234232
[Fact]

FirebaseAdmin/FirebaseAdmin/Auth/FirebaseAuth.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -357,11 +357,7 @@ public PagedAsyncEnumerable<ExportedUserRecords, ExportedUserRecord> ListUsersAs
357357
{
358358
var userManager = this.IfNotDeleted(() => this.userManager.Value);
359359

360-
var restPagedAsyncEnumerable = new RestPagedAsyncEnumerable<ListUsersRequest, ExportedUserRecords, ExportedUserRecord>(
361-
() => userManager.CreateListUserRequest(requestOptions),
362-
new ListUsersPageManager());
363-
364-
return restPagedAsyncEnumerable;
360+
return userManager.ListUsers(requestOptions);
365361
}
366362

367363
/// <summary>

FirebaseAdmin/FirebaseAdmin/Auth/FirebaseUserManager.cs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
using System.Net.Http;
1818
using System.Threading;
1919
using System.Threading.Tasks;
20+
using Google.Api.Gax;
21+
using Google.Api.Gax.Rest;
2022
using Google.Apis.Http;
2123
using Google.Apis.Json;
2224
using Newtonsoft.Json.Linq;
@@ -99,9 +101,13 @@ public async Task<UserRecord> GetUserById(
99101
return new UserRecord(user);
100102
}
101103

102-
public ListUsersRequest CreateListUserRequest(ListUsersOptions requestOptions)
104+
public PagedAsyncEnumerable<ExportedUserRecords, ExportedUserRecord> ListUsers(ListUsersOptions requestOptions)
103105
{
104-
return new ListUsersRequest(this.baseUrl, this.httpClient, requestOptions);
106+
var restPagedAsyncEnumerable = new RestPagedAsyncEnumerable<ListUsersRequest, ExportedUserRecords, ExportedUserRecord>(
107+
() => this.CreateListUserRequest(requestOptions),
108+
new ListUsersPageManager());
109+
110+
return restPagedAsyncEnumerable;
105111
}
106112

107113
/// <summary>
@@ -161,6 +167,11 @@ public void Dispose()
161167
this.httpClient.Dispose();
162168
}
163169

170+
internal ListUsersRequest CreateListUserRequest(ListUsersOptions requestOptions)
171+
{
172+
return new ListUsersRequest(this.baseUrl, this.httpClient, requestOptions);
173+
}
174+
164175
private async Task<TResult> PostAndDeserializeAsync<TResult>(
165176
string path, object body, CancellationToken cancellationToken)
166177
{

0 commit comments

Comments
 (0)