Пример #1
0
        public void Provide_ItemQualityMultipliableQualityCalculator(ItemQualityMultipliable item)
        {
            //Arrange
            var provider = new ItemQualityCalculatorProvider();

            //Act
            var calculator = provider.Provide(item);

            //Assert
            Assert.Equal(typeof(ItemQualityMultipliableQualityCalculator), calculator.GetType());
        }
Пример #2
0
        private void UpdateItemQuality(ItemQualityMultipliable item, int tick)
        {
            var changedTick = tick;
            var multiplier  = item.QualityMultipliers
                              .Where(e => e.OnSellInReached == null || e.OnSellInReached >= item.SellIn)
                              .OrderByDescending(e => e.OnSellInReached.HasValue)
                              .ThenBy(e => e.OnSellInReached)
                              .FirstOrDefault();

            if (multiplier != null)
            {
                changedTick *= multiplier.Multiplier;
            }

            item.Quality += changedTick;
        }
Пример #3
0
        public void UpdateQuality_ItemQualityMultipliable_IncreasesByTwo()
        {
            //Arrange
            var item = new ItemQualityMultipliable(new QualityTickMultiplier(null, -1))
            {
                Name    = "",
                Quality = 10,
                SellIn  = -1
            };
            var qualityCalculator = new ItemQualityMultipliableQualityCalculator();

            //Act
            qualityCalculator.UpdateQuality(item);

            //Assert
            Assert.Equal(12, item.Quality);
        }