public async Task CannotResolve_TenantContext_IfParamsIsnNull()
        {
            // Arrange
            TestHarness harness  = new TestHarness();
            Exception   exLogger = await Assert.ThrowsAsync <ArgumentNullException>(() => Task.Run(() =>
            {
                return(new AppTenantResolver(harness.AppTenantMultitenancyOptionsProvider, harness.Cache, null));
            })).ConfigureAwait(false);

            Assert.Contains("log", exLogger.Message);

            Exception exCache = await Assert.ThrowsAsync <ArgumentNullException>(() => Task.Run(() =>
            {
                return(new AppTenantResolver(harness.AppTenantMultitenancyOptionsProvider, null, new Log <AppTenantResolver>(LogProvider.CurrentLogProvider)));
            })).ConfigureAwait(false);

            Assert.Contains("cache", exCache.Message);

            Task Res() => Task.Run(() =>
            {
                AppTenantResolver cachingAppTenantResolver = new AppTenantResolver(
                    null,
                    harness.Cache,
                    new Log <AppTenantResolver>(LogProvider.CurrentLogProvider));
            });

            Exception exOptionsProvider = await Assert.ThrowsAsync <ArgumentNullException>(Res).ConfigureAwait(false);

            Assert.Contains("multitenancyOptionsProvider", exOptionsProvider.Message);
        }
コード例 #2
0
            public TestHarness(bool disposeOnEviction = true, int cacheExpirationInSeconds = 10, bool evictAllOnExpiry = true)
            {
                MemoryCacheTenantResolverOptions options = new MemoryCacheTenantResolverOptions {
                    DisposeOnEviction       = disposeOnEviction,
                    EvictAllEntriesOnExpiry = evictAllOnExpiry
                };

                ServiceProvider services = new ServiceCollection()
                                           .AddSingleton <IOptionsFactory <MultitenancyOptions <TestTenant> >, MultitenancyOptionsTestTenantFactoryTests>()
                                           .AddSingleton <IOptionsFactory <MultitenancyOptions <AppTenant> >, MultitenancyOptionsAppTenantFactoryTests>()
                                           //.Configure<MultitenancyOptions>(o => { })
                                           .BuildServiceProvider();

                TestMultitenancyOptionsProvider      = new MultitenancyOptionsProvider <TestTenant>(new MultiTenancyConfig <TestTenant>(environmentTest, Config));
                AppTenantMultitenancyOptionsProvider = new MultitenancyOptionsProvider <AppTenant>(new MultiTenancyConfig <AppTenant>(environmentTest, Config));

                TestTenantResolver = new TestTenantMemoryCacheResolver(TestMultitenancyOptionsProvider, Cache, new Log <TestTenantMemoryCacheResolver>(LogProvider.CurrentLogProvider), options, cacheExpirationInSeconds);
                AppTenantResolver  = new AppTenantResolver(AppTenantMultitenancyOptionsProvider, Cache, new Log <AppTenantResolver>(LogProvider.CurrentLogProvider));
            }