public void TestAddCompanyAndChildrenInDatabaseOk()
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <CompanyDbContext>();

            using (var context = new CompanyDbContext(options, new FakeGetClaimsProvider("accessKey")))
            {
                context.Database.EnsureCreated();

                //ATTEMPT
                context.AddCompanyAndChildrenInDatabase();

                //VERIFY
                var display = context.Tenants.IgnoreQueryFilters().Select(x => x.ToString()).ToList();
                foreach (var line in display)
                {
                    _output.WriteLine($"\"{line}\",");
                }
                display.ShouldEqual(new List <string>
                {
                    "Company: Name = 4U Inc., DataKey = 1|",
                    "SubGroup: Name = West Coast, DataKey = 1|2|",
                    "SubGroup: Name = San Fran, DataKey = 1|2|3|",
                    "RetailOutlet: Name = SF Dress4U, DataKey = 1|2|3|4*",
                    "RetailOutlet: Name = SF Tie4U, DataKey = 1|2|3|5*",
                    "RetailOutlet: Name = SF Shirt4U, DataKey = 1|2|3|6*",
                    "SubGroup: Name = LA, DataKey = 1|2|7|",
                    "RetailOutlet: Name = LA Dress4U, DataKey = 1|2|7|8*",
                    "RetailOutlet: Name = LA Tie4U, DataKey = 1|2|7|9*",
                    "RetailOutlet: Name = LA Shirt4U, DataKey = 1|2|7|a*",
                });
            }
        }
        public void TestAddCompanyAndChildrenInDatabaseTwoCompaniesOk()
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <CompanyDbContext>();

            using (var context = new CompanyDbContext(options, new FakeGetClaimsProvider("accessKey")))
            {
                context.Database.EnsureCreated();

                //ATTEMPT
                context.AddCompanyAndChildrenInDatabase(
                    "Company1|Area|Shop1", "Company1|Area|Shop2", "Company2|Area|Shop3");

                //VERIFY
                var display = context.Tenants.IgnoreQueryFilters().Select(x => x.ToString()).ToList();
                foreach (var line in display)
                {
                    _output.WriteLine($"\"{line}\",");
                }
                display.ShouldEqual(new List <string>
                {
                    "Company: Name = Company1, DataKey = 1|",
                    "SubGroup: Name = Area, DataKey = 1|2|",
                    "RetailOutlet: Name = Shop1, DataKey = 1|2|3*",
                    "RetailOutlet: Name = Shop2, DataKey = 1|2|4*",
                    "Company: Name = Company2, DataKey = 5|",
                    "SubGroup: Name = Area, DataKey = 5|6|",
                    "RetailOutlet: Name = Shop3, DataKey = 5|6|7*",
                });
            }
        }
        public void TestIncludeWithNoQueryFilterOk()
        {
            //SETUP
            var    options = SqliteInMemory.CreateOptions <CompanyDbContext>();
            string dataKey;

            using (var context = new CompanyDbContext(options, new FakeGetClaimsProvider("accessKey")))
            {
                context.Database.EnsureCreated();
                var companies = context.AddCompanyAndChildrenInDatabase();
                dataKey = companies.First().Children.First().Children.First().DataKey;
            }
            using (var context = new CompanyDbContext(options, new FakeGetClaimsProvider(dataKey)))
            {
                //ATTEMPT
                var tenant = context.Tenants.IgnoreQueryFilters()
                             .Include(p => p.Parent)
                             .Include(x => x.Children).Single(x => x.DataKey == dataKey);

                //VERIFY
                tenant.DataKey.ShouldEqual(dataKey);
                tenant.Parent.ShouldNotBeNull();
                tenant.Children.Any().ShouldBeTrue();
            }
        }
示例#4
0
        public void TestFilterTenantsOk(string dataKey, int expectedCount)
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <CompanyDbContext>();

            using (var context = new CompanyDbContext(options, new FakeGetClaimsProvider(dataKey)))
            {
                context.Database.EnsureCreated();
                context.AddCompanyAndChildrenInDatabase();

                //ATTEMPT
                var tenants = context.Tenants.ToList();

                //VERIFY
                //foreach (var line in tenants)
                //{
                //    _output.WriteLine($"\"{line}\",");
                //}
                tenants.Count.ShouldEqual(expectedCount);
            }
        }
        public void TestMoveToNewParentGroup()
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <CompanyDbContext>();

            using (var context = new CompanyDbContext(options, new FakeGetClaimsProvider("123*")))
            {
                context.Database.EnsureCreated();
                var rootCompanies = context.AddCompanyAndChildrenInDatabase();
                //                   -- West Coast --|--- San Fran ---
                var sanFran = rootCompanies.First().Children.Single().Children.First();
                //                  -- West Coast --|------ LA ------
                var la = rootCompanies.First().Children.Single().Children.Last();

                //ATTEMPT
                sanFran.MoveToNewParent(la, context);
                context.SaveChanges();

                //VERIFY
                var display = context.Tenants.IgnoreQueryFilters().Select(x => x.ToString()).ToList();
                foreach (var line in display)
                {
                    _output.WriteLine($"\"{line}\",");
                }
                display.ShouldEqual(new List <string>
                {
                    "Company: Name = 4U Inc., DataKey = 1|",
                    "SubGroup: Name = West Coast, DataKey = 1|2|",
                    "SubGroup: Name = San Fran, DataKey = 1|2|7|3|",
                    "RetailOutlet: Name = SF Dress4U, DataKey = 1|2|7|3|4*",
                    "RetailOutlet: Name = SF Tie4U, DataKey = 1|2|7|3|5*",
                    "RetailOutlet: Name = SF Shirt4U, DataKey = 1|2|7|3|6*",
                    "SubGroup: Name = LA, DataKey = 1|2|7|",
                    "RetailOutlet: Name = LA Dress4U, DataKey = 1|2|7|8*",
                    "RetailOutlet: Name = LA Tie4U, DataKey = 1|2|7|9*",
                    "RetailOutlet: Name = LA Shirt4U, DataKey = 1|2|7|a*",
                });
            }
        }
        public void TestExtractCompanyId()
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <CompanyDbContext>();

            using (var context = new CompanyDbContext(options, new FakeGetClaimsProvider("123*")))
            {
                context.Database.EnsureCreated();
                var rootCompanies = context.AddCompanyAndChildrenInDatabase();

                //ATTEMPT
                //                   -- West Coast --|--- San Fran ---
                var sfDress4U = rootCompanies.First().Children.Single().Children.First().Children.First();
                //                  -- West Coast --|------ LA ------
                var la = rootCompanies.First().Children.Single().Children.Last();


                //VERIFY
                rootCompanies.First().ExtractCompanyId().ShouldEqual(1);
                sfDress4U.ExtractCompanyId().ShouldEqual(1);
                la.ExtractCompanyId().ShouldEqual(1);
            }
        }