private static void SeedRatings(OnlineFishShopDbContext context) { if (context.Ratings.Any()) { return; } var currentDirectory = Path.GetFullPath(@"..\OnlineFishShop.Data\Import\Json\RatingsMock.json"); string json = File.ReadAllText(currentDirectory); var ratingsToSeed = JsonConvert.DeserializeObject <List <Rating> >(json); Random r = new Random(); var products = context.Products.ToList(); var user = context.Users.First(); //sequence users contains no elements foreach (var rating in ratingsToSeed) { rating.Product = products[r.Next(1, 25)]; rating.User = user; } context.Ratings.AddRange(ratingsToSeed); context.SaveChanges(); }
private static void SeedComments(OnlineFishShopDbContext context) { if (context.Comments.Any()) { return; } var currentDirectory = Path.GetFullPath(@"..\OnlineFishShop.Data\Import\Json\CommentsMock.json"); string json = File.ReadAllText(currentDirectory); var dateTimeFormat = "dd/mm/yyyy"; var dateTimeConverter = new IsoDateTimeConverter { DateTimeFormat = dateTimeFormat }; var commentsToSeed = JsonConvert.DeserializeObject <List <Comment> >(json, dateTimeConverter); Random r = new Random(); var products = context.Products.ToList(); var user = context.Users.First(); //attach product and user to comments foreach (var comment in commentsToSeed) { comment.Product = products[r.Next(1, 25)]; comment.User = user; } context.AddRange(commentsToSeed); context.SaveChanges(); }
public void Add_AddSingleProduct(string productName) { //Arrange var options = new DbContextOptionsBuilder <OnlineFishShopDbContext>() .UseInMemoryDatabase(databaseName: "Add_writes_to_database") .Options; Product product = new Product(); product.Name = productName; // Act using (var context = new OnlineFishShopDbContext(options)) { context.Database.EnsureDeleted(); var service = new GenericDataService <Product>(context); service.Add(product); } // Assert using (var context = new OnlineFishShopDbContext(options)) { Assert.Equal(1, context.Products.Count()); Assert.Equal(productName, context.Products.Single().Name); } }
private static void SeedDeliveryOptions(OnlineFishShopDbContext context) { if (context.DeliveryOptions.Any()) { return; } var currentDirectory = Path.GetFullPath(@"..\OnlineFishShop.Data\Import\Json\DeliveryOptionsMock.json"); string json = File.ReadAllText(currentDirectory); var optionsToSeed = JsonConvert.DeserializeObject <List <DeliveryOption> >(json); context.DeliveryOptions.AddRange(optionsToSeed); context.SaveChanges(); }
public void Add_AddMultipleProductsAtOnce() { //Arrange var options = new DbContextOptionsBuilder <OnlineFishShopDbContext>() .UseInMemoryDatabase(databaseName: "Add_writes_to_database") .Options; Product product1 = new Product(); product1.Name = "First"; Product product2 = new Product(); product2.Name = "Second"; Product product3 = new Product(); product3.Name = "Third"; List <Product> all = new List <Product>(); all.Add(product1); all.Add(product2); all.Add(product3); // Act using (var context = new OnlineFishShopDbContext(options)) { context.Database.EnsureDeleted(); var service = new GenericDataService <Product>(context); service.Add(all.ToArray()); } // Assert using (var context = new OnlineFishShopDbContext(options)) { Product first = context.Products.Where(p => p.Name == "First").FirstOrDefault(); Product second = context.Products.Where(p => p.Name == "Second").FirstOrDefault(); Product third = context.Products.Where(p => p.Name == "Third").FirstOrDefault(); Assert.Equal(3, context.Products.Count()); Assert.NotNull(first); Assert.NotNull(second); Assert.NotNull(third); } }
public void GetAllProducts() { //Arrange var options = new DbContextOptionsBuilder <OnlineFishShopDbContext>() .UseInMemoryDatabase(databaseName: "Add_writes_to_database") .Options; Product product1 = new Product(); product1.Name = "First"; Product product2 = new Product(); product2.Name = "Second"; Product product3 = new Product(); product3.Name = "Third"; // Act using (var context = new OnlineFishShopDbContext(options)) { context.Database.EnsureDeleted(); var service = new GenericDataService <Product>(context); service.Add(product1); service.Add(product2); service.Add(product3); } // Assert using (var context = new OnlineFishShopDbContext(options)) { var service = new GenericDataService <Product>(context); var allProds = service.GetAllAsync().Result; Assert.Equal(3, allProds.Count); Assert.NotNull(allProds.Find(p => p.Name == "First")); Assert.NotNull(allProds.Find(p => p.Name == "Second")); Assert.NotNull(allProds.Find(p => p.Name == "Third")); } }
private static void SeedProductsAndCategories(OnlineFishShopDbContext context, Category[] categoriesToSeed, Product[] productsToSeed) { if (!context.Products.Any()) { Random r = new Random(); List <CategoryProduct> categoryProducts = new List <CategoryProduct>(); foreach (var product in productsToSeed) { categoryProducts.Add(new CategoryProduct() { Product = product, Category = categoriesToSeed[r.Next(0, categoriesToSeed.Length)] }); } context.AddRange(categoryProducts); context.SaveChanges(); } }
public static void EnsureSeedData(this OnlineFishShopDbContext context) { if (context.Database.GetPendingMigrations().Any()) { return; } //categories to list var categoriesToSeed = new Category[] { new Category() { Name = "Fish" }, new Category() { Name = "Roe" }, new Category() { Name = "Shellfish" }, new Category() { Name = "Tunicates" } }; //products to list var currentDirectory = Path.GetFullPath(@"..\OnlineFishShop.Data\Import\Json\ProductsMock.json"); string json = File.ReadAllText(currentDirectory); var productsToSeed = JsonConvert.DeserializeObject <Product[]>(json); //seeding products and categories SeedProductsAndCategories(context, categoriesToSeed, productsToSeed); SeedRatings(context); SeedComments(context); SeedDeliveryOptions(context); SeedPaymentOptions(context); }
public void GetAllWithName() { //Arrange var options = new DbContextOptionsBuilder <OnlineFishShopDbContext>() .UseInMemoryDatabase(databaseName: "Add_writes_to_database") .Options; Product product1 = new Product(); product1.Name = "SomeName"; Product product2 = new Product(); product2.Name = "SomeName"; Product product3 = new Product(); product3.Name = "AName"; // Act using (var context = new OnlineFishShopDbContext(options)) { context.Database.EnsureDeleted(); var service = new GenericDataService <Product>(context); service.Add(product1); service.Add(product2); service.Add(product3); } // Assert using (var context = new OnlineFishShopDbContext(options)) { var service = new GenericDataService <Product>(context); var getWithName = service.GetListAsync(p => p.Name == "SomeName").Result; Assert.Equal(2, getWithName.Count); Assert.True(getWithName.First().Name == "SomeName"); } }
public GenericDataService(OnlineFishShopDbContext dbContext) { this._dbSet = dbContext.Set <T>(); this.context = dbContext; }