public static int EnsureSeedData(this BugContext context) { var bugCount = default(int); var userCount = default(int); // Because each of the following seed method needs to do a save // (the data they're importing is relational), we need to call // SaveAsync within each method. // So let's keep tabs on the counts as they come back var dbSeeder = new DatabaseSeeder(context); if (!context.Users.Any()) { var pathToSeedData = Path.Combine(Directory.GetCurrentDirectory(), "SeedData", "UserSeedData.json"); userCount = dbSeeder.SeedUserEntitiesFromJson(pathToSeedData).Result; } // Because the Bug seed data _could_ contain Assigned Users, we need to ensure that the bugs // are seeded _after_ the users if (!context.Bugs.Any()) { var pathToSeedData = Path.Combine(Directory.GetCurrentDirectory(), "SeedData", "BugSeedData.json"); bugCount = dbSeeder.SeedBugEntitiesFromJson(pathToSeedData).Result; } return(bugCount + userCount); }
public async void DbSeeder_SeedBookData_NoDataSupplied_ShouldThrowException() { // Arrange var bookList = new List <Bug>(); var mockBookSet = DbSetHelpers.GetQueryableDbSet(bookList); var mockset = new Mock <IBugContext>(); mockset.Setup(m => m.Bugs).Returns(mockBookSet.Object); // Act & Assert var dbSeeder = new DatabaseSeeder(mockset.Object); var argEx = await Assert.ThrowsAsync <ArgumentException>(() => dbSeeder.SeedBugEntitiesFromJson(string.Empty)); }
public void DbSeeder_SeedBookData_DataSupplied_ShouldNotThrowException() { // Arrange // TODO Add an interface here, to mock stuff properly var bookList = new List <Bug>(); var mockBookSet = DbSetHelpers.GetQueryableDbSet(bookList); var mockset = new Mock <IBugContext>(); mockset.Setup(m => m.Bugs).Returns(mockBookSet.Object); var testJsonDirectory = Path.Combine(Directory.GetCurrentDirectory(), "SeedData"); var pathToSeedData = Path.Combine(testJsonDirectory, "TestBookSeedData.json"); // Act & Assert var dbSeeder = new DatabaseSeeder(mockset.Object); dbSeeder.SeedBugEntitiesFromJson(pathToSeedData).Wait(); }