public void IngredientsUpdates_Works()
        {
            var dataHolder = new PositionListDataHolder(new PositionRepositoryEFStub());
            var facade     = new PositionListFacade(new PositionListValidator(new PositionListFeedback(dataHolder)),
                                                    new SizeListValidator(new SizeListFeedback(dataHolder)),
                                                    new IngredientListValidator(new IngredientListFeedback(dataHolder)));

            var viewModel = new PositionListViewModelStub(facade);
            var position  = new Position(1, "1", "1");
            var positions = facade.AddPosition(position);

            viewModel.SelectedPosition = positions[0];
            var size = new Size(0, "1", new Money(1), viewModel.SelectedPosition);

            facade.AddSize(size);
            var consumable = new Consumable(1, "1", 0);

            viewModel.DataGridController.AddRow(consumable);
            Assert.IsNotNull(viewModel.SelectedPosition);
            var row = viewModel.DataGridController.IngredientRows.ToList()[0];

            row.Columns["1"] = 1.0;
            row.EndEdit();
            Assert.AreEqual(1, dataHolder.GetIngredientList(dataHolder.GetSizeList(viewModel.SelectedPosition)[0])[0].Amount);
        }
        public void GetIngredientListReturnsExceptionIfPositionDoesntExists()
        {
            var positionList = new PositionListDataHolder(new PositionRepositoryStub());

            positionList.LoadPositionList();
            var size           = new DTOSize(1, "size1", new Money(1), new DTOPosition(3, "3", "3"));
            var ingredientList = positionList.GetIngredientList(size);
        }
        public void GetIngredientListWorks()
        {
            var positionList = new PositionListDataHolder(new PositionRepositoryStub());

            positionList.LoadPositionList();
            var size           = new DTOSize(1, "size1", new Money(1), new DTOPosition(1, "1", "1"));
            var ingredientList = positionList.GetIngredientList(size);
            var expected       = new DTOIngredient(1, 1, size, new DTO.Consumable(1, "water", 1));

            Assert.AreEqual(expected, ingredientList[0]);
            Assert.AreEqual(1, ingredientList.Count);
        }
        public void DeleteIngredientWorks()
        {
            var positionList = new PositionListDataHolder(new PositionRepositoryStub());

            positionList.LoadPositionList();
            var ingredient = new DTOIngredient(1, 1, new DTOSize(1, "size1", new Money(1), new DTOPosition(1, "1", "1")),
                                               new DTO.Consumable(1, "water", 1));

            positionList.DeleteIngredient(ingredient);
            var ingredientList = positionList.GetIngredientList(ingredient.Size);

            Assert.AreEqual(0, ingredientList.Count);
        }
        public void UpdateIngredientWorks()
        {
            var positionList = new PositionListDataHolder(new PositionRepositoryStub());

            positionList.LoadPositionList();
            var ingredient1 = new DTOIngredient(5, 1, new DTOSize(1, "size1", new Money(1), new DTOPosition(1, "1", "1")),
                                                new DTO.Consumable(1, "water", 1));

            positionList.AddIngredient(ingredient1);
            var ingredient2 = new DTOIngredient(5, 2, new DTOSize(1, "size1", new Money(1), new DTOPosition(1, "1", "1")),
                                                new DTO.Consumable(1, "water", 1));

            positionList.UpdateIngredient(ingredient2);

            var ingredientList = positionList.GetIngredientList(ingredient2.Size);

            Assert.AreEqual(ingredient2, ingredientList[1]);
        }