public void StartTenantCollection() { var id = Guid.NewGuid(); var id2 = Guid.NewGuid(); var tenant1 = new TenantDefault(id, "Tenant 1"); var tenant2 = new TenantDefault(id, "Tenant 2"); var tenant3 = new TenantDefault(id2, "Tenant 3"); var secrets2 = new Dictionary <string, string>() { { "Secret2", "Value 1" } }; var tenantSecret2 = new TenantSecret <Guid, dynamic>(id2, secrets: secrets2); var claims = new Dictionary <string, string>() { { "Claims1", "Value 1" } }; var tenantClaims = new TenantClaims <Guid, dynamic>(id, claims: claims); var collection = new TenantCollection(new[] { tenant1, tenant2, tenant3 }); Assert.AreEqual(2, collection.Count); var itens = new ITenant <Guid>[] { tenant1, tenant2, tenant3, tenantClaims, _secretFirstTenant, tenantSecret2, null }; var collection2 = new TenantCollection(); collection2.Add(itens); Assert.AreEqual(3, collection2.Count); Assert.ThrowsException <ArgumentNullException>(() => collection2.Add((IEnumerable <ITenant <Guid> >)null)); }
public void CheckIfTenantSecretWithDistinctTypeAreEquals() { var defaultId = 19; var tenantSecret2 = new TenantSecret <int, DateTime>(defaultId); var tenantSecret3 = new TenantSecret <int, int>(defaultId); Assert.IsFalse(tenantSecret2.Equals(tenantSecret3), "O secret de outro tipo não deve ser considerado iguais mesmo que tenha o mesmo id"); }
public void TenantSecretComparerWithKey() { var defaultId = 19; var tenantSecret1 = new TenantSecret <int, DateTime>(defaultId, DateTime.Today); var tenantSecret2 = new TenantSecret <int, DateTime>(defaultId); Assert.IsTrue(tenantSecret1.Equals(tenantSecret2), "The tenant secret not is equals by ID"); Assert.IsFalse(tenantSecret1.Equals("Not is valid type"), "Somente ITenantSecret e ITenant podem ser iguais"); Assert.AreEqual(defaultId.GetHashCode(), tenantSecret1.GetHashCode(), "O Tenant não está retornando o hascode do tipo do secret"); }
public void AddTenantCollectionGenericOnServiceCollectionAndAddTenantProviderAndSecret() { var tenantSecret = new TenantSecret <int, List <DateTime> >(10, new List <DateTime>() { DateTime.Now }); var tenantProvider = Substitute.For <Providers.ITenantProvider>(); var tenant1 = new Tenant <int, List <string>, List <DateTime> >(10, "Tenant 1", new List <string> { { "Claim 01" } }); var tenant2 = new Tenant <int, List <string>, List <DateTime> >(11, "Tenant 11", new List <string> { { "Claim 02" } }); var tenant3 = new Tenant <int, List <string>, List <DateTime> >(12, "Tenant 12", new List <string> { { "Claim 03" } }); tenantProvider.GetTenants <int, List <string>, List <DateTime> >() .Returns(new HashSet <ITenant <int, List <string>, List <DateTime> > > { tenant1, tenant2, tenant3 }); var tenantSecretProvider = Substitute.For <Providers.ITenantSecretProvider>(); tenantSecretProvider.GetTenantSecrets <int, List <DateTime> >() .Returns(new HashSet <ITenantSecrets <int, List <DateTime> > >() { tenantSecret }); var provider = new ServiceCollection() .AddTenantCollection <int, List <string>, List <DateTime> >() .AddTenantProvider((a) => tenantProvider) .AddTenantProvider((a) => tenantSecretProvider) // .AddSingleton<Providers.ITenantProvider>(tenantProvider) //.AddSingleton<Providers.ITenantSecretProvider>(tenantSecretProvider) .BuildServiceProvider(); var tenants = provider.GetService <ITenantCollection <int, List <string>, List <DateTime> > >(); tenants.Should() .NotBeNull("The tenant collection not working") .And.NotContainNulls() .And.Contain(tenant1) .And.HaveCount(3) ; var item = tenants.FirstOrDefault(10); item.As <ITenant <int, List <string>, List <DateTime> > >() .Secrets.Should() .NotBeNull() .And.HaveCount(1); }
public void Initialize() { _firstTenantId = Guid.NewGuid(); _secondTenantId = Guid.NewGuid(); var dicSecretFirst = new Dictionary <string, object>() { { "Secret1", "Value 1" } }; var dicSecretSecond = new Dictionary <string, object>() { { "Secret2", "Value 2" } }; var dicClaimsFirst = new Dictionary <string, object>() { { "Claims1", "Value 1" } }; _secretFirstTenant = new TenantSecret <Guid, Dictionary <string, object> >(_firstTenantId, secrets: dicSecretFirst); _claimsFirstTenant = new TenantClaims <Guid, Dictionary <string, object> >(_firstTenantId, claims: dicClaimsFirst); _secretSecondTenant = new TenantSecret <Guid, Dictionary <string, object> >(_secondTenantId, secrets: dicSecretSecond); }