Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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");
        }
Ejemplo n.º 3
0
        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");
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }