public void AddConfigurationStoreWithDefaults()
        {
            var configBuilder = new ConfigurationBuilder();

            configBuilder.AddJsonFile("ConfigurationStoreTestSettings.json");
            var configuration = configBuilder.Build();

            var services = new ServiceCollection();
            var builder  = new FinbuckleMultiTenantBuilder <TenantInfo>(services);

            builder.WithConfigurationStore();
            services.AddSingleton <IConfiguration>(configuration);
            var sp = services.BuildServiceProvider();

            var store = sp.GetRequiredService <IMultiTenantStore <TenantInfo> >();

            Assert.IsType <ConfigurationStore <TenantInfo> >(store);

            var tc = store.TryGetByIdentifierAsync("initech").Result;

            Assert.Equal("initech-id", tc !.Id);
            Assert.Equal("initech", tc.Identifier);
            Assert.Equal("Initech", tc.Name);
            // Note: connection string below loading from default in json.
            Assert.Equal("Datasource=sample.db", tc.ConnectionString);

            tc = store.TryGetByIdentifierAsync("lol").Result;
            Assert.Equal("lol-id", tc !.Id);
            Assert.Equal("lol", tc.Identifier);
            Assert.Equal("LOL", tc.Name);
            Assert.Equal("Datasource=lol.db", tc.ConnectionString);
        }
示例#2
0
    public void AddConfigurationStoreWithSectionName()
    {
        var configBuilder = new ConfigurationBuilder();

        configBuilder.AddJsonFile("ConfigurationStoreTestSettings.json");
        IConfiguration configuration = configBuilder.Build();

        var services = new ServiceCollection();
        var builder  = new FinbuckleMultiTenantBuilder(services);

        // Non-default section name.
        configuration = configuration.GetSection("Finbuckle");
        builder.WithConfigurationStore(configuration, "MultiTenant:Stores:ConfigurationStore");
        var sp = services.BuildServiceProvider();

        var store = sp.GetRequiredService <IMultiTenantStore>();

        Assert.IsType <MultiTenantStoreWrapper <ConfigurationStore> >(store);

        var tc = store.TryGetByIdentifierAsync("initech").Result;

        Assert.Equal("initech-id", tc.Id);
        Assert.Equal("initech", tc.Identifier);
        Assert.Equal("Initech", tc.Name);
        Assert.Equal("1234", tc.Items["test_item"]);
        // Note: connection string below loading from default in json.
        Assert.Equal("Datasource=sample.db", tc.ConnectionString);

        tc = store.TryGetByIdentifierAsync("lol").Result;
        Assert.Equal("lol-id", tc.Id);
        Assert.Equal("lol", tc.Identifier);
        Assert.Equal("LOL", tc.Name);
        Assert.Equal("Datasource=lol.db", tc.ConnectionString);
    }