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 GetByIdUseCase_ItemExists_ShouldReturnTheItem()
        {
            // Arrange
            var repository = new FakeSimpleEntityRepository();
            var presenter  = new FakeGetByIdOutputHandler();

            var sut = new GetByIdUseCase(presenter, repository);

            // Act
            await sut.Execute(Guid.NewGuid());

            // Assert
            presenter.ViewModel
            .Should()
            .BeEquivalentTo(repository.Item);
        }
예제 #3
0
        public void TheProductDoesNotExist_ShouldReturNull()
        {
            // Arrange
            var repository = GetEmptyProductRepository();
            var sut        = new GetByIdUseCase(repository);

            var id = Guid.NewGuid();

            // Act
            var actual = sut.Execute(id);

            // Assert
            actual
            .Should()
            .BeNull();
        }
예제 #4
0
        public void OrderExists_ShouldReturTheExpectedOrder()
        {
            // Arrange
            var repository = GetOrderRepository();
            var sut        = new GetByIdUseCase(repository);

            var orderId = repository.GetAll()
                          .FirstOrDefault().Id;

            // Act
            var actual = sut.Execute(orderId);

            // Assert
            actual.Id
            .Should()
            .Be(orderId);
        }
예제 #5
0
        public async Task GetByIdUseCase_ItemDoesNotExist_ShouldReturnErrorMessage()
        {
            // Arrange
            var repository = new FakeSimpleEntityEmptyListRepository();
            var presenter  = new FakeGetByIdOutputHandler();

            var sut = new GetByIdUseCase(presenter, repository);

            // Act
            await sut.Execute(Guid.NewGuid());

            // Assert
            presenter.ErrorMessage
            .Should()
            .NotBeNull();

            presenter.ViewModel
            .Should()
            .BeNull();
        }
예제 #6
0
        public void ProductExists_ShouldReturnTheExpectedProduct()
        {
            // Arrange
            var repository = GetProductRepository();
            var sut        = new GetByIdUseCase(repository);

            var id = Guid.NewGuid();

            // Act
            var actual = sut.Execute(id);

            // Assert
            actual
            .Should()
            .NotBeNull();

            actual.Name
            .Should()
            .Be("Name");
        }
예제 #7
0
 public void SetUp()
 {
     _mockGateway    = new Mock <IExampleGateway>();
     _classUnderTest = new GetByIdUseCase(_mockGateway.Object);
 }
        public async Task <ActionResult <ResultDto <ProductGetByIdOutputDto> > > GetById(int request)
        {
            await GetByIdUseCase.HandleUseCase(request, GetByIdPresenter);

            return(GetByIdPresenter.Result);
        }
예제 #9
0
 public GetByIdUseCaseTests()
 {
     _mockGateway    = new Mock <IPersonApiGateway>();
     _classUnderTest = new GetByIdUseCase(_mockGateway.Object);
 }