public async Task CreateCustomToken() { var clock = new MockClock(); var factory = new FirebaseTokenFactory(new MockSigner(), clock); var token = await factory.CreateCustomTokenAsync("user1"); VerifyCustomToken(token, "user1", null); }
public async Task CreateCustomToken(string tenantId) { var factory = new FirebaseTokenFactory(Signer, Clock, tenantId); var token = await factory.CreateCustomTokenAsync("user1"); MockCustomTokenVerifier.WithTenant(tenantId).Verify(token, "user1"); }
public async Task CreateCustomTokenWithEmptyClaims() { var clock = new MockClock(); var factory = new FirebaseTokenFactory(new MockSigner(), clock); var token = await factory.CreateCustomTokenAsync( "user1", new Dictionary <string, object>()); VerifyCustomToken(token, "user1", null); }
public async Task CreateCustomTokenWithEmptyClaims(string tenantId) { var factory = new FirebaseTokenFactory(Signer, Clock, tenantId); var token = await factory.CreateCustomTokenAsync( "user1", new Dictionary <string, object>()); MockCustomTokenVerifier.WithTenant(tenantId).Verify(token, "user1"); }
private static void AssertTenantId(string expectedTenantId, FirebaseTokenFactory factory) { if (expectedTenantId == null) { Assert.Null(factory.TenantId); } else { Assert.Equal(expectedTenantId, factory.TenantId); } }
public async Task InvalidUid() { var factory = new FirebaseTokenFactory(new MockSigner(), new MockClock()); await Assert.ThrowsAsync <ArgumentException>( async() => await factory.CreateCustomTokenAsync(null)); await Assert.ThrowsAsync <ArgumentException>( async() => await factory.CreateCustomTokenAsync(string.Empty)); await Assert.ThrowsAsync <ArgumentException>( async() => await factory.CreateCustomTokenAsync(new string('a', 129))); }
public void SignerOnly() { var args = new FirebaseTokenFactory.Args { Signer = Signer, }; var factory = new FirebaseTokenFactory(args); Assert.Same(SystemClock.Default, factory.Clock); Assert.Null(factory.TenantId); Assert.False(factory.IsEmulatorMode); }
public void TenantId(string tenantId) { var factory = new FirebaseTokenFactory(Signer, Clock, tenantId); if (tenantId == null) { Assert.Null(factory.TenantId); } else { Assert.Equal(tenantId, factory.TenantId); } }
public void EmulatorMode(string tenantId) { var args = new FirebaseTokenFactory.Args { IsEmulatorMode = true, TenantId = tenantId, }; var factory = new FirebaseTokenFactory(args); Assert.True(factory.IsEmulatorMode); Assert.Same(EmulatorSigner.Instance, factory.Signer); Assert.Same(SystemClock.Default, factory.Clock); AssertTenantId(tenantId, factory); }
public async Task ReservedClaims() { var factory = new FirebaseTokenFactory(new MockSigner(), new MockClock()); foreach (var key in FirebaseTokenFactory.ReservedClaims) { var developerClaims = new Dictionary <string, object>() { { key, "value" }, }; await Assert.ThrowsAsync <ArgumentException>( async() => await factory.CreateCustomTokenAsync("user", developerClaims)); } }
public async Task CreateCustomTokenWithClaims() { var clock = new MockClock(); var factory = new FirebaseTokenFactory(new MockSigner(), clock); var developerClaims = new Dictionary <string, object>() { { "admin", true }, { "package", "gold" }, { "magicNumber", 42L }, }; var token = await factory.CreateCustomTokenAsync("user2", developerClaims); VerifyCustomToken(token, "user2", developerClaims); }
public async Task CreateCustomTokenWithClaims(string tenantId) { var factory = new FirebaseTokenFactory(Signer, Clock, tenantId); var developerClaims = new Dictionary <string, object>() { { "admin", true }, { "package", "gold" }, { "magicNumber", 42L }, }; var token = await factory.CreateCustomTokenAsync("user2", developerClaims); MockCustomTokenVerifier.WithTenant(tenantId).Verify(token, "user2", developerClaims); }
internal static TenantAwareFirebaseAuth Create(FirebaseApp app, string tenantId) { var args = new Args { TenantId = tenantId, TokenFactory = new Lazy <FirebaseTokenFactory>( () => FirebaseTokenFactory.Create(app, tenantId), true), IdTokenVerifier = new Lazy <FirebaseTokenVerifier>( () => FirebaseTokenVerifier.CreateIdTokenVerifier(app, tenantId), true), UserManager = new Lazy <FirebaseUserManager>( () => FirebaseUserManager.Create(app, tenantId), true), ProviderConfigManager = new Lazy <ProviderConfigManager>( () => Providers.ProviderConfigManager.Create(app, tenantId), true), }; return(new TenantAwareFirebaseAuth(args)); }