public void Constructor_WithNegativeQuantity_ShouldThrowContractException() { // Arrange Func <BasketItem> createBasketItem = () => new BasketItem(1, -1, Pounds.Of(1)); // Assert Assert.Throws <ContractException>(createBasketItem); }
public void Constructor_WithPriceZero_ShouldThrowContractException() { // Arrange Func <BasketItem> createBasketItem = () => new BasketItem(1, 1, Pounds.Of(0)); // Assert Assert.Throws <ContractException>(createBasketItem); }
public void ChangeQuantity_WithNegativeQuantity_ShouldThrowContractException() { // Arrange var basketItem = new BasketItem(1, 2, Pounds.Of(3)); Action changeQuantity = () => basketItem.ChangeQuantity(-1); // Assert Assert.Throws <ContractException>(changeQuantity); }
public void Constructor_WithValidArguments_ShouldInitializeFields() { // Arrange var basketItem = new BasketItem(1, 2, Pounds.Of(3)); // Assert Assert.Equal(1, basketItem.ProductId); Assert.Equal(2, basketItem.Quantity); Assert.Equal(Pounds.Of(3), basketItem.PriceInPounds); }
public void AddItemToBasketAsync_WithNonExistentBasket_ShouldReturnFailure() { // Arrange _basketRepositoryMock.Setup(x => x.GetByIdAsync(It.IsAny<int>())).Returns(Task.FromResult<Basket>(null)); // Act var result = _basketService.AddItemToBasketAsync(1, 1, 1, Pounds.Of(1)).Result; // Assert Assert.True(result.IsFailure); }
public void ChangeQuantity_WithValidQuantity_ShouldChangeQuantity() { // Arrange var basketItem = new BasketItem(1, 2, Pounds.Of(3)); // Act basketItem.ChangeQuantity(4); // Assert Assert.Equal(4, basketItem.Quantity); }
public void OperatorConvertToDecimal_ShouldConvertPoundsToDecimal() { // Arrange var pounds = Pounds.Of(5); // Act decimal value = pounds; // Assert Assert.Equal(5, value); }
public void OperatorMultiplication_ShouldMultiplyAmounts() { // Arrange var pounds = Pounds.Of(2); // Act var result = pounds * 5; // Assert Assert.Equal(Pounds.Of(10), result); }
public void AddItem_WithNonExistentBasketItem_ShouldReturnNewlyCreatedItem() { // Arrange var basket = new Basket(); // Act var item = basket.AddItem(1, 1, Pounds.Of(1)); // Assert Assert.NotNull(item); }
public void AddItem_WithNonExistentBasketItem_ShouldAddItemToList() { // Arrange var basket = new Basket(); // Act basket.AddItem(1, 1, Pounds.Of(1)); // Assert Assert.Equal(1, basket.Items.Count); }
public void OperatorAdd_ShouldAddAmounts() { // Arrange var pounds1 = Pounds.Of(2); var pounds2 = Pounds.Of(3); // Act var result = pounds1 + pounds2; // Assert Assert.Equal(Pounds.Of(5), result); }
public void AddItemToBasketAsync_WithExistentBasket_ShouldReturnSuccess() { // Arrange var basket = new Basket(); _basketRepositoryMock.Setup(x => x.GetByIdAsync(It.IsAny<int>())).Returns(Task.FromResult(basket)); // Act var result = _basketService.AddItemToBasketAsync(1, 1, 1, Pounds.Of(1)).Result; // Assert Assert.True(result.IsSuccess); }
public void AddItemToBasketAsync_WithExistentBasket_ShouldCallUpdateInRepository() { // Arrange var basket = new Basket(); _basketRepositoryMock.Setup(x => x.GetByIdAsync(It.IsAny<int>())).Returns(Task.FromResult(basket)); _basketRepositoryMock.Setup(x => x.UpdateAsync(It.IsAny<Basket>())).Returns(Task.CompletedTask); // Act var result = _basketService.AddItemToBasketAsync(1, 1, 1, Pounds.Of(1)).Result; // Assert _basketRepositoryMock.Verify(x => x.UpdateAsync(basket), Times.Once); }
public void ChangeItemQuantityAsync_WithExistentBasketItem_ShouldCallUpdateInRepository() { // Arrange var basket = new Basket(); basket.AddItem(1, 1, Pounds.Of(1)); var basketItem = basket.Items.First(); basketItem.Id = 1; _basketRepositoryMock.Setup(x => x.GetByUserIdAsync(It.IsAny<string>())).Returns(Task.FromResult(basket)); // Act var result = _basketService.ChangeItemQuantityAsync("user", 1, 2).Result; // Asert _basketRepositoryMock.Verify(x => x.UpdateAsync(basket), Times.Once); }
public void AddItem_WithExistentBasketItem_ShouldUpdateBasketItemQuantity() { // Arrange var basket = new Basket(); basket.AddItem(1, 1, Pounds.Of(1)); // Act basket.AddItem(1, 1, Pounds.Of(1)); // Assert var item = basket.Items.First(); Assert.Equal(2, item.Quantity); }
public void ChangeItemQuantityAsync_WithExistentBasketItem_ShouldReturnSuccess() { // Arrange var basket = new Basket(); basket.AddItem(1, 1, Pounds.Of(1)); var basketItem = basket.Items.First(); basketItem.Id = 1; _basketRepositoryMock.Setup(x => x.GetByUserIdAsync(It.IsAny<string>())).Returns(Task.FromResult(basket)); // Act var result = _basketService.ChangeItemQuantityAsync("user", 1, 2).Result; // Asert Assert.True(result.IsSuccess); }
public void RemoveItem_WithExistentBasketItem_ShouldReturnSucces() { // Arrange var basket = new Basket(); basket.AddItem(1, 1, Pounds.Of(1)); var basketItem = basket.Items.First(); basketItem.Id = 1; // Act var result = basket.RemoveItem(1); // Assert Assert.True(result.IsSuccess); }
public void RemoveItem_WithExistentBasketItem_ShouldReturnRemoveItem() { // Arrange var basket = new Basket(); basket.AddItem(1, 1, Pounds.Of(1)); var basketItem = basket.Items.First(); basketItem.Id = 1; // Act basket.RemoveItem(1); // Assert Assert.Equal(0, basket.Items.Count); }
public void Clear_ShouldClearBasketItemsList() { // Arrange var basket = new Basket(); basket.AddItem(1, 1, Pounds.Of(1)); var basketItem = basket.Items.First(); basketItem.Id = 1; // Act basket.Clear(); // Assert Assert.Equal(0, basket.Items.Count); }