public async Task HandleAsync_GivenExceptionFromJikan_ShouldNotAddNewSeason() { // Given var dbContext = InMemoryDbProvider.GetDbContext(); var returnedLastSeason = new SeasonArchive { Season = new List <Seasons> { Seasons.Winter }, Year = 2000 }; var jikanServiceBuilder = new JikanServiceBuilder().WithGetSeasonArchiveThrowing(); var handler = CreateHandler(dbContext, jikanServiceBuilder.Build()); // When var action = handler.Awaiting(x => x.HandleAsync()); // Then using (new AssertionScope()) { await action.Should().ThrowExactlyAsync <JikanRequestException>(); dbContext.AnimeSeasons.Should().BeEmpty(); } }
public async Task HandleAsync_GivenAlreadyExistingSeason_ShouldNotAddNewSeason() { // Given var dbContext = InMemoryDbProvider.GetDbContext(); var returnedLastSeason = new SeasonArchive { Season = new List <Seasons> { Seasons.Winter }, Year = 2000 }; var season = new SeasonBuilder() .WithId(1) .WithYear(2000) .WithName("Winter") .Build(); await dbContext.AddAsync(season); await dbContext.SaveChangesAsync(); var jikanServiceBuilder = new JikanServiceBuilder().WithLastSeasonArchiveReturned(returnedLastSeason); var handler = CreateHandler(dbContext, jikanServiceBuilder.Build()); // When await handler.HandleAsync(); // Then dbContext.AnimeSeasons.Should().ContainSingle(); }
public async Task HandleAsync_GivenMultipleSeasonsInYearAlreadyExisting_ShouldNotAddNewSeason() { // Given var dbContext = InMemoryDbProvider.GetDbContext(); var returnedLastSeason = new SeasonArchive { Season = new List <Seasons> { Seasons.Winter, Seasons.Spring, Seasons.Summer, Seasons.Fall }, Year = 2000 }; var seasons = new List <Domain.Entities.AnimeSeason> { new SeasonBuilder().WithId(10).WithYear(2000).WithName("Winter").Build(), new SeasonBuilder().WithId(11).WithYear(2000).WithName("Spring").Build(), new SeasonBuilder().WithId(13).WithYear(2000).WithName("Summer").Build(), new SeasonBuilder().WithId(14).WithYear(2000).WithName("Fall").Build(), }; await dbContext.AddRangeAsync(seasons); await dbContext.SaveChangesAsync(); var jikanServiceBuilder = new JikanServiceBuilder().WithLastSeasonArchiveReturned(returnedLastSeason); var handler = CreateHandler(dbContext, jikanServiceBuilder.Build()); // When await handler.HandleAsync(); // Then dbContext.AnimeSeasons.Should().HaveCount(4); }
public async Task HandleAsync_GivenMultipleSeasonsInYear_ShouldAddNewer() { // Given var dbContext = InMemoryDbProvider.GetDbContext(); var returnedLastSeason = new SeasonArchive { Season = new List <Seasons> { Seasons.Winter, Seasons.Spring }, Year = 2000 }; var jikanServiceBuilder = new JikanServiceBuilder().WithLastSeasonArchiveReturned(returnedLastSeason); var handler = CreateHandler(dbContext, jikanServiceBuilder.Build()); // When await handler.HandleAsync(); // Then using (new AssertionScope()) { dbContext.AnimeSeasons.Should().ContainSingle(); dbContext.AnimeSeasons.Single().Name.Should().Be("Spring"); dbContext.AnimeSeasons.Single().Year.Should().Be(2000); } }
public JikanServiceBuilder WithLastSeasonArchiveReturned(SeasonArchive seasonArchive) { JikanClient.Setup(x => x.GetSeasonArchive()) .ReturnsAsync(new SeasonArchives { Archives = new List <SeasonArchive> { seasonArchive } }); return(this); }
public JikanServiceBuilder WithLastSeasonArchiveReturned(SeasonArchive seasonArchive) { JikanClient.Setup(x => x.GetSeasonArchiveAsync()) .ReturnsAsync(new PaginatedJikanResponse <ICollection <SeasonArchive> >() { Data = new List <SeasonArchive> { seasonArchive } }); return(this); }
public async Task HandleAsync_GivenEmptyDatabase_ShouldAddNewSeason() { // Given var dbContext = InMemoryDbProvider.GetDbContext(); var returnedLastSeason = new SeasonArchive { Season = new List <Seasons> { Seasons.Winter }, Year = 2000 }; var jikanServiceBuilder = new JikanServiceBuilder().WithLastSeasonArchiveReturned(returnedLastSeason); var handler = CreateHandler(dbContext, jikanServiceBuilder.Build()); // When await handler.HandleAsync(); // Then dbContext.AnimeSeasons.Should().ContainSingle(); }