public void BookTicket_Successful_Test()
        {
            var theaterServiceMock = new Mock <ITheaterService>();

            Guid id = new Guid();
            UserBookTicketDto user = new UserBookTicketDto();
            int numberOfTickets    = new int();

            theaterServiceMock.Setup(x => x.BookTicket(id, numberOfTickets, user));

            var controller   = new TheaterController(theaterServiceMock.Object);
            var actualResult = controller.BookTicket(id, numberOfTickets, user);

            var okResult     = (OkObjectResult)actualResult;
            var asJson       = JsonConvert.SerializeObject(okResult.Value);
            var deserialized = JsonConvert.DeserializeObject <Dictionary <string, object> >(asJson);

            Assert.IsTrue((bool)deserialized["Success"]);

            theaterServiceMock.VerifyAll();
        }
        public void BookTicket_NullValue_Test()
        {
            var theaterServiceMock = new Mock <ITheaterService>();

            Guid id = new Guid();
            UserBookTicketDto user = new UserBookTicketDto();
            int numberOfTickets    = new int();

            theaterServiceMock.Setup(x => x.BookTicket(id, numberOfTickets, user)).Throws <ArgumentException>();

            var controller   = new TheaterController(theaterServiceMock.Object);
            var actualResult = controller.BookTicket(id, numberOfTickets, user);

            var badRequestResult = (BadRequestObjectResult)actualResult;
            var asJson           = JsonConvert.SerializeObject(badRequestResult.Value);
            var deserialized     = JsonConvert.DeserializeObject <Dictionary <string, object> >(asJson);

            Assert.IsTrue((bool)deserialized["Success"] == false);

            theaterServiceMock.VerifyAll();
        }