public async Task AddProductsAsync_GivenListOfProductIsEmpty_ThenNotificationAdded() { // Arrange var(sut, _, notification) = new ProductServiceMockBuilder() .WithNullOrEmptyListOfProducts() .BuildWithMocks(); // Act await sut.AddProductsAsync(products : Array.Empty <ProductModel>()); // Assert notification.VerifyAll(); }
public async Task AddProductAsync_GivenProductIsNull_ThenNotificationAdded() { // Arrange var(sut, _, notification) = new ProductServiceMockBuilder() .WithNullProduct() .BuildWithMocks(); // Act await sut.AddProductAsync(product : null); // Assert notification.VerifyAll(); }
public async Task AddProductsAsync_GivenListOfProducts_ThenProductsAddedWithSuccess(IEnumerable <ProductModel> products) { // Arrange var(sut, productRepository, _) = new ProductServiceMockBuilder() .WithSuccessAddListOfProducts(products) .BuildWithMocks(); // Act await sut.AddProductsAsync(products); // Assert productRepository.VerifyAll(); }
public async Task AddProductAsync_GivenProductModel_ThenProductAddedWithSuccess(ProductModel product) { // Arrange var(sut, productRepository, _) = new ProductServiceMockBuilder() .WithSuccessAddProduct(product) .BuildWithMocks(); // Act await sut.AddProductAsync(product); // Assert productRepository.VerifyAll(); }
public async Task GetProductsAsync_GivenNonexistentProductsWithCategoryType_ThenReturnEmptyListOfProducts(CategoryType category) { // Arrange var(sut, productRepository, _) = new ProductServiceMockBuilder() .WithNonexistentCategoryType(category) .BuildWithMocks(); // Act var resultProduct = await sut.GetProductsByCategoryAsync(category); // Assert resultProduct.Should().BeEmpty(); productRepository.VerifyAll(); }
public async Task GetProductsAsync_GivenExistentProductsWithCategoryType_ThenReturnListOfProducts(CategoryType category) { // Arrange var(sut, productRepository, _) = new ProductServiceMockBuilder() .WithExistentCategoryType(category, out var products) .BuildWithMocks(); // Act var resultProducts = await sut.GetProductsByCategoryAsync(category); // Assert resultProducts.Should().BeEquivalentTo(products); productRepository.VerifyAll(); }
public async Task GetProductAsync_GivenExistentProductId_ThenReturnCorrespondingProduct(Guid productId) { // Arrange var(sut, productRepository, _) = new ProductServiceMockBuilder() .WithExistentProductId(productId, out var product) .BuildWithMocks(); // Act var resultProduct = await sut.GetProductAsync(productId); // Assert resultProduct.Should().BeEquivalentTo(product); productRepository.VerifyAll(); }
public async Task AddProductAsync_GivenAddProductFails_ThenExceptionThrown(IEnumerable <ProductModel> products) { // Arrange var(sut, productRepository, _) = new ProductServiceMockBuilder() .WithFailsAddListOfProducts(products) .BuildWithMocks(); // Act Func <Task> func = async() => await sut.AddProductsAsync(products); // Assert await func.Should().ThrowExactlyAsync <Exception>(); productRepository.VerifyAll(); }
public async Task GetProductAsync_GivenNonexistentProductId_ThenNotificationAddedAndReturnNull(Guid productId) { // Arrange var(sut, productRepository, notification) = new ProductServiceMockBuilder() .WithNonexistentProductId(productId) .BuildWithMocks(); // Act var resultProduct = await sut.GetProductAsync(productId); // Assert resultProduct.Should().BeNull(); productRepository.VerifyAll(); notification.VerifyAll(); }