Skip to content

Commit 3a40135

Browse files
committed
Add better comments and tests
1 parent bbb8d2b commit 3a40135

File tree

2 files changed

+37
-7
lines changed

2 files changed

+37
-7
lines changed

FirebaseAdmin/FirebaseAdmin.Tests/Auth/FirebaseUserManagerTest.cs

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,15 +86,16 @@ public async Task GetUserById()
8686
ProjectId = MockProjectId,
8787
ClientFactory = factory,
8888
});
89-
await userManager.GetUserById("user1");
89+
UserRecord userRecord = await userManager.GetUserById("user1");
90+
Assert.Equal("user1", userRecord.Uid);
9091
}
9192

9293
[Fact]
93-
public async Task GetUserByIdIncorrectUid()
94+
public async Task GetUserByIdUserNotFound()
9495
{
9596
var handler = new MockMessageHandler()
9697
{
97-
Response = new UserRecord("testuser"),
98+
StatusCode = HttpStatusCode.NotFound,
9899
};
99100
var factory = new MockHttpClientFactory(handler);
100101
var userManager = new FirebaseUserManager(
@@ -109,7 +110,7 @@ await Assert.ThrowsAsync<FirebaseException>(
109110
}
110111

111112
[Fact]
112-
public async Task GetUserByIdHttpError()
113+
public async Task GetUserByIdInvalidToken()
113114
{
114115
var handler = new MockMessageHandler()
115116
{
@@ -244,7 +245,26 @@ public async Task DeleteUser()
244245
}
245246

246247
[Fact]
247-
public async Task DeleteUserHttpError()
248+
public async Task DeleteUserNotFound()
249+
{
250+
var handler = new MockMessageHandler()
251+
{
252+
StatusCode = HttpStatusCode.NotFound,
253+
};
254+
var factory = new MockHttpClientFactory(handler);
255+
var userManager = new FirebaseUserManager(
256+
new FirebaseUserManagerArgs
257+
{
258+
Credential = MockCredential,
259+
ProjectId = MockProjectId,
260+
ClientFactory = factory,
261+
});
262+
await Assert.ThrowsAsync<FirebaseException>(
263+
async () => await userManager.DeleteUser("user1"));
264+
}
265+
266+
[Fact]
267+
public async Task DeleteUserInvalidToken()
248268
{
249269
var handler = new MockMessageHandler()
250270
{

FirebaseAdmin/FirebaseAdmin/Auth/FirebaseUserManager.cs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,14 +62,19 @@ public static FirebaseUserManager Create(FirebaseApp app)
6262
}
6363

6464
/// <summary>
65-
/// Get a user by id.
65+
/// Gets the user data corresponding to the given user ID.
6666
/// </summary>
67-
/// <param name="uid">The query user id.</param>
67+
/// <param name="uid">A user ID string.</param>
6868
/// <param name="cancellationToken">For asynchronous operation.</param>
6969
/// <returns>A record of user with the queried id if one exists.</returns>
7070
public async Task<UserRecord> GetUserById(
7171
string uid, CancellationToken cancellationToken = default(CancellationToken))
7272
{
73+
if (string.IsNullOrEmpty(uid))
74+
{
75+
throw new ArgumentException("Failed to get user. User id cannot be null or empty");
76+
}
77+
7378
const string getUserPath = "accounts:lookup";
7479
var payload = new Dictionary<string, object>()
7580
{
@@ -112,6 +117,11 @@ public async Task UpdateUserAsync(
112117
public async Task DeleteUser(
113118
string uid, CancellationToken cancellationToken = default(CancellationToken))
114119
{
120+
if (string.IsNullOrEmpty(uid))
121+
{
122+
throw new ArgumentException("Failed to delete user. User id cannot be null or empty");
123+
}
124+
115125
const string getUserPath = "accounts:delete";
116126
var payload = new Dictionary<string, object>()
117127
{

0 commit comments

Comments
 (0)