Esempio n. 1
0
        public void UserCantAddNewProductWithNullCategory()
        {
            var id    = Guid.NewGuid();
            var catId = Guid.NewGuid();

            productsRepositoryMock.Setup(pr => pr.GetAllProducts()).
            Returns(new List <Product>());

            productsRepositoryMock.Setup(pr => pr.GetAllCategories()).
            Returns(new List <ProductCategory>
            {
                new ProductCategory {
                    Id = catId
                },
            });


            FridgeViewModel vm = new FridgeViewModel(fridgeRepositoryMock.Object,
                                                     productsRepositoryMock.Object,
                                                     eventAggregatorMock.Object);

            vm.LoadDataCommand.Execute(null);
            vm.NewProductCategory = null;
            vm.NewProductCategory = new ProductCategory {
                Id = catId
            };
            Assert.False(vm.AddCommand.CanExecute(null));
        }
Esempio n. 2
0
        public void LoadsFridge()
        {
            fridgeRepositoryMock.Setup(fr => fr.GetFridge()).
            Returns(new Fridge
            {
                FridgeProducts = new List <FridgeProduct>
                {
                    new FridgeProduct {
                        Id = Guid.NewGuid()
                    },
                    new FridgeProduct {
                        Id = Guid.NewGuid()
                    }
                }
            });

            FridgeViewModel vm = new FridgeViewModel(fridgeRepositoryMock.Object,
                                                     productsRepositoryMock.Object,
                                                     eventAggregatorMock.Object);

            vm.LoadDataCommand.Execute(null);

            Assert.NotNull(vm.Fridge);
            Assert.NotNull(vm.Fridge.FridgeProducts);
            Assert.Equal(2, vm.Fridge.FridgeProducts.Count);
        }
Esempio n. 3
0
        public void DeleteProductFromFridge()
        {
            fridgeRepositoryMock.Setup(fr => fr.GetFridge()).
            Returns(new Fridge
            {
                FridgeProducts = new List <FridgeProduct>()
            });


            FridgeViewModel vm = new FridgeViewModel(fridgeRepositoryMock.Object,
                                                     productsRepositoryMock.Object,
                                                     eventAggregatorMock.Object);

            vm.LoadDataCommand.Execute(null);
            var prodId  = Guid.NewGuid();
            var product = new Product {
                Id = prodId, Name = "RemProduct"
            };

            vm.SelectedProduct = product;
            Assert.Single(vm.FridgeLookups);
            var lookup = vm.FridgeLookups[0];

            vm.DeleteFridgeProductCommand.Execute(lookup);
            Assert.Empty(vm.FridgeLookups);
        }
Esempio n. 4
0
        public void WhenAddNewProductCanceledThereIsNoNewProduct()
        {
            var id    = Guid.NewGuid();
            var catId = Guid.NewGuid();

            productsRepositoryMock.Setup(pr => pr.GetAllProducts()).
            Returns(new List <Product>());

            productsRepositoryMock.Setup(pr => pr.GetAllCategories()).
            Returns(new List <ProductCategory>
            {
                new ProductCategory {
                    Id = catId
                },
            });


            FridgeViewModel vm = new FridgeViewModel(fridgeRepositoryMock.Object,
                                                     productsRepositoryMock.Object,
                                                     eventAggregatorMock.Object);

            vm.LoadDataCommand.Execute(null);
            vm.NewProductCategory = new ProductCategory {
                Id = catId
            };
            Assert.Empty(vm.Products);
            vm.CancelCommand.Execute(null);
            Assert.Empty(vm.Products);
        }
 private void FormFridge_Load(object sender, EventArgs e)
 {
     if (id.HasValue)
     {
         try
         {
             FridgeViewModel view = service.GetElement(id.Value);
             if (view != null)
             {
                 textBoxName.Text                     = view.FridgeName;
                 dataGridView.DataSource              = view.FridgeProducts;
                 dataGridView.Columns[0].Visible      = false;
                 dataGridView.Columns[1].Visible      = false;
                 dataGridView.Columns[2].Visible      = false;
                 dataGridView.Columns[3].AutoSizeMode =
                     DataGridViewAutoSizeColumnMode.Fill;
             }
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK,
                             MessageBoxIcon.Error);
         }
     }
 }
Esempio n. 6
0
        public void ChangeOfCategoryChangesListOfProducts()
        {
            var meatId = Guid.NewGuid();
            var vegeId = Guid.NewGuid();
            var Vege   = new ProductCategory {
                Id = vegeId, Name = "Vegetables"
            };
            var Meat = new ProductCategory {
                Id = meatId, Name = "Meat"
            };

            productsRepositoryMock.Setup(pr => pr.GetAllCategories()).
            Returns(new List <ProductCategory>
            {
                Meat, Vege
            });

            var Bacon = new Product {
                Id = Guid.NewGuid(), Name = "Bacon", ProductCategoryId = meatId
            };
            var Beef = new Product {
                Id = Guid.NewGuid(), Name = "Beef", ProductCategoryId = meatId
            };
            var Tomato = new Product {
                Id = Guid.NewGuid(), Name = "Tomato", ProductCategoryId = vegeId
            };

            productsRepositoryMock.Setup(pr => pr.GetAllProducts()).
            Returns(new List <Product>
            {
                Bacon, Beef, Tomato
            });

            FridgeViewModel vm = new FridgeViewModel(fridgeRepositoryMock.Object,
                                                     productsRepositoryMock.Object,
                                                     eventAggregatorMock.Object);

            vm.LoadDataCommand.Execute(null);
            Assert.Equal(2, vm.Categories.Count);
            Assert.Equal("Meat", vm.SelectedCategory.Name);
            vm.SelectedCategory = Vege;
            Assert.Equal("Vegetables", vm.SelectedCategory.Name);
            Assert.Single(vm.ProductsPerCategory);
            Assert.Contains(Tomato, vm.ProductsPerCategory);
        }
Esempio n. 7
0
        public void LoadsProducts()
        {
            productsRepositoryMock.Setup(pr => pr.GetAllProducts()).
            Returns(new List <Product>
            {
                new Product {
                    Id = Guid.NewGuid()
                },
                new Product {
                    Id = Guid.NewGuid()
                }
            });
            FridgeViewModel vm = new FridgeViewModel(fridgeRepositoryMock.Object,
                                                     productsRepositoryMock.Object,
                                                     eventAggregatorMock.Object);

            vm.LoadDataCommand.Execute(null);

            Assert.Equal(2, vm.Products.Count);
        }
Esempio n. 8
0
        public async Task <IActionResult> Create(FridgeViewModel model)
        {
            if (ModelState.IsValid)
            {
                var fridge = new Refrigerator
                {
                    Id       = Guid.NewGuid(),
                    Location = model.Location,
                    UserId   = User.GetId(),
                    State    = FridgeState.Deactivated
                };

                _context.Add(fridge);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(FridgeList)));
            }

            return(View(model));
        }
Esempio n. 9
0
        public async Task <IActionResult> Edit(Guid id, FridgeViewModel model)
        {
            var fridge = _context.Refrigerators.Find(id);

            if (fridge == null)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                fridge.Location = model.Location;
                _context.Update(fridge);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(FridgeList)));
            }

            return(View(model));
        }
Esempio n. 10
0
        public async Task <IActionResult> AddToFridge(FridgeViewModel fridge)
        {
            User user = await _signInManager.UserManager.GetUserAsync(User);

            var products = await productRepository.Products();

            products = products.OrderBy(p => p.Name);

            if (!ModelState.IsValid)
            {
                if (ModelState["Id"].Errors.Count != 0)
                {
                    ModelState.Remove("Id");
                    ModelState.SetModelValue("Id", new ValueProviderResult("Należy wybrać produkt", CultureInfo.InvariantCulture));
                    ModelState.AddModelError("Id", "Należy wybrać produkt");
                }

                fridge.Products = products;
                fridge.Fridges  = await fridgeRepository.GetUserProducts(user);

                return(View("Fridge", fridge));
            }

            Fridge productInFridge = await fridgeRepository.FindAsync(f => f.Product.Id == fridge.Id && f.User.Id == user.Id);

            if (productInFridge != null)
            {
                productInFridge.Quantity = (int)fridge.Quantity;
                fridgeRepository.Update(productInFridge);
            }
            else
            {
                Product product = await productRepository.FindAsync(p => p.Id == fridge.Id);

                fridgeRepository.Add(new Fridge {
                    Product = product, User = user, Quantity = (int)fridge.Quantity
                });
            }

            return(RedirectToAction("Fridge"));
        }
Esempio n. 11
0
        public void AddProductToFridgeIsNullProtected()
        {
            fridgeRepositoryMock.Setup(fr => fr.GetFridge()).
            Returns(new Fridge
            {
                FridgeProducts = new List <FridgeProduct>()
            });

            FridgeViewModel vm = new FridgeViewModel(fridgeRepositoryMock.Object,
                                                     productsRepositoryMock.Object,
                                                     eventAggregatorMock.Object);

            vm.LoadDataCommand.Execute(null);

            int countBefore = vm.FridgeLookups.Count;

            vm.SelectedProduct = null;
            int countAfter = vm.FridgeLookups.Count;

            Assert.Equal(countBefore, countAfter);
        }
Esempio n. 12
0
        public void AddProductToFridgeFromSearchbox()
        {
            var id = Guid.NewGuid();

            fridgeRepositoryMock.Setup(fr => fr.GetFridge()).
            Returns(new Fridge
            {
                FridgeProducts = new List <FridgeProduct>()
            });

            FridgeViewModel vm = new FridgeViewModel(fridgeRepositoryMock.Object,
                                                     productsRepositoryMock.Object,
                                                     eventAggregatorMock.Object);

            vm.LoadDataCommand.Execute(null);
            vm.SelectedSearchBoxProduct = new Product {
                Id = id
            };
            Assert.Empty(vm.FridgeLookups);
            vm.AddFromSearchBoxCommand.Execute(null);
            Assert.Single(vm.FridgeLookups);
        }
Esempio n. 13
0
        public void AddingExistingProductToFridgeHasNoEffect()
        {
            var id = Guid.NewGuid();

            FridgeViewModel vm = new FridgeViewModel(fridgeRepositoryMock.Object,
                                                     productsRepositoryMock.Object,
                                                     eventAggregatorMock.Object);

            vm.LoadDataCommand.Execute(null);

            vm.FridgeLookups.Add(new FridgeProductLookup {
                ProductId = id
            });
            int countBefore = vm.FridgeLookups.Count;

            vm.SelectedProduct = new Product {
                Id = id
            };
            int countAfter = vm.FridgeLookups.Count;

            Assert.Equal(countBefore, countAfter);
        }
Esempio n. 14
0
        public void AfterSelectionOfNewProductItsAddedToFridge()
        {
            fridgeRepositoryMock.Setup(fr => fr.GetFridge()).
            Returns(new Fridge
            {
                FridgeProducts = new List <FridgeProduct>()
            });

            FridgeViewModel vm = new FridgeViewModel(fridgeRepositoryMock.Object,
                                                     productsRepositoryMock.Object,
                                                     eventAggregatorMock.Object);

            vm.LoadDataCommand.Execute(null);

            int countBefore = vm.FridgeLookups.Count;

            vm.SelectedProduct = new Product {
                Id = Guid.NewGuid()
            };
            int countAfter = vm.FridgeLookups.Count;

            Assert.Equal(0, countBefore);
            Assert.Equal(1, countAfter);
        }