public void SelectsIncreasingRuleWhenSellInBetweenFiveAndOne() { var services = this.SetupRuleServices(); var deprecationService = new DeprecationService( services.DecreasingService.Object, services.IncreasingService.Object, services.ZeroService.Object); var stockItem = this.TestStockItem; stockItem.SellIn = 3; var result = deprecationService.DeprecateItem(stockItem); Assert.Equal("Food 2 0", result); services.DecreasingService .Verify(service => service.RunRule(It.IsAny <DecreasingDeprecationRule>(), It.IsAny <StockItem>()), Times.Never); services.IncreasingService .Verify(service => service.RunRule(It.IsAny <IncreasingDeprecationRule>(), It.IsAny <StockItem>()), Times.Once); services.ZeroService .Verify(service => service.RunRule(It.IsAny <ZeroDeprecationRule>(), It.IsAny <StockItem>()), Times.Never); }
public void SelectsNoRuleWhenTypeHasNoRules() { var services = this.SetupRuleServices(); var deprecationService = new DeprecationService( services.DecreasingService.Object, services.IncreasingService.Object, services.ZeroService.Object); var stockItem = this.TestStockItem; stockItem.SellIn = 0; stockItem.StockType.DeprecationRules = null; var result = deprecationService.DeprecateItem(stockItem); Assert.Equal("Food 0 0", result); services.DecreasingService .Verify(service => service.RunRule(It.IsAny <DecreasingDeprecationRule>(), It.IsAny <StockItem>()), Times.Never); services.IncreasingService .Verify(service => service.RunRule(It.IsAny <IncreasingDeprecationRule>(), It.IsAny <StockItem>()), Times.Never); services.ZeroService .Verify(service => service.RunRule(It.IsAny <ZeroDeprecationRule>(), It.IsAny <StockItem>()), Times.Never); }
public void ReturnsNoSuchItemWhereNoType() { var services = this.SetupRuleServices(); var deprecationService = new DeprecationService( services.DecreasingService.Object, services.IncreasingService.Object, services.ZeroService.Object); var stockItem = this.TestStockItem; stockItem.SellIn = 8; stockItem.Quality = 25; stockItem.StockType = null; var result = deprecationService.DeprecateItem(stockItem); Assert.Equal("NO SUCH ITEM", result); }
public void SetsQualityToFiftyIfGreaterThanFifty() { var services = this.SetupRuleServices(); var deprecationService = new DeprecationService( services.DecreasingService.Object, services.IncreasingService.Object, services.ZeroService.Object); var stockItem = this.TestStockItem; stockItem.SellIn = 8; stockItem.Quality = 55; var result = deprecationService.DeprecateItem(stockItem); Assert.Equal("Food 7 50", result); Assert.Equal(50, stockItem.Quality); }
public void SetsQualityToZeroIfNegative() { var services = this.SetupRuleServices(); var deprecationService = new DeprecationService( services.DecreasingService.Object, services.IncreasingService.Object, services.ZeroService.Object); var stockItem = this.TestStockItem; stockItem.SellIn = 8; stockItem.Quality = -2; var result = deprecationService.DeprecateItem(stockItem); Assert.Equal("Food 7 0", result); Assert.Equal(0, stockItem.Quality); }