Exemplo n.º 1
0
        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());
        }