public void ProductExists_ShouldUpdateTheProduct()
        {
            // Arrange
            var repository = GetEmptyProductRepository();
            var sut        = new UpdateUseCase(repository);

            var createUseCase  = new CreateUseCase(repository);
            var getByIdUseCase = new GetByIdUseCase(repository);

            var id          = Guid.NewGuid();
            var createInput = new CreateInput {
                Id = id, Name = "Name", Description = "Description"
            };
            var UpdateInput = new UpdateInput {
                Id = id, Name = "Name", Description = "Description"
            };

            createUseCase.Execute(createInput);

            // Act
            sut.Execute(UpdateInput);

            var actual = getByIdUseCase.Execute(id);

            // Assert
            actual.Id
            .Should()
            .Be(id);
        }
예제 #2
0
    public async Task HandleAsync_ShouldCreateRequest()
    {
        // Arrange
        var repositoryMock = new Mock <IRepository>();
        var sut            = new CreateUseCase(repositoryMock.Object);

        // Act
        await sut.HandleAsync(new CreateRequest());

        // Assert
        repositoryMock.Verify(x => x.CreateAsync(It.IsAny <Aggregate>()), Times.Once);
    }
    public async Task Test_Create()
    {
        var repositoryMock = new Mock <IRepository>();

        repositoryMock
        .Setup(repo => repo.CreateAsync(It.IsAny <Aggregate>()))
        .Returns(Task.CompletedTask);
        var useCase = new CreateUseCase(repositoryMock.Object);
        await useCase.HandleAsync(new CreateRequest());

        repositoryMock.VerifyAll();
    }
        public void ValidInput_ShouldCreateTheProduct()
        {
            // Arrange
            var repository = new InMemoryProductRepository();
            var sut        = new CreateUseCase(repository);

            var input = new CreateInput {
                Name = "Name", Description = "Description"
            };

            // Act
            Action action = () => sut.Execute(input);

            // Assert
            action
            .Should()
            .NotThrow();
        }
        public void ProductAlreadyExists_ShouldThrowException()
        {
            // Arrange
            var repository = GetProductRepository();
            var sut        = new CreateUseCase(repository);

            var input = new CreateInput {
                Name = "Name", Description = "Description"
            };

            // Act
            Action action = () => sut.Execute(input);

            // Assert
            action
            .Should()
            .Throw <ProductAlreadyExistsException>();
        }