public void GivenChristmasCrackers_WhenSellinPastChristmas_QualityZero()
        {
            var item = new Item()
            {
                Name = "Christmas Crackers", Quality = 2, SellIn = -1
            };
            var rule = new ChristmasCrackerUpdateRule();

            rule.Update(item);

            item.Quality.Should().Be(0);
        }
        public void GivenChristmasCrackers_WhenUpdated_SellinReducesByOne()
        {
            var item = new Item()
            {
                Name = "Christmas Crackers", Quality = 2, SellIn = 2
            };
            var rule = new ChristmasCrackerUpdateRule();

            rule.Update(item);

            item.SellIn.Should().Be(1);
        }
        public void GivenChristmasCrackers_WhenSellinBetween5And0Days_QualityIncreasesBy3()
        {
            var item = new Item()
            {
                Name = "Christmas Crackers", Quality = 2, SellIn = 3
            };
            var rule = new ChristmasCrackerUpdateRule();

            rule.Update(item);

            item.Quality.Should().Be(5);
        }
        GivenChristmasCrackers_SellIn9_Quality2_WhenUpdated_ThenChristmasCrackers_SellIn8_Quality4_Returned()
        {
            //GIVEN
            var items = new List <Item>()
            {
                new Item()
                {
                    Name = "Christmas Crackers", SellIn = 9, Quality = 2
                }
            };
            var rule = new ChristmasCrackerUpdateRule();

            _inventoryManagementService = new InventoryManagementService(updateRule => rule);
            //WHEN
            var results = _inventoryManagementService.Update(items);
            //THEN
            var result = results.First();

            result.Should().Be("Christmas Crackers 8 4");
        }