Esempio n. 1
0
        public async Task AddManyProductOptionsAsync_InvalidProductId_ThrowException()
        {
            //Arrange
            var options = new List <ProductOption>()
            {
                new ProductOption()
                {
                    Name        = "6b64c5a8-00f9-4a57-a62b-54198117ef54",
                    Description = "Option 1"
                },
                new ProductOption()
                {
                    Name        = "15601605-3d80-452d-8170-89368bad5f0a",
                    Description = "Option 2"
                }
            };

            var product = new Models.Product()
            {
                Id = "7fb87db7-4c8d-4e19-905d-0d3fb88fb6a4"
            };

            _productRepository.Setup(x => x.GetAsync(It.IsAny <Guid>())).ThrowsAsync(new ProductNotFoundException("Product not found"));


            //Act
            var productOptionService = new ProductOptionService(_logger.Object,
                                                                _productRepository.Object,
                                                                _productOptionRepository.Object);

            //Assert
            Assert.ThrowsAsync <ProductNotFoundException>(async() => await productOptionService.AddManyProductOptionsAsync(product.Id, options));
        }
Esempio n. 2
0
        public async Task AddManyProductOptionsAsync_ValidProductIdAndOptions_ReturnOptions()
        {
            //Arrange
            var options = new List <ProductOption>()
            {
                new ProductOption()
                {
                    Name        = "6b64c5a8-00f9-4a57-a62b-54198117ef54",
                    Description = "Option 1"
                },
                new ProductOption()
                {
                    Name        = "15601605-3d80-452d-8170-89368bad5f0a",
                    Description = "Option 2"
                }
            };

            var product = new Models.Product()
            {
                Id = "7fb87db7-4c8d-4e19-905d-0d3fb88fb6a4"
            };

            _productRepository.Setup(x => x.GetAsync(It.IsAny <Guid>())).ReturnsAsync(product);


            //Act
            var productOptionService = new ProductOptionService(_logger.Object,
                                                                _productRepository.Object,
                                                                _productOptionRepository.Object);

            var result = await productOptionService.AddManyProductOptionsAsync(product.Id, options);

            //Assert
            _productOptionRepository.Verify(x => x.CreateManyAsync(It.IsAny <List <ProductOption> >()), Times.Once);
            Assert.IsNotNull(result);
        }