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 TicketApplicationServiceTests()
        {
            fakeTicketRepository         = new FakeTicketRepository();
            fakeTicketCategoryRepository = new FakeTicketCategoryRepository();
            domainNotificationHandler    = new DomainNotificationHandler();
            factory          = new TicketFactory();
            fakeServiceBus   = new FakeServiceBus();
            uow              = new FakeUnitOfWork();
            identityResolver = new FakeIdentityResolver();

            applicationService = new TicketApplicationService(fakeTicketRepository, fakeTicketCategoryRepository, factory, identityResolver, domainNotificationHandler, uow, fakeServiceBus);
        }
        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);
        }