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); }
public void UpdateScreening(string screeningId, FilmScreening updatedScreening) { Guard.WhenArgument(screeningId, "screeningId").IsNullOrEmpty().Throw(); Guard.WhenArgument(updatedScreening, "updatedScreening").IsNull().Throw(); this.screeningService.UpdateById(screeningId, updatedScreening); }
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); }
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); }
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); }
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); }