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); }
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)); } }