Skip to content

Commit 7be1daf

Browse files
author
Dominik Földi
committed
Remove SetCustomUserClaimsInvalidCredential from FirebaseAuthTest, removed unused parts of the tests, simplify claims initialization for TooLargeClaimsPayload test and introduced unit tests for UpdateUserAsync by mocking the httpclient
1 parent dc3ffe3 commit 7be1daf

File tree

2 files changed

+98
-25
lines changed

2 files changed

+98
-25
lines changed

FirebaseAdmin/FirebaseAdmin.Tests/Auth/FirebaseAuthTest.cs

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -171,18 +171,6 @@ private static void VerifyCustomToken(string token, string uid, Dictionary<strin
171171
Assert.True(verified);
172172
}
173173

174-
[Fact]
175-
public async Task SetCustomUserClaimsInvalidCredential()
176-
{
177-
FirebaseApp.Create(new AppOptions() { Credential = mockCredential, ProjectId = "project1" });
178-
var customClaims = new Dictionary<string, object>()
179-
{
180-
{"admin", true}
181-
};
182-
await Assert.ThrowsAsync<FirebaseException>(
183-
async () => await FirebaseAuth.DefaultInstance.SetCustomUserClaimsAsync("user1", customClaims));
184-
}
185-
186174
[Fact]
187175
public async Task SetCustomUserClaimsNoProjectId()
188176
{

FirebaseAdmin/FirebaseAdmin.Tests/Auth/FirebaseUserManagerTest.cs

Lines changed: 98 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616
using System.Collections.Generic;
1717
using Xunit;
1818
using Google.Apis.Auth.OAuth2;
19+
using FirebaseAdmin.Tests;
20+
using System.Threading.Tasks;
21+
using System.Net;
1922

2023
namespace FirebaseAdmin.Auth.Tests
2124
{
@@ -26,15 +29,8 @@ public class FirebaseUserManagerTest
2629
private const string mockProjectId = "project1";
2730

2831
[Fact]
29-
public void InvalidUid()
32+
public void InvalidUidForUserRecord()
3033
{
31-
var app = FirebaseApp.Create(new AppOptions() { Credential = mockCredential, ProjectId = mockProjectId });
32-
var userManager = FirebaseUserManager.Create(app);
33-
var customClaims = new Dictionary<string, object>()
34-
{
35-
{"admin", true}
36-
};
37-
3834
Assert.Throws<ArgumentException>(() => new UserRecord(null));
3935
Assert.Throws<ArgumentException>(() => new UserRecord(""));
4036
Assert.Throws<ArgumentException>(() => new UserRecord(new string('a', 129)));
@@ -64,14 +60,103 @@ public void EmptyClaims()
6460
[Fact]
6561
public void TooLargeClaimsPayload()
6662
{
67-
var customClaims = new Dictionary<string, object>();
68-
69-
for(var i = 0; i < 100; ++i)
63+
var customClaims = new Dictionary<string, object>()
7064
{
71-
customClaims.Add($"claim{i}", $"value{i}");
72-
}
65+
{ "testClaim", new string('a', 1001) },
66+
};
7367

7468
Assert.Throws<ArgumentException>(() => new UserRecord("user1") { CustomClaims = customClaims });
7569
}
70+
71+
[Fact]
72+
public async Task UpdateUser()
73+
{
74+
var handler = new MockMessageHandler()
75+
{
76+
Response = new UserRecord("user1")
77+
};
78+
var factory = new MockHttpClientFactory(handler);
79+
var userManager = new FirebaseUserManager(
80+
new FirebaseUserManagerArgs
81+
{
82+
Credential = mockCredential,
83+
ProjectId = mockProjectId,
84+
ClientFactory = factory
85+
});
86+
var customClaims = new Dictionary<string, object>(){
87+
{"admin", true},
88+
};
89+
90+
await userManager.UpdateUserAsync(new UserRecord("user1") { CustomClaims = customClaims });
91+
}
92+
93+
[Fact]
94+
public async Task UpdateUserIncorrectResponseObject()
95+
{
96+
var handler = new MockMessageHandler()
97+
{
98+
Response = new object()
99+
};
100+
var factory = new MockHttpClientFactory(handler);
101+
var userManager = new FirebaseUserManager(
102+
new FirebaseUserManagerArgs
103+
{
104+
Credential = mockCredential,
105+
ProjectId = mockProjectId,
106+
ClientFactory = factory
107+
});
108+
var customClaims = new Dictionary<string, object>(){
109+
{"admin", true},
110+
};
111+
112+
await Assert.ThrowsAsync<FirebaseException>(
113+
async () => await userManager.UpdateUserAsync(new UserRecord("user1") { CustomClaims = customClaims }));
114+
}
115+
116+
[Fact]
117+
public async Task UpdateUserIncorrectResponseUid()
118+
{
119+
var handler = new MockMessageHandler()
120+
{
121+
Response = new UserRecord("testuser")
122+
};
123+
var factory = new MockHttpClientFactory(handler);
124+
var userManager = new FirebaseUserManager(
125+
new FirebaseUserManagerArgs
126+
{
127+
Credential = mockCredential,
128+
ProjectId = mockProjectId,
129+
ClientFactory = factory
130+
});
131+
var customClaims = new Dictionary<string, object>(){
132+
{"admin", true},
133+
};
134+
135+
await Assert.ThrowsAsync<FirebaseException>(
136+
async () => await userManager.UpdateUserAsync(new UserRecord("user1") { CustomClaims = customClaims }));
137+
}
138+
139+
[Fact]
140+
public async Task UpdateUserHttpError()
141+
{
142+
var handler = new MockMessageHandler()
143+
{
144+
StatusCode = HttpStatusCode.InternalServerError
145+
};
146+
var factory = new MockHttpClientFactory(handler);
147+
var userManager = new FirebaseUserManager(
148+
new FirebaseUserManagerArgs
149+
{
150+
Credential = mockCredential,
151+
ProjectId = mockProjectId,
152+
ClientFactory = factory
153+
});
154+
var customClaims = new Dictionary<string, object>(){
155+
{"admin", true},
156+
};
157+
158+
await Assert.ThrowsAsync<FirebaseException>(
159+
async () => await userManager.UpdateUserAsync(new UserRecord("user1") { CustomClaims = customClaims }));
160+
}
76161
}
77162
}

0 commit comments

Comments
 (0)