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 }
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(); } }
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); } }
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); }
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); }
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 }
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 }
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); } }
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 }