public async Task UpdateOption_DoesNotExist() { //Arrange //Setup product repository var productRepository = new Mock <IAsyncRepository <ProductAggregate.Product> >(); //Setup product options repository var productOptionRepository = new Mock <IAsyncRepository <ProductAggregate.ProductOption> >(); productOptionRepository.Setup(repo => repo.GetByIdAsync(It.IsAny <Guid>())) .ReturnsAsync(MockObjects.ProductOption.GetProductOption_Empty()) .Verifiable(); productOptionRepository.Setup(repo => repo.UpdateAsync(It.IsAny <ProductAggregate.ProductOption>())) .Verifiable(); var controlller = new ProductOptionsController(productRepository.Object, productOptionRepository.Object); //Act var productOptionDTO = MockObjects.ProductOption.GetProductOptionDTO(); var productGuid = new Guid(); var result = await controlller.UpdateOptionAsync(productGuid, productOptionDTO); //Assert var notFoundResult = result as NotFoundResult; productRepository.Verify(); productRepository.VerifyNoOtherCalls(); Assert.NotNull(notFoundResult); Assert.Equal(StatusCodes.Status404NotFound, notFoundResult.StatusCode); }
public async Task UpdateOption_Exists() { //Arrange //Setup product repository var productRepository = new Mock <IAsyncRepository <ProductAggregate.Product> >(); //Setup product options repository var productOptionRepository = new Mock <IAsyncRepository <ProductAggregate.ProductOption> >(); productOptionRepository.Setup(repo => repo.GetByIdAsync(It.IsAny <Guid>())) .ReturnsAsync(MockObjects.ProductOption.GetProductOption()) .Verifiable(); productOptionRepository.Setup(repo => repo.UpdateAsync(It.IsAny <ProductAggregate.ProductOption>())) .Verifiable(); var controlller = new ProductOptionsController(productRepository.Object, productOptionRepository.Object); //Act var productOptionDTO = MockObjects.ProductOption.GetProductOptionDTO(); var productGuid = new Guid(); var result = await controlller.UpdateOptionAsync(productGuid, productOptionDTO); var createdResult = result as CreatedResult; var productOption = createdResult.Value as Messages.ProductOption; //Assert productRepository.Verify(); productRepository.VerifyNoOtherCalls(); Assert.NotNull(createdResult); Assert.NotNull(productOption); Assert.NotNull(productOption.Id); Assert.Equal(productOptionDTO.Name, productOption.Name); Assert.Equal(productOptionDTO.Description, productOption.Description); Assert.Equal(StatusCodes.Status201Created, createdResult.StatusCode); }