public async Task DeleteProdctCommandHandlerShouldPass() { var sut = new DeleteProductHandler(_context); var response = await sut.Handle(new DeleteProductCommand { Id = 3 }, CancellationToken.None); response.Should().Be(Unit.Value); }
public static Response DoDeleteProduct(String ID) { if (ID == "") { return(new Response(false, "Product ID Cannot Be Empty")); } Response response = DeleteProductHandler.DoDeleteProduct(ID); return(response); }
public async Task DeleteProductCommandHandlerShouldThrowNotFoundException() { var sut = new DeleteProductHandler(_context); async Task Act() => await sut.Handle(new DeleteProductCommand { Id = 10 }, CancellationToken.None); var ex = await Record.ExceptionAsync(Act); ex.Should().BeOfType <NotFoundException>(); }
public async Task <ActionResult> Delete([FromServices] DeleteProductHandler handler, Guid Id) { try { var result = (CommandResult)handler.handle(Id); if (!result.Success) { return(BadRequest(result)); } return(Ok(result)); } catch (Exception e) { return(BadRequest(e)); } }
public async Task DeleteProductWhenDbIsEmpty() { var request = new DeleteProductCommand() { Id = Guid.NewGuid() }; using var context = new ProductContextTestProvider().GetContext(); var handler = new DeleteProductHandler(context, new ProductMapper()); var productCount = context.Products.Count(); var result = await handler.Handle(request); var productCountAfterOperation = context.Products.Count(); productCount.ShouldBe(0); productCountAfterOperation.ShouldBe(0); result.ShouldBe(0); }
public void AddsProductToRepository_RaisesIntegrationEvent() { var product = new Domain.Product(Id, "Product Name", null); var repository = new Mock <IProductRepository>(MockBehavior.Strict); repository.Setup(r => r.GetAsync(product.Id)).Returns(Task.FromResult(product)).Verifiable(); repository.Setup(r => r.DeleteAsync(product)).Returns(Task.CompletedTask).Verifiable(); repository.Setup(r => r.SaveChanges()).Returns(Task.CompletedTask).Verifiable(); var busPublisher = new Mock <IBusPublisher>(MockBehavior.Strict); busPublisher.Setup(p => p.Publish <IProductDeleted>(It.Is <IProductDeleted>(e => ValidateEquality(e)))).Returns(Task.CompletedTask).Verifiable(); var handler = new DeleteProductHandler(repository.Object, busPublisher.Object); var result = handler.HandleAsync(Cmd, new Mock <ICorrelationContext>().Object).GetAwaiter().GetResult(); Assert.IsTrue(result.Successful); repository.Verify(); busPublisher.Verify(); }
public async Task DeleteProductWhichIsNotInDb() { var request = new DeleteProductCommand() { Id = Guid.NewGuid() }; var contextProvider = new ProductContextTestProvider(); using var context = contextProvider.GetContext(); contextProvider.AddProduct(new Database.Entities.Product(Guid.NewGuid(), "Name1", "Number1", 11, 22)); var handler = new DeleteProductHandler(context, new ProductMapper()); var productCount = context.Products.Count(); var result = await handler.Handle(request); var productCountAfterOperation = context.Products.Count(); productCount.ShouldBe(1); productCountAfterOperation.ShouldBe(1); result.ShouldNotBeNull(); result.ShouldBe(0); }
public DeleteProductHandlerTests() { repository = Substitute.For <IProductsRepository>(); handler = new DeleteProductHandler(repository); }
public DeleteProductTests() { _context = ProductCatalogContextFactory.Create(); _handler = new DeleteProductHandler(_context); }