예제 #1
0
        public void Create_returns_ViewResult(
            [NoAutoProperties] MoviesController sut)
        {
            ActionResult actual = sut.Create();

            actual.Should().BeOfType <ViewResult>();
        }
예제 #2
0
        public async Task given_services_returns_success_then_Create_awaits_resource_creation(
            CreateMovieViewModel model,
            ISendCreateMovieCommandService serviceStub,
            IResourceAwaiter awaiterSpy,
            Success <MovieLocation> success,
            [NoAutoProperties] MoviesController sut)
        {
            // Arrange
            Mock.Get(serviceStub)
            .Setup(
                x =>
                x.SendCreateMovieCommand(It.Is <CreateNewMovie>(
                                             p =>
                                             p.Title == model.Title)))
            .ReturnsAsync(success);

            // Act
            ActionResult actual = await
                                  sut.Create(model, serviceStub, awaiterSpy);

            // Assert
            Uri location = success.Value.Uri;

            Mock.Get(awaiterSpy).Verify(x => x.AwaitResource(location));
        }
예제 #3
0
        public void Create_sets_model_correctly(
            [NoAutoProperties] MoviesController sut)
        {
            var result = (ViewResult)sut.Create();

            object actual = result.Model;

            actual.Should().BeOfType <CreateMovieViewModel>();
            actual.Should().BeEquivalentTo(new { Title = string.Empty });
        }
예제 #4
0
        public async Task given_service_returns_error_then_Create_adds_model_error(
            CreateMovieViewModel model,
            ISendCreateMovieCommandService serviceStub,
            IResourceAwaiter awaiterDummy,
            Error <MovieLocation> error,
            [NoAutoProperties] MoviesController sut)
        {
            // Arrange
            Mock.Get(serviceStub)
            .Setup(
                x =>
                x.SendCreateMovieCommand(It.IsAny <CreateNewMovie>()))
            .ReturnsAsync(error);

            // Act
            await sut.Create(model, serviceStub, awaiterDummy);

            // Assert
            ModelStateEntry state = sut.ModelState[string.Empty];

            state.Errors.Should().Contain(e => e.ErrorMessage == error.Message);
        }
예제 #5
0
        public async Task given_service_returns_error_then_Create_returns_ViewResult(
            CreateMovieViewModel model,
            ISendCreateMovieCommandService serviceStub,
            IResourceAwaiter awaiterDummy,
            Error <MovieLocation> error,
            [NoAutoProperties] MoviesController sut)
        {
            // Arrange
            Mock.Get(serviceStub)
            .Setup(
                x =>
                x.SendCreateMovieCommand(It.IsAny <CreateNewMovie>()))
            .ReturnsAsync(error);

            // Act
            ActionResult actual = await
                                  sut.Create(model, serviceStub, awaiterDummy);

            // Assert
            actual.Should().BeOfType <ViewResult>();
            actual.As <ViewResult>().Model.Should().BeSameAs(model);
        }
예제 #6
0
        public async Task given_service_returns_success_then_Create_returns_RedirectToActionResult(
            CreateMovieViewModel model,
            ISendCreateMovieCommandService serviceStub,
            IResourceAwaiter awaiterDummy,
            Success <MovieLocation> success,
            [NoAutoProperties] MoviesController sut)
        {
            // Arrange
            Mock.Get(serviceStub)
            .Setup(
                x =>
                x.SendCreateMovieCommand(It.Is <CreateNewMovie>(
                                             p =>
                                             p.Title == model.Title)))
            .ReturnsAsync(success);

            // Act
            ActionResult actual = await
                                  sut.Create(model, serviceStub, awaiterDummy);

            // Assert
            actual.Should().BeOfType <RedirectToActionResult>();
            actual.As <RedirectToActionResult>().ActionName.Should().Be("Index");
        }