public async void Get_Empty_Board_When_There_Are_Not_Any_Movies(int weeksFromNow, int bigRoomsScreens, int smallRoomsScreens) { //Arrange var billBoardCalculator = new BillboardCalculator(_repository, _weekDates, weeksFromNow, bigRoomsScreens, smallRoomsScreens, false); //Act var billBoard = await billBoardCalculator.GetBillboard(); //Assert billBoard.GetWeekBoard().Should().BeEmpty(); }
public async void Get_Board_With_Many_SmallRoom_Screen_Movie(int weeksFromNow, int bigRoomsScreens, int smallRoomsScreens) { //Arrange var billBoardCalculator = new BillboardCalculator(_repository, _weekDates, weeksFromNow, bigRoomsScreens, smallRoomsScreens, false); var expectedMovies = BuildMovieInfosList(); _repository.GetMoviesInfo().Returns(expectedMovies); //Act var billBoard = await billBoardCalculator.GetBillboard(); //Assert billBoard.GetWeekBoard().Should().HaveCount(weeksFromNow); billBoard.GetWeekBoard().Should().Match(w => w.First().SmallScreenBoard.Count == smallRoomsScreens); billBoard.GetWeekBoard().Should().Match(w => w.First().SmallScreenBoard.First().Movie.Title == expectedMovies.Skip(5).First().Title&& w.First().BigScreenBoard.Count == bigRoomsScreens); }
public async Task <IActionResult> GetIntelligentBillboard([BindRequired, FromQuery] int weeksFromNow, [BindRequired, FromQuery] int numberOfBigScreens, [BindRequired, FromQuery] int numberOfSmallScreens, [FromQuery] bool basedOnCityMovies) { try { _logger.LogInformation("Call to api/Managers/IntelligentBillboard"); var boardCalculator = new BillboardCalculator(_repository, _weekDates, weeksFromNow, numberOfBigScreens, numberOfSmallScreens, basedOnCityMovies); var billboard = await boardCalculator.GetBillboard(); return(Ok(billboard.ToDto())); } catch (ArgumentException exception) { _logger.LogError("Error in api/Managers/IntelligentBillboard: {0}", exception.Message); return(BadRequest()); } }
public async void Get_Board_Without_Total_Seat_Sold_And_Some_Gaps_When_There_Are_Not_Movies_Released_That_Week(int weeksFromNow, int bigRoomsScreens, int smallRoomsScreens) { //Arrange _utc.Now().Returns(new DateTime(2019, 08, 01)); var billBoardCalculator = new BillboardCalculator(_repository, _weekDates, weeksFromNow, bigRoomsScreens, smallRoomsScreens, false); var expectedMovies = BuildMovieInfosList(false); _repository.GetMoviesInfo().Returns(expectedMovies); //Act var billBoard = await billBoardCalculator.GetBillboard(); //Assert billBoard.GetWeekBoard().Should().Match(w => w.First().BigScreenBoard.Count == bigRoomsScreens); billBoard.GetWeekBoard().Should().Match(w => w.First().BigScreenBoard.First().Movie.Title == expectedMovies.First().Title); billBoard.GetWeekBoard().Should().Match(w => w.First().BigScreenBoard.Skip(1).First().Movie.Title == expectedMovies.Skip(2).First().Title); billBoard.GetWeekBoard().Should().Match(w => w.Skip(1).First().BigScreenBoard.First().Movie == null); //Gap billBoard.GetWeekBoard().Should().Match(w => w.Skip(2).First().BigScreenBoard.First().Movie.Title == expectedMovies.Skip(1).First().Title); }
public async void Not_Build_Weeks_With_Not_Released_Movies(int weeksFromNow, int bigRoomsScreens, int smallRoomsScreens) { //Arrange _utc.Now().Returns(new DateTime(2019, 08, 01)); var billBoardCalculator = new BillboardCalculator(_repository, _weekDates, weeksFromNow, bigRoomsScreens, smallRoomsScreens, false); var expectedMovies = BuildMovieInfosList(); _repository.GetMoviesInfo().Returns(expectedMovies); //Act var billBoard = await billBoardCalculator.GetBillboard(); //Assert billBoard.GetWeekBoard().Should().Match(w => w.First().BigScreenBoard.Count == bigRoomsScreens); billBoard.GetWeekBoard().Should().Match(w => w.First().BigScreenBoard.First().Movie.Title == expectedMovies.First().Title); billBoard.GetWeekBoard().Should().Match(w => w.Skip(1).First().BigScreenBoard.First().Movie.Title == expectedMovies.Skip(2).First().Title); billBoard.GetWeekBoard().Should().Match(w => w.Skip(2).First().BigScreenBoard.First().Movie.Title == expectedMovies.Skip(1).First().Title); billBoard.GetWeekBoard().Should().HaveCount(weeksFromNow); billBoard.GetWeekBoard().Should().Match(w => w.First().SmallScreenBoard.Count == smallRoomsScreens); billBoard.GetWeekBoard().Should().Match(w => w.First().SmallScreenBoard.First().Movie.Title == expectedMovies.Skip(6).First().Title&& w.First().BigScreenBoard.Count == bigRoomsScreens); billBoard.GetWeekBoard().Should().Match(w => w.Skip(1).First().SmallScreenBoard.First().Movie.Title == expectedMovies.Skip(4).First().Title&& w.First().BigScreenBoard.Count == bigRoomsScreens); }