public void OnceSellByDateIsLessThanZero_ThenQualityDropsToZero() { itemUnderTest.Quality = 4; itemUnderTest.SellIn = -1; var rule1 = new DegredationRule { DegredationValue = -2, SellInThreshold = 10 }; itemUnderTest.DegredationRules.Add(rule1); var rule2 = new DegredationRule { DegredationValue = -3, SellInThreshold = 5 }; itemUnderTest.DegredationRules.Add(rule2); var rule3 = new DegredationRule { DegredationValue = 0, DegredationType = DegredationType.Absolute, SellInThreshold = -1 }; itemUnderTest.DegredationRules.Add(rule3); itemProcessor = new ItemProcessor(new List <IItem>() { itemUnderTest }); itemProcessor.ProcessItems(); Assert.Equal(0, itemUnderTest.Quality); }
public void WhenThereAreThreeDaysOrLess_ThenQualityIncreasesByThree() { itemUnderTest.Quality = 4; itemUnderTest.SellIn = 3; var rule1 = new DegredationRule { DegredationValue = -2, SellInThreshold = 10 }; itemUnderTest.DegredationRules.Add(rule1); var rule2 = new DegredationRule { DegredationValue = -3, SellInThreshold = 5 }; itemUnderTest.DegredationRules.Add(rule2); var rule3 = new DegredationRule { DegredationValue = 0, DegredationType = DegredationType.Absolute, SellInThreshold = -1 }; itemUnderTest.DegredationRules.Add(rule3); itemProcessor = new ItemProcessor(new List <IItem>() { itemUnderTest }); itemProcessor.ProcessItems(); Assert.Equal(7, itemUnderTest.Quality); }