Esempio n. 1
0
        public async void Post_ReturnsBadRequestObjectWithMessageToAddFilmFirst_ForNewFilmWhichContainsCast()
        {
            //Arrange
            var repository = new FakeFilmRepository();

            repository.Add(new Director()
            {
                Id = 1, FirstName = "Quentin", LastName = "Tarantino"
            });
            repository.Add(new Actor()
            {
                Id = 1, FirstName = "Kurt", LastName = "Russell", ActorFilms = new List <ActorFilm>()
                {
                    new ActorFilm()
                    {
                        FilmId = 1, ActorId = 1
                    }
                }
            });
            repository.Add(new Film()
            {
                Id = 1, DirectorId = 1, Title = "The Hateful Eight", Cast = new List <ActorFilm>()
                {
                    new ActorFilm()
                    {
                        FilmId = 1, ActorId = 1
                    }
                }
            });

            await repository.SaveChangesAsync();

            var config = new MapperConfiguration(cfg =>
            {
                cfg.AddProfile <FilmProfile>();
            });

            var mapper = config.CreateMapper();

            var controller = new FilmsController(repository, mapper);

            var newFilm = new FilmModel()
            {
                Cast = new List <ActorModel>()
                {
                    new ActorModel()
                    {
                        FirstName = "Kurt", LastName = "Russell"
                    }
                }, Title = "The Hateful Eight"
            };

            //Act
            var result = await controller.Post(newFilm);

            //Assert
            Assert.IsType <BadRequestObjectResult>(result.Result);
            Assert.Equal("Please add film first. Update films cast with updatefilm method", (result.Result as BadRequestObjectResult).Value);
        }
        public async Task Delete_TicketNotInDb_ReturnsNotFoundView()
        {
            var ticketRepository   = new FakeTicketRepository();
            var customerRepository = new FakeCustomerRepository();
            var filmRepository     = new FakeFilmRepository();
            var controller         = new TicketsController(ticketRepository, customerRepository, filmRepository);

            var result = await controller.Delete(1) as ViewResult;

            Assert.AreEqual("NotFound", result.ViewName);
        }
        public async Task Create_ValidTicket_ReturnsRedirectToActionResult()
        {
            var ticket             = new Ticket();
            var ticketRepository   = new FakeTicketRepository();
            var customerRepository = new FakeCustomerRepository();
            var filmRepository     = new FakeFilmRepository();
            var controller         = new TicketsController(ticketRepository, customerRepository, filmRepository);

            var result = await controller.Create(ticket);

            Assert.IsInstanceOfType(result, typeof(RedirectToActionResult));
        }
        public async Task Create_NoArguments_ReturnsViewResult()
        {
            var ticketRepository   = new FakeTicketRepository();
            var customerRepository = new FakeCustomerRepository();
            var filmRepository     = new FakeFilmRepository();

            var controller = new TicketsController(ticketRepository, customerRepository, filmRepository);

            var result = await controller.Create();

            Assert.IsInstanceOfType(result, typeof(ViewResult));
        }
        public async Task Create_InValidTicket_ReturnsSameModel()
        {
            var ticket             = new Ticket();
            var ticketRepository   = new FakeTicketRepository();
            var customerRepository = new FakeCustomerRepository();
            var filmRepository     = new FakeFilmRepository();
            var controller         = new TicketsController(ticketRepository, customerRepository, filmRepository);

            controller.ModelState.AddModelError("", "");

            var result = await controller.Create(ticket) as ViewResult;

            Assert.AreEqual(ticket, result.Model);
        }
        public async Task Delete_TicketInDb_ReturnsSameModel()
        {
            var ticket = new Ticket()
            {
                TicketID = 1
            };
            var ticketRepository   = new FakeTicketRepository();
            var customerRepository = new FakeCustomerRepository();
            var filmRepository     = new FakeFilmRepository();
            var controller         = new TicketsController(ticketRepository, customerRepository, filmRepository);

            ticketRepository.AddTicket(ticket);

            var result = await controller.Delete(1) as ViewResult;

            Assert.AreEqual(ticket, result.Model);
        }