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 GetSizeListReturnsExceptionIfPositionDoesntExists()
        {
            var positionList = new PositionListDataHolder(new PositionRepositoryStub());

            positionList.LoadPositionList();
            var position = new DTOPosition(3, "3", "3");
            var sizeList = positionList.GetSizeList(position);
        }
        public void GetSizeListWorks()
        {
            var positionList = new PositionListDataHolder(new PositionRepositoryStub());

            positionList.LoadPositionList();
            var position = new DTO.Position(1, "1", "1");
            var sizeList = positionList.GetSizeList(position);

            Assert.AreEqual(new DTOSize(1, "size1", new Money(1), position), sizeList[0]);
            Assert.AreEqual(new DTOSize(2, "size2", new Money(1), position), sizeList[1]);
            Assert.AreEqual(2, sizeList.Count);
        }
        public void NewSizeInitializesExistedIngredients()
        {
            var positionList = new PositionListDataHolder(new PositionRepositoryStub());

            positionList.LoadPositionList();
            var size = new DTOSize(5, "size5", new Money(1), new DTOPosition(1, "1", "1"));

            positionList.AddSize(size);
            var sizeList = positionList.GetSizeList(size.Position);

            Assert.AreEqual("water", sizeList[2].Ingredients[0].Consumable.Name);
        }
        public void DeleteSizeWorks()
        {
            var positionList = new PositionListDataHolder(new PositionRepositoryStub());

            positionList.LoadPositionList();
            var size = new DTOSize(2, "size2", new Money(1), new DTOPosition(1, "1", "1"));

            positionList.DeleteSize(size);
            var sizeList = positionList.GetSizeList(size.Position);

            Assert.AreEqual(1, sizeList.Count);
        }
        public void UpdateSizeWork()
        {
            var positionList = new PositionListDataHolder(new PositionRepositoryStub());

            positionList.LoadPositionList();
            var size = new DTOSize(2, "size5", new Money(1), new DTOPosition(1, "1", "1"));

            positionList.UpdateSize(size);
            var sizeList = positionList.GetSizeList(size.Position);

            Assert.AreEqual(size, sizeList[1]);
        }