Beispiel #1
0
        public void SplitStrategyWithNullValuesTest2()
        {
            //Arrange
            BasePlate[] menuList  = null;
            decimal     menuPrice = 0m;
            bool        expecteMenuCalculation = false;

            BasePlate[] emptyArray = new BasePlate[] { };

            //Act
            MenuCalculationResult menuCalculationResult = this.menuSplitStrategy.ExtractOptimalMenu(menuList, this.SumPrice, menuPrice);

            //Assert
            Assert.NotNull(menuCalculationResult);
            Assert.Equal(expecteMenuCalculation, menuCalculationResult.CalculateAsMenu);
            Assert.Equal(emptyArray, menuCalculationResult.MenuPlates);
            Assert.Equal(emptyArray, menuCalculationResult.RemainingPlates);
        }
Beispiel #2
0
        private decimal CalculatePrices(BasePlate[] plates)
        {
            if (plates == null || plates.Length == 0)
            {
                return(0m);
            }

            if (plates.ShouldBeConsiderForMenu())
            {
                MenuCalculationResult calculationResult = this.splitStrategyService.ExtractOptimalMenu(plates, this.SumPrice, this.menuPrice);
                if (calculationResult.CalculateAsMenu)
                {
                    return(this.menuPrice + this.CalculatePrices(calculationResult.RemainingPlates));
                }
                return(this.SumPrice(calculationResult.RemainingPlates));
            }
            else
            {
                return(this.SumPrice(plates));
            }
        }