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);
        }
Beispiel #2
0
        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>();
        }
Beispiel #4
0
        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);
        }
Beispiel #6
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);
 }
Beispiel #9
0
 public DeleteProductTests()
 {
     _context = ProductCatalogContextFactory.Create();
     _handler = new DeleteProductHandler(_context);
 }