public void ServiceTaxTest()
        {
            var serviceTax = 12.5;
            Func <double, double> lambda = SuperMarket.CalculateServiceTax(serviceTax);

            var totalWithServiceTax = lambda(1500);

            Assert.That(totalWithServiceTax, Is.EqualTo(1687.5));
        }
        public void GivenALisOfItemHolds_WhenCalculateTotalCostCalled_ThenReturnsTotalCostWithSeviceTaxApplied()
        {
            // Arrange
            var items = new List <ItemHolder>()
            {
                new ItemHolder("1", 10, 50),
                new ItemHolder("2", 1, 500),
                new ItemHolder("3", 5, 100)
            };

            Func <List <ItemHolder>, double> totalCalculator = SuperMarket.CalculateTotalCost;
            var costCalculator = totalCalculator.AndThen(SuperMarket.CalculateServiceTax(12.5));

            // Act
            var totalCost = costCalculator(items);

            // Assert
            Assert.That(totalCost, Is.EqualTo(1687.5));
        }