When_a_list_of_shopping_items_are_passed_in_with_a_non_existant_item__Then_they_are_converted_to_checkout_items_and_an_error_raised( int amountOfNonExistantItems) { // Arrange var testSetWithNonExistantItem = _basicTestSetAsStringArray; for (var i = 0; i < amountOfNonExistantItems; i++) { testSetWithNonExistantItem = testSetWithNonExistantItem.Add(_nonExistantItem + " - " + i); } var mockDb = new Mock <IDatabase>(); mockDb.Setup(o => o.CheckoutItems).Returns(_dbItems); var mockDateRepo = new Mock <IDateRepository>(); mockDateRepo.Setup(o => o.UtcNow()).Returns(_nowTimestamp); var sut = new TillRepository(mockDb.Object, mockDateRepo.Object); // Act var result = sut.ProcessCheckoutItems(testSetWithNonExistantItem); // Assert Assert.Equal(_basicTestSetAsCheckoutItems, result.CheckoutItems); Assert.Equal(result.Errors.Count, actual: amountOfNonExistantItems); for (var i = 0; i < result.Errors.Count(); i++) { var errorMessage = result.Errors.First(o => o.Value == _nonExistantItem + " - " + i); Assert.Equal("Item not found in DB", errorMessage.Key); Assert.Equal(_nonExistantItem + " - " + i, errorMessage.Value); } }
public void When_a_basket_is_submitted__Then_the_total_is_correct_when_single_offer_applied() { // Arrange var mockDb = new Mock <IDatabase>(); mockDb.Setup(o => o.CheckoutItems).Returns(_dbItems); var mockDateRepo = new Mock <IDateRepository>(); mockDateRepo.Setup(o => o.UtcNow()).Returns(_nowTimestamp); var sut = new TillRepository(mockDb.Object, mockDateRepo.Object); // Act var result = sut.ProcessCheckoutItems(_basicTestSetAsStringArray); // Assert Assert.Equal(_basicTestSetBasketValueBeforeOffers, result.Total); }
When_a_list_of_shopping_items_that_are_all_good_are_passed_in__Then_they_are_converted_to_checkout_items() { // Arrange var mockDb = new Mock <IDatabase>(); mockDb.Setup(o => o.CheckoutItems).Returns(_dbItems); var mockDateRepo = new Mock <IDateRepository>(); mockDateRepo.Setup(o => o.UtcNow()).Returns(_nowTimestamp); var sut = new TillRepository(mockDb.Object, mockDateRepo.Object); // Act var result = sut.ProcessCheckoutItems(_basicTestSetAsStringArray); // Assert Assert.Equal(_basicTestSetAsCheckoutItems, result.CheckoutItems); }
public void When_an_empty_list_of_shopping_items_are_passed_in__Then_the_converted_list_is_empty() { // Arrange var mockDb = new Mock <IDatabase>(); mockDb.Setup(o => o.CheckoutItems).Returns(_dbItems); var mockDateRepo = new Mock <IDateRepository>(); mockDateRepo.Setup(o => o.UtcNow()).Returns(_nowTimestamp); var sut = new TillRepository(mockDb.Object, mockDateRepo.Object); // Act var result = sut.ProcessCheckoutItems(_emptyArray); // Assert Assert.Equal(result.CheckoutItems.Count, actual: 0); Assert.Equal(result.Errors.Count, actual: 0); }