Beispiel #1
0
        public void AddSize(DTOSize size)
        {
            var domainSize = new Size(size.Id, this);

            domainSize.UpdateSize(size);
            sizes.Add(domainSize);
        }
Beispiel #2
0
        protected override void OnOkClick()
        {
            Money price = new Money(decimal.Parse(Price));
            Size  size  = new Size(id, Name, price, position);

            OnConfirm(size);
        }
 public void DeleteSize(DTOSize size)
 {
     if (SizeListChanged != null)
     {
         SizeListChanged.Invoke(this, new SizeListChangedEventArgs(Sizes));
     }
 }
 public List <Ingredient> GetIngredientList(Size size)
 {
     return(new List <Ingredient>()
     {
         new Ingredient(1, 1, size, new Consumable(1, "1", 1))
     });
 }
Beispiel #5
0
        public void UpdateSizesTestWorks()
        {
            var position    = Position.Create(new DTOPosition(1, "1", "1"));
            var consumables = new List <Consumable>()
            {
                new Consumable(1)
            };
            var size           = new DTOSize(1, "size1", new Money(1), new DTOPosition(1, "1", "1"));
            var ingredientList = new List <DTOIngredient>()
            {
                new DTOIngredient(1, 0, size, new DTO.Consumable(1, "water", 0))
            };

            size.Ingredients = ingredientList.ToImmutableList();
            var domainSize       = new SizeStub(1, position, "size1");
            var domainIngredient = new Ingredient(1, domainSize, new ConsumableStub(1, "water"));
            var sizes            = new List <DTOSize> {
                size
            };

            position.UpdateSizes(sizes, consumables);

            Assert.AreEqual(domainSize, position.Sizes[0]);
            Assert.AreEqual(domainIngredient, position.Sizes[0].Ingredients[0]);
        }
        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 GetIngredient()
        {
            var facade = new PositionListFacade(new PositionListStub(), new SizeListStub(), new IngredientListStub());
            var size   = new Size(1, "size1", new Money(1), new Position(1, "1", "1"));
            var list   = facade.GetIngredientList(size);

            Assert.AreEqual(new Ingredient(1, 1, size, new Consumable(1, "1", 1)), list[0]);
        }
Beispiel #8
0
            public void UpdateSize(Size size)
            {
                var updatingSize = Sizes.Find(p => p.Id == size.Id);
                var index        = Sizes.IndexOf(updatingSize);

                Sizes[index] = size;
                SizeListChanged?.Invoke(this, new SizeListChangedEventArgs(Sizes, null));
            }
        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 AddSizeWorks()
        {
            var facade = new PositionListFacade(new PositionListStub(), new SizeListStub(), new IngredientListStub());
            var size   = new Size(1, "1", new Money(1), new Position(1, "1", "1"));
            var list   = facade.AddSize(size);

            Assert.AreEqual(size, list[0]);
        }
Beispiel #11
0
        public void DeleteSizeWorks()
        {
            var position = Position.Create(new DTOPosition(1, "1", "1"));
            var dtoSize  = new DTOSize(1, "size1", new Money(1), new DTOPosition(1, "1", "1"));

            position.AddSize(dtoSize);
            position.DeleteSize(dtoSize);
            Assert.AreEqual(0, position.Sizes.Count);
        }
Beispiel #12
0
        public void AddSizeWorks()
        {
            var position = Position.Create(new DTOPosition(1, "1", "1"));
            var dtoSize  = new DTOSize(1, "size1", new Money(1), new DTOPosition(1, "1", "1"));
            var size     = new SizeStub(1, position, "size1");

            position.AddSize(dtoSize);
            Assert.AreEqual(size, position.Sizes[0]);
        }
Beispiel #13
0
 public static bool DoesSizeExist(DTOSize size, ICollection <DTOSize> sizes, out string error)
 {
     if (sizes.Any(p => p.Id == size.Id))
     {
         error = Texts.Instance.SizeAlreadyExists(size.Name);
         return(true);
     }
     error = Texts.Instance.SizeCannotBeFound(size.Name);
     return(false);
 }
Beispiel #14
0
 public static bool DoesSizeNameExist(DTOSize size, ICollection <DTOSize> sizes, out string error)
 {
     if (sizes.Any(p => p.Name == size.Name && p.Id != size.Id))
     {
         error = Texts.Instance.NameIsAlreadyTaken(size.Name);
         return(true);
     }
     error = null;
     return(false);
 }
Beispiel #15
0
        public void UpdateSizeWorks()
        {
            var position = Position.Create(new DTOPosition(1, "1", "1"));
            var dtoSize1 = new DTOSize(1, "size1", new Money(1), new DTOPosition(1, "1", "1"));

            position.AddSize(dtoSize1);
            var dtoSize2 = new DTOSize(1, "size2", new Money(1), new DTOPosition(1, "1", "1"));

            position.UpdateSize(dtoSize2);
            Assert.AreEqual("size2", position.Sizes[0].Name);
        }
        public void CantAddSizeToNonExistingPosition()
        {
            var    size              = new DTOSize(3, "1", new Money(1), new DTOPosition(2, "2", "2"));
            var    sizeListStub      = new SizeListStub();
            var    sizeListValidator = new SizeListValidator(sizeListStub);
            string error             = null;
            EventHandler <SizeListChangedEventArgs> handler = (sender, e) => error = e.Error;

            sizeListValidator.SizeListChanged += handler;
            sizeListValidator.AddSize(size);
        }
        public void DeleteSize(DTOSize size)
        {
            string error;

            if (!Size.DoesSizeExist(size, GetSizeList(size.Position), out error))
            {
                ThrowError(size, error);
                return;
            }
            sizeListFeedback.DeleteSize(size);
        }
        public void CantUpdateToExistingName()
        {
            var    size              = new DTOSize(2, "1", new Money(1), new DTOPosition(1, "1", "1"));
            var    sizeListStub      = new SizeListStub();
            var    sizeListValidator = new SizeListValidator(sizeListStub);
            string error             = null;
            EventHandler <SizeListChangedEventArgs> handler = (sender, e) => error = e.Error;

            sizeListValidator.SizeListChanged += handler;
            sizeListValidator.UpdateSize(size);
            Assert.AreEqual("Name 1 is already taken", error);
        }
Beispiel #19
0
        public void ValidateSizesReturnsError_IfPositionId_DoesntMach()
        {
            var position = Position.Create(new DTOPosition(1, "1", "1"));
            var size     = new DTOSize(1, "Name", new Money(1), new DTOPosition(2, "2", "2"));
            var sizes    = new List <DTOSize>()
            {
                size
            };

            position.ValidateSizes(sizes, out var error);
            Assert.AreEqual("Size Name corresponds to another position /n", error);
        }
        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]);
        }
        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 CantRepeatSizeName_withAddMethod()
        {
            var    size              = new DTOSize(3, "1", new Money(1), new DTOPosition(1, "1", "1"));
            var    sizeListStub      = new SizeListStub();
            var    sizeListValidator = new SizeListValidator(sizeListStub);
            string error             = null;
            EventHandler <SizeListChangedEventArgs> handler = (sender, e) => error = e.Error;

            sizeListValidator.SizeListChanged += handler;
            sizeListValidator.AddSize(size);
            Assert.AreEqual("Name 1 is already taken", error);
        }
        public void ReraiseEventOfDependency()
        {
            var  size              = new DTOSize(3, "3", new Money(1), new DTOPosition(1, "1", "1"));
            var  sizeListStub      = new SizeListStub();
            var  sizeListValidator = new SizeListValidator(sizeListStub);
            bool invoked           = false;
            EventHandler <SizeListChangedEventArgs> handler = (sender, e) => invoked = true;

            sizeListValidator.SizeListChanged += handler;
            sizeListValidator.AddSize(size);
            Assert.IsTrue(invoked);
        }
        public void DeleteNonExistingSizeReturnsError()
        {
            var    size              = new DTOSize(3, "1", new Money(1), new DTOPosition(1, "1", "1"));
            var    sizeListStub      = new SizeListStub();
            var    sizeListValidator = new SizeListValidator(sizeListStub);
            string error             = null;
            EventHandler <SizeListChangedEventArgs> handler = (sender, e) => error = e.Error;

            sizeListValidator.SizeListChanged += handler;
            sizeListValidator.DeleteSize(size);
            Assert.AreEqual("Size 1 cannot be found", error);
        }
        public void CanUpdateMoneyOnly()
        {
            var    size              = new DTOSize(1, "1", new Money(2), new DTOPosition(1, "1", "1"));
            var    sizeListStub      = new SizeListStub();
            var    sizeListValidator = new SizeListValidator(sizeListStub);
            string error             = null;
            EventHandler <SizeListChangedEventArgs> handler = (sender, e) => error = e.Error;

            sizeListValidator.SizeListChanged += handler;
            sizeListValidator.UpdateSize(size);
            Assert.IsNull(error);
        }
        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 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);
        }
Beispiel #28
0
        public void AddSize(DTOSize size)
        {
            var position = positions.First(p => p.Id == size.Position.Id);
            var id       = GetNewSizeId(size.Id);

            position.AddSize(new DTOSize(id, size.Name, size.Price, size.Position));
            var ingredientList = position.Sizes[0].Ingredients.ToList();

            foreach (var ingredient in ingredientList)
            {
                position.Sizes.First(p => p.Id == id).AddIngredient(new DTOIngredient(GetNewIngredientId(0), 0, new DTOSize(id, size.Name, size.Price, position.DTO), ingredient.Consumable.DTO), consumables);
            }
        }
        public void IdDoesntChanged()
        {
            var  position     = new Position(1, "1", "1");
            var  size         = new Size(1, "1", new Money(1), position);
            var  viewModel    = new SizeDialogViewModel(size);
            Size returnedSize = null;
            EventHandler <DialogCloseRequestedEventArgs> handler = (sender, e) => returnedSize = (Size)e.Value;

            viewModel.CloseRequested += handler;
            viewModel.OkCommand.Execute(null);

            Assert.AreEqual(size, returnedSize);
        }
        public void UpdateSizeMethod_InvokesDependencyAddSizeMethod_IfSizePassesValidation()
        {
            var  size         = new DTOSize(1, "3", new Money(1), new DTOPosition(1, "1", "1"));
            var  sizeListStub = new SizeListStub();
            bool invoked      = false;
            EventHandler <SizeListChangedEventArgs> handler = (sender, e) => invoked = true;

            sizeListStub.SizeListChanged += handler;
            var sizeListValidator = new SizeListValidator(sizeListStub);

            sizeListValidator.UpdateSize(size);
            Assert.IsTrue(invoked);
        }