public void SortFoodsByPrice_Test() { // arrange Products[] products; Products[] price_foods; double product_0_expected_price = 0.315425; double product_1_expected_price = 0.6376; double product_2_expected_price = 0.7659; double product_3_expected_price = 0.93065; double product_4_expected_price = 1.06313; double delta = 0.001; // act products = ParseString.GetData(GetManufacturingString()); price_foods = new Products[products.Length]; ProductsSort.SortFoodsByPrice(products, ref price_foods); // assert Assert.AreEqual(product_0_expected_price, price_foods[0].Price, delta); Assert.AreEqual(product_1_expected_price, price_foods[1].Price, delta); Assert.AreEqual(product_2_expected_price, price_foods[2].Price, delta); Assert.AreEqual(product_3_expected_price, price_foods[3].Price, delta); Assert.AreEqual(product_4_expected_price, price_foods[4].Price, delta); }
public void SortFoodsByCalorieContent_Test() { // arrange Products[] products; Products[] сalorie_foods; double product_0_expected_сalorie = 646.599; double product_1_expected_сalorie = 859.13; double product_2_expected_сalorie = 1092; double product_3_expected_сalorie = 1556.6; double product_4_expected_сalorie = 1772.6; double delta = 0.001; // act products = ParseString.GetData(GetManufacturingString()); сalorie_foods = new Products[products.Length]; ProductsSort.SortFoodsByCalorieContent(products, ref сalorie_foods); // assert Assert.AreEqual(product_0_expected_сalorie, сalorie_foods[0].Calories, delta); Assert.AreEqual(product_1_expected_сalorie, сalorie_foods[1].Calories, delta); Assert.AreEqual(product_2_expected_сalorie, сalorie_foods[2].Calories, delta); Assert.AreEqual(product_3_expected_сalorie, сalorie_foods[3].Calories, delta); Assert.AreEqual(product_4_expected_сalorie, сalorie_foods[4].Calories, delta); }
public async Task OrderByShouldOrderProducts(ProductsSort productsSort, string productName) { var options = new DbContextOptionsBuilder <PhotoparallelDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .Options; var dbContext = new PhotoparallelDbContext(options); var productService = new ProductsService(dbContext); dbContext.Products.AddRange(new List <Product> { new Product { Name = "Bag Vanguard", Price = 180, ProductStatus = ProductStatus.Sale }, new Product { Name = "Rode Videomic", Price = 150, ProductStatus = ProductStatus.Sale }, new Product { Name = "Dji Phantom 4", Price = 3000, ProductStatus = ProductStatus.Sale }, new Product { Name = "Canon M50", Price = 1199, ProductStatus = ProductStatus.Sale }, }); await dbContext.SaveChangesAsync(); var products = await productService.GetVisibleProductsAsync(); var orderedProducts = productService.OrderBy(products, productsSort); Assert.Equal(productName, orderedProducts.First().Name); }
public void OrderByShouldOrderProducts(string test, ProductsSort productsSort, string productName) { var options = new DbContextOptionsBuilder <XeonDbContext>() .UseInMemoryDatabase(databaseName: $"{test}_OrderBy_Product_Database") .Options; var dbContext = new XeonDbContext(options); var productService = new ProductsService(dbContext); var parentCategory = new ParentCategory { Name = "Computers" }; var childCategories = new List <ChildCategory> { new ChildCategory { Name = "Cables", ParentCategory = parentCategory }, new ChildCategory { Name = "Monitors", ParentCategory = parentCategory } }; dbContext.ChildCategories.AddRange(childCategories); dbContext.SaveChanges(); dbContext.Products.AddRange(new List <Product> { new Product { Name = "USB Cable", Price = 33, ChildCategory = childCategories.First() }, new Product { Name = "Adapter Cable", Price = 28, ChildCategory = childCategories.First() }, new Product { Name = "Keyboard", Price = 45, ChildCategory = childCategories.First() }, new Product { Name = "Computer", Price = 11, ChildCategory = childCategories.First() }, new Product { Name = "Monitor LG", Price = 36, ChildCategory = childCategories.Last() }, }); dbContext.SaveChanges(); var products = productService.GetVisibleProducts(); var orderedProducts = productService.OrderBy(products, productsSort); Assert.Equal(productName, orderedProducts.First().Name); }
public void FindFoodsBigestThenValueIngredient_Test() { // arrange Products[] products; Products[] find_foods_bigest_then_value; string ingredient = "Сахар"; double ingredient_val = 0.005; string expected_product_name = "Нарезной"; // act products = ParseString.GetData(GetManufacturingString()); find_foods_bigest_then_value = new Products[products.Length]; ProductsSort.FindFoodsBigestThenValueIngredient(ingredient, ingredient_val, products, ref find_foods_bigest_then_value); // assert // Должен определиться Нарезной Assert.AreEqual(expected_product_name, find_foods_bigest_then_value[0].ProductName); }
public IEnumerable <Product> OrderBy(IEnumerable <Product> products, ProductsSort sortBy) { if (ProductsSort.PriceDescending == sortBy) { return(products.OrderByDescending(x => x.Price).ToList()); } else if (ProductsSort.PriceAscending == sortBy) { return(products.OrderBy(x => x.Price).ToList()); } else if (ProductsSort.Oldest == sortBy) { //Default sorting behavior return(products); } //ProductsSortType.Newest return(products.OrderByDescending(x => x.Id).ToList()); }
public IEnumerable <Product> OrderBy(IEnumerable <Product> products, ProductsSort sortBy) { if (sortBy == ProductsSort.Name) { return(products.OrderBy(x => x.Name).ToList()); } else if (sortBy == ProductsSort.PriceAscending) { return(products.OrderBy(x => x.Price).ToList()); } else if (sortBy == ProductsSort.PriceDescending) { return(products.OrderByDescending(x => x.Price).ToList()); } else { return(products.OrderByDescending(x => x.Id).ToList()); } }
public void FindFoodsByPriceAndByCalorieContent_Test() { // arrange Products[] products; Products[] find_foods_by_price_and_by_calorie; double expected_сalorie = 1092; double expected_price = 0.6376; string expected_product_name = "Грузинский"; double delta = 0.001; // act products = ParseString.GetData(GetManufacturingString()); find_foods_by_price_and_by_calorie = new Products[products.Length]; ProductsSort.FindFoodsByPriceAndByCalorieContent(expected_сalorie, expected_price, products, ref find_foods_by_price_and_by_calorie); // assert Assert.AreEqual(expected_сalorie, find_foods_by_price_and_by_calorie[0].Calories, delta); Assert.AreEqual(expected_price, find_foods_by_price_and_by_calorie[0].Price, delta); // Должен определиться Грузинский Assert.AreEqual(expected_product_name, find_foods_by_price_and_by_calorie[0].ProductName); }
public void FindFoodsNumberIngredientsGreaterThanTheValue_Test() { // arrange Products[] products; Products[] find_foods_number_ingredients_greater_than_the_value; int count = 0; int expected_quantity = 4; // act products = ParseString.GetData(GetManufacturingString()); find_foods_number_ingredients_greater_than_the_value = new Products[products.Length]; ProductsSort.FindFoodsNumberIngredientsGreaterThanTheValue(3, products, find_foods_number_ingredients_greater_than_the_value); foreach (var item in find_foods_number_ingredients_greater_than_the_value) { if (item != null) { count++; } } // assert Assert.AreEqual(expected_quantity, count); }
public IQueryable <ProductServiceModel> SortProducts(IQueryable <ProductServiceModel> products, ProductsSort sort) { if (sort == ProductsSort.PriceDescending) { return(products.OrderByDescending(p => p.Price)); } return(products.OrderBy(p => p.Price)); }