public void ReturnExpectedCount()
        {
            var actualFilmScreening = new FilmScreening();
            var mockedSeatsList     = new List <Cinema.Data.Models.Seat>();
            var mockedSeat1         = new Cinema.Data.Models.Seat();
            var mockedSeat2         = new Cinema.Data.Models.Seat();
            var mockedSeat3         = new Cinema.Data.Models.Seat();
            var mockedUser          = new Mock <User>();

            mockedSeat1.User   = mockedUser.Object;
            mockedSeat1.IsFree = false;

            mockedSeat2.User   = mockedUser.Object;
            mockedSeat2.IsFree = false;

            mockedSeat3.User   = mockedUser.Object;
            mockedSeat3.IsFree = true;

            mockedSeatsList.Add(mockedSeat1);
            mockedSeatsList.Add(mockedSeat2);
            mockedSeatsList.Add(mockedSeat3);

            actualFilmScreening.Seats = mockedSeatsList;

            // mockedUser booked Seat1 and Seat2 so available seat is 1 out of 3
            int expectedAvailableSeatsCount = 1;

            var actualAvailableSeatsCount = actualFilmScreening.AvailableSeatsCount;

            Assert.AreEqual(expectedAvailableSeatsCount, actualAvailableSeatsCount);
        }
Example #2
0
        public void UpdateScreening(string screeningId, FilmScreening updatedScreening)
        {
            Guard.WhenArgument(screeningId, "screeningId").IsNullOrEmpty().Throw();
            Guard.WhenArgument(updatedScreening, "updatedScreening").IsNull().Throw();

            this.screeningService.UpdateById(screeningId, updatedScreening);
        }
Example #3
0
        public void CallFilmScreeningRepositorySaveChangesMethod()
        {
            var mockedScreeningRepo = new Mock <IRepository <FilmScreening> >();
            var fakeFilmScreening   = new FilmScreening();

            string date    = "3/08/2017";
            string movieId = "1";
            string price   = "12";

            fakeFilmScreening.Start         = DateTime.Parse(date);
            fakeFilmScreening.TargetMovieId = int.Parse(movieId);
            fakeFilmScreening.Price         = int.Parse(price);
            fakeFilmScreening.Seats         = new List <Seat>(20);

            for (int i = 0; i < 20; i++)
            {
                var seat = new Seat()
                {
                    IsFree = true
                };
                fakeFilmScreening.Seats.Add(seat);
            }


            var actualFilmSCreeningService =
                new Cinema.Data.Services.FilmScreeningService(mockedScreeningRepo.Object, fakeFilmScreening);

            actualFilmSCreeningService.Create(date, movieId, price);

            mockedScreeningRepo.Verify(
                service => service.SaveChanges(), Times.Once);
        }
        public void ThrowWhenPassedFilmScreeningInstanceHasNullValue()
        {
            var           mockedScreeningRepo = new Mock <IRepository <FilmScreening> >();
            FilmScreening nullFilmSCreening   = null;

            Assert.That(() =>
                        new Cinema.Data.Services.FilmScreeningService(mockedScreeningRepo.Object, nullFilmSCreening),
                        Throws.InstanceOf <ArgumentNullException>());
        }
        public void ReturnCollectionWithUniqueUsersThatHaveBookedSeatsInTargetFilmScreening()
        {
            var mockedScreeningRepo = new Mock <IRepository <FilmScreening> >();
            var mockedFilmSCreening = new Mock <FilmScreening>();
            var mockedSeatsList     = new List <Seat>();
            var targetUser          = new User()
            {
                UserName = "******"
            };
            var targetUser2 = new User()
            {
                UserName = "******"
            };
            var freeSeat = new Seat()
            {
                IsFree = false, User = targetUser
            };
            var freeSeat2 = new Seat()
            {
                IsFree = false, User = targetUser
            };
            var takenSeat = new Seat()
            {
                IsFree = false, User = targetUser2
            };

            mockedSeatsList.Add(freeSeat);
            mockedSeatsList.Add(freeSeat2);
            mockedSeatsList.Add(takenSeat);
            string validId = "3";

            // John and Adam even John has booked 2 seats
            int expectedUniqueBookersCount = 2;

            var fakeFilmScreening = new FilmScreening()
            {
                Id          = int.Parse(validId),
                TargetMovie = new Movie()
                {
                    Name = "Batman"
                },
                Seats = mockedSeatsList
            };

            mockedScreeningRepo.Setup(x => x.GetById(int.Parse(validId))).Returns(fakeFilmScreening);

            var actualScreeningService =
                new Cinema.Data.Services.FilmScreeningService(mockedScreeningRepo.Object, mockedFilmSCreening.Object);

            var result = actualScreeningService.GetUniqueBookersFromScreeningById(validId);

            Assert.That(result.Contains(targetUser));
            Assert.That(result.Contains(targetUser2));
            Assert.That(result.Count() == expectedUniqueBookersCount);
        }
        public void ThrowWhenParameterFilmScreeningToUpdateHasNullOrEmptyValue()
        {
            var           mockedScreeningRepo = new Mock <IRepository <FilmScreening> >();
            var           mockedFilmSCreening = new Mock <FilmScreening>();
            FilmScreening nullFilmScreening   = null;
            string        id = "1";

            var actualFilmSCreeningService =
                new Cinema.Data.Services.FilmScreeningService(mockedScreeningRepo.Object, mockedFilmSCreening.Object);

            Assert.That(() => actualFilmSCreeningService.UpdateById(id, nullFilmScreening),
                        Throws.InstanceOf <ArgumentNullException>());
        }
        public void ThrowWhenParameterUpdatedScreeningIsNull()
        {
            var           mockedScreeningService = new Mock <IFilmScreeningService>();
            string        screeningId            = "1";
            FilmScreening nullScreening          = null;

            var actualUpdateFilmScreeningPresenter =
                new Presenters.FilmScreeningPresenters.UpdateFilmScreeningPresenter(mockedScreeningService.Object);

            Assert.That(
                () => actualUpdateFilmScreeningPresenter.UpdateScreening(screeningId, nullScreening),
                Throws.InstanceOf <ArgumentNullException>());
        }
        public void UpdateById(string id, FilmScreening updatedFilmScreening)
        {
            Guard.WhenArgument(id, "id").IsNullOrEmpty().Throw();
            Guard.WhenArgument(updatedFilmScreening, "updatedFilmScreening").IsNull().Throw();

            int parsedId;

            int.TryParse(id, out parsedId);
            var targetScreening = this.screenings.GetById(parsedId);

            targetScreening = updatedFilmScreening;
            this.screenings.Update(targetScreening);
            this.screenings.SaveChanges();
        }
        public void CallFilmScreeningRepoUpdateMethodPassingCorrectFilmScreening()
        {
            var    mockedScreeningRepo = new Mock <IRepository <FilmScreening> >();
            var    mockedFilmSCreening = new Mock <FilmScreening>();
            var    targetScreening     = new FilmScreening();
            string id = "1";

            mockedScreeningRepo.Setup(x => x.GetById(int.Parse(id))).Returns(targetScreening);

            var actualFilmSCreeningService =
                new Cinema.Data.Services.FilmScreeningService(mockedScreeningRepo.Object, mockedFilmSCreening.Object);

            actualFilmSCreeningService.UpdateById(id, targetScreening);

            mockedScreeningRepo.Verify(service => service.Update(targetScreening), Times.Once);
        }
        public void CallFilmScreeningRepoWithSameParameterId(string validId)
        {
            var mockedScreeningRepo = new Mock <IRepository <FilmScreening> >();
            var mockedFilmSCreening = new Mock <FilmScreening>();
            var mockedSeatsList     = new List <Seat>();
            var targetUser          = new User()
            {
                UserName = "******"
            };
            var freeSeat = new Seat()
            {
                IsFree = true
            };
            var freeSeat2 = new Seat()
            {
                IsFree = true
            };
            var takenSeat = new Seat()
            {
                IsFree = false
            };

            mockedSeatsList.Add(freeSeat);
            mockedSeatsList.Add(freeSeat2);
            mockedSeatsList.Add(takenSeat);
            var fakeFilmScreening = new FilmScreening()
            {
                Id          = int.Parse(validId),
                TargetMovie = new Movie()
                {
                    Name = "Batman"
                },
                Seats = mockedSeatsList
            };

            mockedScreeningRepo.Setup(x => x.GetById(int.Parse(validId))).Returns(fakeFilmScreening);

            var actualScreeningService =
                new Cinema.Data.Services.FilmScreeningService(mockedScreeningRepo.Object, mockedFilmSCreening.Object);

            actualScreeningService.GetUniqueBookersFromScreeningById(validId);

            mockedScreeningRepo.Verify(service => service.GetById(int.Parse(validId)), Times.Once);
        }
Example #11
0
        public void CallFilmScreeningRepoWithSameParameterId(string validId)
        {
            var mockedScreeningRepo = new Mock <IRepository <FilmScreening> >();
            var mockedFilmSCreening = new Mock <FilmScreening>();
            var fakeFilmScreening   = new FilmScreening()
            {
                Id = int.Parse(validId), TargetMovie = new Movie()
                {
                    Name = "Batman"
                }
            };

            mockedScreeningRepo.Setup(x => x.GetById(int.Parse(validId))).Returns(fakeFilmScreening);

            var actualScreeningService =
                new Cinema.Data.Services.FilmScreeningService(mockedScreeningRepo.Object, mockedFilmSCreening.Object);

            actualScreeningService.GetMovieTitleByScreeningId(validId);

            mockedScreeningRepo.Verify(service => service.GetById(int.Parse(validId)), Times.Once);
        }
Example #12
0
        public void ReturnCorrectPriceForPassedParameters()
        {
            var mockedFilmScreeningRepo = new Mock <IRepository <FilmScreening> >();
            var mockedScreening         = new FilmScreening();
            var mockedUser      = new Mock <User>();
            var mockedUser2     = new Mock <User>();
            var mockedSeatsList = new List <Seat>();
            var mockedSeat1     = new Mock <Seat>();
            var mockedSeat2     = new Mock <Seat>();
            var mockedSeat3     = new Mock <Seat>();

            string  screeningId = "3";
            string  userName    = "******";
            string  userName2   = "Adam";
            decimal singlePrice = (decimal)8.50;

            // targeted UserName(John) has booked two seats, output should be Total Price: $40.00
            string expectedOutput = "Total Price: $17.00";

            mockedUser.Setup(x => x.UserName).Returns(userName);
            mockedUser2.Setup(x => x.UserName).Returns(userName2);
            mockedSeat1.Setup(x => x.User).Returns(mockedUser.Object);
            mockedSeatsList.Add(mockedSeat1.Object);
            mockedSeat2.Setup(x => x.User).Returns(mockedUser.Object);
            mockedSeatsList.Add(mockedSeat2.Object);
            mockedSeat3.Setup(x => x.User).Returns(mockedUser2.Object);
            mockedSeatsList.Add(mockedSeat3.Object);
            mockedScreening.Seats = mockedSeatsList;
            mockedScreening.Price = singlePrice;
            mockedFilmScreeningRepo.Setup(x => x.GetById(int.Parse(screeningId))).Returns(mockedScreening);

            var actualSeatService =
                new Cinema.Data.Services.SeatService(mockedFilmScreeningRepo.Object);

            var actualOutput = actualSeatService.GetPrice(userName, screeningId);

            Assert.AreEqual(expectedOutput, actualOutput);
        }
Example #13
0
        public void ReturnCorrectMovieName(string validId)
        {
            var    mockedScreeningRepo = new Mock <IRepository <FilmScreening> >();
            var    mockedFilmSCreening = new Mock <FilmScreening>();
            string expectedMovieName   = "Batman";

            var fakeFilmScreening = new FilmScreening()
            {
                Id = int.Parse(validId), TargetMovie = new Movie()
                {
                    Name = "Batman"
                }
            };

            mockedScreeningRepo.Setup(x => x.GetById(int.Parse(validId))).Returns(fakeFilmScreening);

            var actualScreeningService =
                new Cinema.Data.Services.FilmScreeningService(mockedScreeningRepo.Object, mockedFilmSCreening.Object);

            string actualMovieName = actualScreeningService.GetMovieTitleByScreeningId(validId);

            Assert.AreEqual(expectedMovieName, actualMovieName);
        }