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); }); } } }
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); }
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); }
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); } }
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}"); } }
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(); }
public SearchTests() { _tvMazeService = new TvMazeService(); }