Exemple #1
0
        public void MultitenantTests_Same_Root()
        {
            var container = new StashboxContainer();
            var md        = new TenantDistributor(container);

            Assert.Same(container, md.RootContainer);
        }
Exemple #2
0
        public void MultitenantTests_Get_NonExisting_Null()
        {
            var container = new StashboxContainer();
            var md        = new TenantDistributor(container);

            Assert.Null(md.GetTenant("A"));
        }
Exemple #3
0
        public void MultitenantTests_Dispose_Multiple()
        {
            var container = new StashboxContainer();

            container.Register <IA, C>();

            var md = new TenantDistributor(container);

            md.Dispose();
            md.Dispose();
        }
Exemple #4
0
        public async Task MultitenantTests_Dispose_Async_Multiple()
        {
            var container = new StashboxContainer();

            container.Register <IA, C>();

            var md = new TenantDistributor(container);

            await md.DisposeAsync();

            await md.DisposeAsync();
        }
Exemple #5
0
        public void MultitenantTests_Configure_Validate_Valid()
        {
            var container = new StashboxContainer();

            container.Register <IA, A>();

            var md = new TenantDistributor(container);

            md.ConfigureTenant("A", c => c.Register <D>());

            md.Validate();
        }
Exemple #6
0
        public void MultitenantTests_Configure_Validate_Root_And_Tenants_Throws()
        {
            var container = new StashboxContainer();

            container.Register <D>();

            var md = new TenantDistributor(container);

            md.ConfigureTenant("A", c => c.Register <D>());

            var exception = Assert.Throws <AggregateException>(() => md.Validate());

            Assert.Equal(2, exception.InnerExceptions.Count);
        }
Exemple #7
0
        public void MultitenantTests_Configure_Dep()
        {
            var container = new StashboxContainer();

            container.Register <D>();
            container.Register <IA, A>();

            var md = new TenantDistributor(container);

            md.ConfigureTenant("A", c => c.Register <IA, B>());

            var tenant = md.GetTenant("A");

            Assert.IsType <A>(container.Resolve <D>().Ia);
            Assert.IsType <B>(md.GetTenant("A").Resolve <D>().Ia);
        }
Exemple #8
0
        public async Task MultitenantTests_Dispose_Async_Tenant()
        {
            var container = new StashboxContainer(c => c.WithDisposableTransientTracking());

            var md = new TenantDistributor(container);

            md.ConfigureTenant("C", c => c.Register <IA, C>());
            var tenant = md.GetTenant("C");

            var inst = (C)tenant.Resolve <IA>();

            await md.DisposeAsync();

            Assert.True(inst.Disposed);
            Assert.Throws <ObjectDisposedException>(() => container.Resolve <IA>());
            Assert.Throws <ObjectDisposedException>(() => tenant.Resolve <IA>());
        }
Exemple #9
0
        public void MultitenantTests_Null_Container()
        {
            var md = new TenantDistributor(null);

            Assert.NotNull(md.RootContainer);
        }