public void VerifyDatabaseInsertOfJobWithPowerToolsTenant()
        {
            var helper   = new TestContextHelper("test_in-memory_DB-" + RandomNumberHelper.NextInteger());
            var context  = new JobAssistantContext(helper.Options);
            var ptDomain = new Tenant {
                DomainId = "Power Tools"
            };

            context.Tenants.Add(ptDomain);

            var grindJob = new Job
            {
                Name     = "Grind",
                DomainId = ptDomain.DomainId
            };

            Assert.True(grindJob.JobId == 0);
            context.Jobs.Add(grindJob);
            var efDefaultId = grindJob.JobId; // Temporarily assigned by EF

            Assert.True(efDefaultId > 0);
            var savedCount = context.SaveChanges();

            Assert.True(savedCount == 2);
            Assert.True(grindJob.JobId > 0); // New id is likely different than temporary id assigned above
        }
Exemplo n.º 2
0
        public async void AddCategoryJobMaterialToolAndQueryTest()
        {
            var nextId = RandomNumberHelper.NextInteger();

            var parentCategory = new Category
            {
                CategoryId = nextId,
                Jobs       = new List <Job>()
            };

            var job = new Job {
                JobId = nextId, Name = "Test Job " + nextId
            };

            var material = new Material
            {
                MaterialId = nextId,
                Name       = "Test Material " + nextId,
                Tools      = new List <Tool> {
                    new Tool {
                        ToolId = nextId, Name = "Test Tool " + nextId
                    }
                }
            };

            job.Materials = new List <Material> {
                material
            };

            parentCategory.Jobs.Add(job);

            var helper = new TestContextHelper("test_in-memory_DB-" + RandomNumberHelper.NextInteger());

            using (var otherContext = new JobAssistantContext(helper.Options))
            {
                var repositoryUnderCreateTest = new Repository(otherContext);
                await repositoryUnderCreateTest.Create <Category>(parentCategory);

                await repositoryUnderCreateTest.SaveChanges();

                var repositoryUnderQueryTest = new Repository(otherContext);
                var myJob = repositoryUnderQueryTest.All <Category>().Include(c => c.Jobs).ThenInclude(m => m.Materials)
                            .ThenInclude(t => t.Tools).Single(c => c.CategoryId == nextId).Jobs.Single(j => j.JobId == nextId);
                Assert.Equal("Test Job " + nextId, myJob.Name);

                var associatedTool = material.Tools.First();
                Assert.NotNull(associatedTool);
                Assert.Equal(nextId, associatedTool.ToolId);

                repositoryUnderCreateTest.Dispose();
                repositoryUnderQueryTest.Dispose();
            }
        }
Exemplo n.º 3
0
        public TradeRelationshipTests()
        {
            /**
             * This constructor is executed prior to each [Fact]-based unit test method.
             * Considering this, a seperate NAMED in-memory DB is initialized.
             */
            var dbId = RandomNumberHelper.NextInteger();

            _helper = new TestContextHelper("test_in-memory_DB-" + dbId);
            var context = new JobAssistantContext(_helper.Options);

            SampleBoschToolsDataSet.SeedBoschToolTradesGraphData(context);
        }
        public DatabaseSetupTestFixture()
        {
            var helper = new TestContextHelper("test" /* prod (or not "test" string */);

            databaseContext = new JobAssistantContext(helper.Options);
            try
            {
                databaseContext.Database.EnsureCreated();
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception thrown during database schema creation: " + e);
            }
        }
Exemplo n.º 5
0
        public ApplicationRelationshipTests()
        {
            /**
             * This constructor is executed prior to each [Fact]-based unit test method.
             * Considering this, a seperate NAMED in-memory DB is initialized.
             */
            var dbId = RandomNumberHelper.NextInteger();

            _helper  = new TestContextHelper("test_in-memory_DB-" + dbId);
            _context = new JobAssistantContext(_helper.Options);

            /**
             *  Add sample data with ToolsSampleData.SeedBoschToolsGraphData(_context);
             *  or using the subset with SeedBoschToolsSubsetData(_context).
             */
            SampleBoschToolsDataSet.SeedBoschToolsSubsetData(_context);
        }
        public void VerifyDatabaseInsertOfNewTrade()
        {
            var helper    = new TestContextHelper("test_in-memory_DB-" + RandomNumberHelper.NextInteger());
            var context   = new JobAssistantContext(helper.Options);
            var autoTrade = new Trade {
                Name = "Automotive and Other Vehicle Maintenance"
            };

            Assert.True(autoTrade.TradeId == 0);
            context.Trades.Add(autoTrade);
            var efDefaultId = autoTrade.TradeId;

            Assert.True(efDefaultId > 0);
            var savedCount = context.SaveChanges();

            Assert.True(savedCount == 1);
            Assert.True(autoTrade.TradeId > 0);
        }
Exemplo n.º 7
0
        public void VerifyDatabaseInsertOfNewApplication()
        {
            var helper      = new TestContextHelper("test_in-memory_DB-" + RandomNumberHelper.NextInteger());
            var context     = new JobAssistantContext(helper.Options);
            var application = new Application {
                Name = "Level"
            };

            Assert.True(application.ApplicationId == 0);
            context.Applications.Add(application);
            var efDefaultId = application.ApplicationId;

            Assert.True(efDefaultId > 0);
            var savedCount = context.SaveChanges();

            Assert.True(savedCount == 1);
            Assert.True(application.ApplicationId > 0);
        }
Exemplo n.º 8
0
        public void AddAndUpdateMaterialsWithJobsDbSetQueryTest()
        {
            var nextId = RandomNumberHelper.NextInteger();

            var parentCategory = new Category();

            parentCategory.CategoryId = nextId;
            parentCategory.Name       = "Test Category " + nextId;
            parentCategory.Jobs       = new List <Job>();

            var job = new Job {
                JobId = nextId, Name = "Test Job " + nextId
            };

            var material = new Material {
                MaterialId = nextId, Name = "Test Material " + nextId
            };

            job.Materials = new List <Material>();
            job.Materials.Add(material);

            parentCategory.Jobs.Add(job);

            var helper = new TestContextHelper("test_in-memory_DB-" + RandomNumberHelper.NextInteger());

            using (var saveContext = new JobAssistantContext(helper.Options))
            {
                saveContext.Add(parentCategory);
                var entitiesPeristed = saveContext.SaveChanges();
                Assert.Equal(3, entitiesPeristed); // Expect 3 because a category, job and material are being persisted.
            }

            using (var queryContext = new JobAssistantContext(helper.Options))
            {
                var myJob = queryContext.Jobs.Include(j => j.Materials).Single(j => j.JobId == nextId);
                Assert.Equal("Test Job " + nextId, myJob.Name);
                Assert.True(myJob.Materials.Count == 1);
                var someMaterial = queryContext.Materials.Single(m => m.MaterialId == nextId);
                Assert.Equal("Test Material " + nextId, someMaterial.Name);
                var expectedCategoryName = "Test Category " + nextId;
                var topCategory          = queryContext.Categories.Single(c => c.CategoryId == nextId);
                Assert.Equal(expectedCategoryName, topCategory.Name);
            }
        }
        public void VerifyDatabaseInsertOfCategory()
        {
            var helper  = new TestContextHelper("test_in-memory_DB-" + RandomNumberHelper.NextInteger());
            var context = new JobAssistantContext(helper.Options);
            var dremelMultiPurposeCategory = new Category()
            {
                Name = "Multi-Purpose"
            };

            Assert.True(dremelMultiPurposeCategory.CategoryId == 0);
            context.Categories.Add(dremelMultiPurposeCategory);
            var efDefaultId = dremelMultiPurposeCategory.CategoryId; // Temporarily assigned by EF

            Assert.True(efDefaultId > 0);
            int savedCount = context.SaveChanges();

            Assert.True(savedCount == 1);
            Assert.True(dremelMultiPurposeCategory.CategoryId > 0); // New id is likely different than temporary id assigned above
        }
Exemplo n.º 10
0
        public void VerifyDatabaseInsertOfPowerTool()
        {
            var helper      = new TestContextHelper("test_in-memory_DB-" + RandomNumberHelper.NextInteger());
            var context     = new JobAssistantContext(helper.Options);
            var hammerDrill = new Tool
            {
                Name           = "Variable Speed Hammer Drill Kit",
                ModelNumber    = "1191VSRK",
                Attributes     = "{ \"Weight\" : \"7.8 pounds\", \"Package Dimensions\" = \"14 x 11.9 x 4.3 inches\", \"Color\" = \"Blue\" }",
                MaterialNumber = "B000VZJGAO"
            };

            Assert.True(hammerDrill.ToolId == 0);
            context.Tools.Add(hammerDrill);
            var efDefaultId = hammerDrill.ToolId; // Temporarily assigned by EF

            Assert.True(efDefaultId > 0);
            int savedCount = context.SaveChanges();

            Assert.True(savedCount == 1);
            Assert.True(hammerDrill.ToolId > 0); // New id is likely different than temporary id assigned above
        }
Exemplo n.º 11
0
        public void AddAndUpdateMaterialsWithIncludesAndTraversalTest()
        {
            var nextId = RandomNumberHelper.NextInteger();

            var parentCategory = new Category();

            parentCategory.CategoryId = nextId;
            parentCategory.Jobs       = new List <Job>();

            var job = new Job {
                JobId = nextId, Name = "Test Job " + nextId
            };

            var material = new Material {
                MaterialId = nextId, Name = "Test Material " + nextId
            };

            job.Materials = new List <Material>();
            job.Materials.Add(material);

            parentCategory.Jobs.Add(job);

            var helper = new TestContextHelper("test_in-memory_DB-" + RandomNumberHelper.NextInteger());

            using (var context = new JobAssistantContext(helper.Options))
            {
                context.Add(parentCategory);
                var entitiesPeristed = context.SaveChanges();
                Assert.Equal(3, entitiesPeristed); // Expect 3 because a category, job and material are being persisted.
            }

            using (var context = new JobAssistantContext(helper.Options))
            {
                var myJob = context.Categories.Include(c => c.Jobs).ThenInclude(m => m.Materials)
                            .ThenInclude(t => t.Tools).Single(c => c.CategoryId == nextId).Jobs.Single(j => j.JobId == nextId);
                Assert.Equal("Test Job " + nextId, myJob.Name);
            }
        }
Exemplo n.º 12
0
        public void VerifyDatabaseInsertOfAccessoryBit()
        {
            var helper  = new TestContextHelper("test_in-memory_DB-" + RandomNumberHelper.NextInteger());
            var context = new JobAssistantContext(helper.Options);
            var bit     = new Accessory
            {
                Name           = "5/16 In. x 12 In. Bell Hanger Bits",
                ModelNumber    = "BH1002",
                Attributes     = "{ \"Weight\" : \"2.4 ounces\", \"Size\" = \"5/16-Inch\", \"Color\" = \"Blue\" }",
                SocialRating   = 5M,
                MaterialNumber = "B000WA3M9E"
            };

            Assert.True(bit.AccessoryId == 0);
            context.Accessories.Add(bit);
            var efDefaultId = bit.AccessoryId; // Temporarily assigned by EF

            Assert.True(efDefaultId > 0);
            int savedCount = context.SaveChanges();

            Assert.True(savedCount == 1);
            Assert.True(bit.AccessoryId > 0); // New id is likely different than temporary id assigned above
        }