public IEnumerable <Showing> GetShowings(string[] cinemasToCheck) { var toReturn = new List <Showing>(); var initialPage = _siteReader.GetInitialPage(); var initialLinks = _siteParser.GetInitialLinks(initialPage); var showBuidler = new ShowingBuilder(); var initialShowings = showBuidler.FromInitialUrlList(initialLinks); if (cinemasToCheck != null && cinemasToCheck.Length != 0) { initialShowings = initialShowings.Where(s => cinemasToCheck.Contains(s.At.Number)).ToList(); } foreach (var showing in initialShowings) { var filmPage = _siteReader.GetCinemasLinks(showing.At.Number, showing.What.Slug); if (string.IsNullOrEmpty(showing.What.Name)) { showing.What.Name = _siteParser.GetFilmTitle(filmPage); } if (string.IsNullOrEmpty(showing.At.Name)) { showing.At.Name = _siteParser.GetCinemaName(filmPage); } var filmSessions = _siteParser.GetFilmPageSessions(filmPage); toReturn.AddRange(showBuidler.FromScheduleDivs(showing, filmSessions)); } return(toReturn); }
public void ReturnEmptyList_GivenNullInput() { var sut = new sut.ShowingBuilder(); var result = sut.FromInitialUrlList(null); Assert.NotNull(result); Assert.Empty(result); }
public void ReturnSingleShowing_GivenSingleInput() { var input = new List <string> { "cinema/123/film/new-film" }; var sut = new sut.ShowingBuilder(); var result = sut.FromInitialUrlList(input); Assert.Single(result); }
public void SingleShowingHaveFilmSlugSet_GivenSingleInput() { var input = new List <string> { "cinema/123/film/new-film" }; var sut = new sut.ShowingBuilder(); var result = sut.FromInitialUrlList(input); Assert.NotNull(result.First().What); Assert.Equal("new-film", result.First().What.Slug); }
public void SingleShowingHaveCinemaNumberSet_GivenSingleInput() { var input = new List <string> { "cinema/123/film/new-film" }; var sut = new sut.ShowingBuilder(); var result = sut.FromInitialUrlList(input); Assert.NotNull(result.First().At); Assert.Equal("123", result.First().At.Number); }
public void TwoShowingHaveFilmSlugSet_GivenTwoInput() { var input = new List <string> { "cinema/123/film/new-film", "cinema/456/film/another-new-film", }; var sut = new sut.ShowingBuilder(); var result = sut.FromInitialUrlList(input); Assert.Contains(result, f => f.What.Slug == "new-film"); Assert.Contains(result, f => f.What.Slug == "another-new-film"); }
public void TwoShowingsHaveCinemaNumberSet_GivenTwoInput() { var input = new List <string> { "cinema/123/film/new-film", "cinema/456/film/another-new-film", }; var sut = new sut.ShowingBuilder(); var result = sut.FromInitialUrlList(input); Assert.Contains(result, f => f.At.Number == "123"); Assert.Contains(result, f => f.At.Number == "456"); }
public void OneCinemasHavingTwoFilms_HasSameCinemaObjectInShowing() { var input = new List <string> { "cinema/123/film/new-film", "cinema/123/film/another-new-film", }; var sut = new sut.ShowingBuilder(); var result = sut.FromInitialUrlList(input); Assert.True(result.ElementAt(0).At == result.ElementAt(1).At); Assert.False(result.ElementAt(0).What == result.ElementAt(1).What); }
public void TwoCinemasHavingTwoFilms_ReturnsFourShowingsTwoFilmsTwoCinemas() { var input = new List <string> { "cinema/123/film/new-film", "cinema/123/film/another-new-film", "cinema/456/film/new-film", "cinema/456/film/another-new-film", }; var sut = new sut.ShowingBuilder(); var result = sut.FromInitialUrlList(input); Assert.Equal(4, result.Count()); Assert.Equal(2, result.Where(c => c.At.Number == "123").Count()); Assert.Equal(2, result.Where(c => c.At.Number == "456").Count()); Assert.Equal(2, result.Where(c => c.What.Slug == "new-film").Count()); Assert.Equal(2, result.Where(c => c.What.Slug == "another-new-film").Count()); }