public async Task AddScreening_sets_route_values_correctly( AddScreeningViewModel model, ISendAddScreeningCommandService serviceStub, IResourceAwaiter awaiterDummy, Success <ScreeningLocation> success, [NoAutoProperties] MoviesController sut) { // Arrange Mock.Get(serviceStub) .Setup( x => x.SendAddScreeningCommand(It.IsAny <AddNewScreening>())) .ReturnsAsync(success); Guid movieId = model.MovieId; // Act dynamic result = await sut.AddScreening(movieId, model, serviceStub, awaiterDummy); // Assert RouteValueDictionary actual = result.RouteValues; actual.Should().Contain("movieId", movieId); }
public async Task given_service_returns_error_then_AddScreening_sets_model( AddScreeningViewModel model, ISendAddScreeningCommandService serviceStub, IResourceAwaiter awaiterDummy, Error <ScreeningLocation> error, [NoAutoProperties] MoviesController sut) { // Arrange Mock.Get(serviceStub) .Setup( x => x.SendAddScreeningCommand(It.IsAny <AddNewScreening>())) .ReturnsAsync(error); Guid movieId = model.MovieId; // Act dynamic result = await sut.AddScreening(movieId, model, serviceStub, awaiterDummy); // Assert object actual = result.Model; actual.Should().BeSameAs(model); }
public async Task AddScreening_returns_RedirectToActionResult( AddScreeningViewModel model, ISendAddScreeningCommandService serviceStub, IResourceAwaiter awaiterDummy, Success <ScreeningLocation> success, [NoAutoProperties] MoviesController sut) { // Arrange Mock.Get(serviceStub) .Setup( x => x.SendAddScreeningCommand(It.Is <AddNewScreening>( p => p.MovieId == model.MovieId && p.TheaterId == model.TheaterId && p.ScreeningTime == model.ScreeningTime && p.DefaultFee == model.DefaultFee && p.ChildrenFee == model.ChildrenFee))) .ReturnsAsync(success); Guid movieId = model.MovieId; // Act ActionResult actual = await sut.AddScreening(movieId, model, serviceStub, awaiterDummy); // Assert actual.Should().BeOfType <RedirectToActionResult>(); }
public async Task AddScreening_returns_ViewResult( TheaterDto[] theaters, IGetAllTheatersService serviceStub, Guid movieId, [NoAutoProperties] MoviesController sut) { Mock.Get(serviceStub) .Setup(x => x.GetAllTheaters()) .ReturnsAsync(theaters); ActionResult actual = await sut.AddScreening(serviceStub, movieId); actual.Should().BeAssignableTo <ViewResult>(); }
public async Task AddScreening_sets_model_correctly( TheaterDto[] theaters, IGetAllTheatersService serviceStub, Guid movieId, [NoAutoProperties] MoviesController sut) { // Arrange Mock.Get(serviceStub) .Setup(x => x.GetAllTheaters()) .ReturnsAsync(theaters); // Act dynamic result = await sut.AddScreening(serviceStub, movieId); // Assert object actual = result.Model; actual.Should().BeOfType <AddScreeningViewModel>(); actual.Should().BeEquivalentTo(new { MovieId = movieId, TheaterId = default(Guid), DefaultFee = default(decimal), ChildrenFee = default(decimal), }); DateTime screeningTime = ((dynamic)actual).ScreeningTime; screeningTime.Should().BeCloseTo(DateTime.Today.AddDays(2)); actual.Should().BeEquivalentTo(new { Theaters = from t in theaters select new SelectListItem { Text = t.Name, Value = $"{t.Id}", }, }); }
public async Task given_service_returns_error_then_AddScreening_adds_model_error( AddScreeningViewModel model, ISendAddScreeningCommandService serviceStub, IResourceAwaiter awaiterDummy, Error <ScreeningLocation> error, [NoAutoProperties] MoviesController sut) { // Arrange Mock.Get(serviceStub) .Setup( x => x.SendAddScreeningCommand(It.IsAny <AddNewScreening>())) .ReturnsAsync(error); Guid movieId = model.MovieId; // Act await sut.AddScreening(movieId, model, serviceStub, awaiterDummy); // Assert ModelStateEntry state = sut.ModelState[string.Empty]; state.Errors.Should().Contain(e => e.ErrorMessage == error.Message); }
public async Task AddScreening_awaits_resource_creation( AddScreeningViewModel model, ISendAddScreeningCommandService serviceStub, IResourceAwaiter awaiterSpy, Success <ScreeningLocation> success, [NoAutoProperties] MoviesController sut) { // Arrange Mock.Get(serviceStub) .Setup( x => x.SendAddScreeningCommand(It.IsAny <AddNewScreening>())) .ReturnsAsync(success); Guid movieId = model.MovieId; // Act await sut.AddScreening(movieId, model, serviceStub, awaiterSpy); // Assert Uri location = success.Value.Uri; Mock.Get(awaiterSpy).Verify(x => x.AwaitResource(location)); }