コード例 #1
0
        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();
        }
コード例 #2
0
        public async Task AddProductAsync_GivenProductIsNull_ThenNotificationAdded()
        {
            // Arrange
            var(sut, _, notification) = new ProductServiceMockBuilder()
                                        .WithNullProduct()
                                        .BuildWithMocks();

            // Act
            await sut.AddProductAsync(product : null);

            // Assert
            notification.VerifyAll();
        }
コード例 #3
0
        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();
        }
コード例 #4
0
        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();
        }
コード例 #5
0
        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();
        }
コード例 #6
0
        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();
        }
コード例 #7
0
        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();
        }
コード例 #8
0
        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();
        }
コード例 #9
0
        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();
        }