Beispiel #1
0
        public void GetShowDataById_WhenApiServiceReturns401_ShouldRecieveUnauthorizedFlurlHttpException()
        {
            using (var httpTest = new HttpTest())
            {
                httpTest.RespondWithJson(null, 401);

                var tvMazeService = new TvMazeService(_jsonJsonApiDataReader, GetLogger());

                var showData = tvMazeService.GetShowDataById(1);

                try
                {
                    showData.Wait();
                }
                catch (AggregateException aggregateException)
                {
                    aggregateException.Handle(exception =>
                    {
                        Assert.IsTrue(exception is FlurlHttpException flurlHttpException &&
                                      flurlHttpException.Call.HttpStatus == HttpStatusCode.Unauthorized);
                        return(true);
                    });
                }
            }
        }
Beispiel #2
0
        public async Task TestScrapeAlpha_WithAParam()
        {
            // arrange
            ISettingRepository settingRepo = new MockSettingsRepository();

            var apiRepo = new MockApiRepository();

            apiRepo.ReadContent(typeof(MockApiRepository).Assembly.GetManifestResourceStream(typeof(MockApiRepository), "Data.TvMazeSearchByA.json"));
            var apiSvclogger = new DebugLogger <TvMazeService>();

            var tvmazeService = new TvMazeService(apiRepo, apiSvclogger);

            var scrapeCtrlLogger = new DebugLogger <ScrapeController>();
            var controller       = new ScrapeController(showService: this.showService, tvMazeService: tvmazeService, logger: scrapeCtrlLogger);

            // act
            var response = await controller.ScrapeAlpha("A").ConfigureAwait(false);

            // assert
            response.Should().BeAssignableTo <ViewResult>(because: "this should now return a View.");
            var viewResponse = (ViewResult)response;

            viewResponse.Model.Should().BeAssignableTo <ScrapeAlphaViewModel>();

            var model = (ScrapeAlphaViewModel)viewResponse.Model;

            model.PreviousInitial.Should().Be("A");
            model.NextInitial.Should().Be("B");
            model.PreviousCount.Should().NotBe(0);
        }
        public void GetShowsAsync_InternalServerError_Should_Throw_HttpRequestException()
        {
            // Arrange
            var httpClient    = HttpClientHelper.GetMockHttpClient(HttpStatusCode.InternalServerError, String.Empty);
            var tvMazeService = new TvMazeService(httpClient);

            // Act Assert
            Assert.ThrowsAsync <HttpRequestException>(async() => await tvMazeService.GetShowsAsync(1));
        }
        public async Task GetShowCastsAsync_NullBirthday_Should_Deserialize()
        {
            // Arrange
            var httpClient    = HttpClientHelper.GetMockHttpClient(HttpStatusCode.OK, File.ReadAllText("seed/cast.json"));
            var tvMazeService = new TvMazeService(httpClient);

            // Act
            var casts = await tvMazeService.GetShowCastsAsync(1);

            // Assert
            Assert.IsNotEmpty(casts);
        }
        public async Task GetShowsAsync_OkResponse_Should_Return_Rows()
        {
            // Arrange
            var httpClient    = HttpClientHelper.GetMockHttpClient(HttpStatusCode.OK, File.ReadAllText("seed/shows.json"));
            var tvMazeService = new TvMazeService(httpClient);

            // Act
            var shows = await tvMazeService.GetShowsAsync(1);

            // Assert
            Assert.IsNotEmpty(shows);
        }
        public async Task GetShowCastsAsync_ShowNotFound_Should_Return_EmptyList()
        {
            // Arrange
            var httpClient    = HttpClientHelper.GetMockHttpClient(HttpStatusCode.NotFound, String.Empty);
            var tvMazeService = new TvMazeService(httpClient);

            // Act
            var shows = await tvMazeService.GetShowCastsAsync(1);

            // Assert
            Assert.IsEmpty(shows);
        }
Beispiel #7
0
        private static void tvMaze()
        {
            try
            {
                var test = TvMazeService.Search("The walking dead").Result;
            }
            catch (AggregateException)
            {
                Console.WriteLine("Aucune information trouvée.");
            }

            Console.WriteLine("FIN");
            Console.ReadKey();
        }
        public async Task TestReadShowAndCast_WithOverload()
        {
            var svclogger = new DebugLogger <TvMazeService>();
            var apiRepo   = new MockApiRepository
            {
                StatusToReturn = Core.Support.Constants.ServerTooBusy,
            };

            var svc = new TvMazeService(apiRepo, svclogger);

            var(count, _) = await svc.ScrapeBatchById(999_999).ConfigureAwait(false);

            count.Should().Be(1);
        }
        public async Task TestSearchByInitial()
        {
            ISettingRepository settingRepo = new MockSettingsRepository();

            var apiRepo = new MockApiRepository();

            apiRepo.ReadContent(typeof(MockApiRepository).Assembly.GetManifestResourceStream(typeof(MockApiRepository), "Data.TvMazeSearchByA.json"));
            var svclogger = new DebugLogger <TvMazeService>();

            var svc    = new TvMazeService(apiRepo, svclogger);
            var result = await svc.ScrapeShowsBySearch("a").ConfigureAwait(false);

            result.Should().NotBeNull();
            result.Count.Should().Be(10, because: "there are 10 shows in the sample.");
            result.Count(s => s.CastMembers.Any()).Should().Be(0, because: "there is no cast in this show data.");
            result.Select(m => m.Id).Distinct().Count().Should().Be(10, because: "ID is unique");
        }
        public async Task TestReadCast()
        {
            var apiRepo = new MockApiRepository();

            apiRepo.ReadContent(typeof(MockApiRepository).Assembly.GetManifestResourceStream(typeof(MockApiRepository), "Data.TvMazeATeamCast.json"));
            var svclogger = new DebugLogger <TvMazeService>();

            var svc    = new TvMazeService(apiRepo, svclogger);
            var result = await svc.ScrapeCastMembers(1058).ConfigureAwait(false);

            result.Should().NotBeNull();
            result.Count.Should().Be(7, because: "there are 7 members in the sample.");
            result.Count(m => m.Birthdate.HasValue).Should().Be(6, because: "I set one birthdate to null (as happens).");
            result.Any(m => m.Id <= 0).Should().Be(false, because: "everyone has a positive id number.");
            result.Select(m => m.Id).Distinct().Count().Should().Be(7, because: "ID is unique");
            result.Any(m => m.Name is null).Should().Be(false, because: "everyone has a name defined.");
        }
        public async Task TestReadShowAndCast_NothingFound()
        {
            var svclogger = new DebugLogger <TvMazeService>();
            var apiRepo   = new MockApiRepository
            {
                StatusToReturn = System.Net.HttpStatusCode.NotFound,
            };

            var svc = new TvMazeService(apiRepo, svclogger)
            {
                MaxNumberOfShowsToScrape = 10,
            };

            var(count, shows) = await svc.ScrapeBatchById(999_999).ConfigureAwait(false);

            count.Should().Be(10, because: "I set 10 as the number of tries.");
            shows.Count.Should().Be(0, because: "nothing was supposed to be found.");
        }
        public async Task TestReadShowAndCast_Success()
        {
            var svclogger = new DebugLogger <TvMazeService>();
            var apiRepo   = new MockApiRepository();

            apiRepo.ReadContent(typeof(MockApiRepository).Assembly.GetManifestResourceStream(typeof(MockApiRepository), "Data.TvMazeATeamWithCast.json"));

            var svc = new TvMazeService(apiRepo, svclogger)
            {
                MaxNumberOfShowsToScrape = 1,
            };

            var(count, shows) = await svc.ScrapeBatchById(1058).ConfigureAwait(false);

            shows.Count.Should().Be(1);
            shows[0].CastMembers.Count.Should().Be(7);
            shows[0].CastMembers.Count(m => m.Birthdate.HasValue).Should().Be(6);
        }
Beispiel #13
0
        public void GetShowDataById_WhereShowIdEqualsARandomId_ExpectsReturnDataToMatchId()
        {
            var randomId = new Random().Next(1, 10000);

            using (var httpTest = new HttpTest())
            {
                httpTest.RespondWithJson(new JObject {
                    { "id", randomId }
                });

                var sut = new TvMazeService(_jsonJsonApiDataReader, GetLogger());

                var showData = sut.GetShowDataById(randomId);

                showData.Wait();

                Assert.IsTrue(showData.Result.Id == randomId);
            }
        }
Beispiel #14
0
        public void GetShowsByPage_WherePageNumberEqualsARandomPage_ExpectsReturnDataToMatch()
        {
            var randomPageId = new Random().Next(1, 10000);
            var randomId     = new Random().Next(1, 10000);

            using (var httpTest = new HttpTest())
            {
                httpTest.RespondWithJson(GetTestData(randomId));

                var sut = new TvMazeService(_jsonJsonApiDataReader, GetLogger());

                var showData = sut.GetShowsByPage(randomPageId);

                showData.Wait();

                Assert.IsTrue(showData.Result.Count == 1);
                Assert.IsTrue(showData.Result.First().Id == randomId);
                Assert.IsTrue(showData.Result.First().Name == $"some show {randomId}");
            }
        }
Beispiel #15
0
        public async Task TestScrapeAlpha_WithZParam()
        {
            // arrange
            ISettingRepository settingRepo = new MockSettingsRepository();

            var apiRepo = new MockApiRepository();

            apiRepo.ReadContent(typeof(MockApiRepository).Assembly.GetManifestResourceStream(typeof(MockApiRepository), "Data.TvMazeSearchByA.json"));
            var apiSvclogger = new DebugLogger <TvMazeService>();

            var tvmazeService = new TvMazeService(apiRepo, apiSvclogger);

            var scrapeCtrlLogger = new DebugLogger <ScrapeController>();
            var controller       = new ScrapeController(showService: this.showService, tvMazeService: tvmazeService, logger: scrapeCtrlLogger);

            // act
            var response = await controller.ScrapeAlpha("Z").ConfigureAwait(false);

            // assert
            response.Should().BeAssignableTo <RedirectToActionResult>(because: "this should now redirect to Home.");
        }
 public TvMazeDataScrapper(IConfigurationRoot configuration, ILogger <TvMazeDataScrapper> logger)
 {
     _configuration = configuration;
     _logger        = logger;
     _tvMazeService = GetTvMazeService();
 }
 public EpisodeListTests()
 {
     _tvMazeService = new TvMazeService();
 }
Beispiel #18
0
 public SearchTests()
 {
     _tvMazeService = new TvMazeService();
 }