Exemplo n.º 1
0
        public async Task PostMovieAsync_Success_Test()
        {
            // Arrange
            var mediator = new Mock <IMediator>();

            var command = new PostMovieCommand
            {
                Title          = "Platoon",
                Year           = 1986,
                Price          = 5f,
                AgeRestriction = 18
            };

            mediator.Setup(m => m.Send(It.IsAny <PostMovieCommand>(),
                                       It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(new PostMovieSuccessResponse(command.Title)));

            var controller = new MoviesController(mediator.Object, TestHelper.Mapper);

            // Act
            var response = await controller.PostMovieAsync(command);

            // Assert
            response.Should().NotBeNull();
            var objectResult = response as ObjectResult;

            objectResult?.StatusCode.Should().Be(200);
        }
Exemplo n.º 2
0
        public async Task <IActionResult> PostMovieAsync(PostMovieCommand command)
        {
            if (command.Year < 1888)
            {
                return(BadRequest(new InvalidYearResponse()));
            }

            if (command.Price <= 0)
            {
                return(BadRequest(new InvalidPriceResponse()));
            }

            if (command.AgeRestriction <= 0)
            {
                return(BadRequest(new InvalidAgeRestrictionResponse()));
            }

            var response = await _mediator.Send(command);

            return(Ok(response));
        }
Exemplo n.º 3
0
        public async Task PostMovieAsync_BadRequest_Test()
        {
            // Arrange
            var mediator = new Mock <IMediator>();

            var command = new PostMovieCommand
            {
                Title          = "Platoon",
                Year           = 1986,
                Price          = -5f,
                AgeRestriction = 18
            };

            var controller = new MoviesController(mediator.Object, TestHelper.Mapper);

            // Act
            var response = await controller.PostMovieAsync(command);

            // Assert
            response.Should().NotBeNull();
            var objectResult = response as ObjectResult;

            objectResult?.StatusCode.Should().Be(400);
        }