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);
            }
        }
Пример #5
0
 public JikanServiceBuilder WithLastSeasonArchiveReturned(SeasonArchive seasonArchive)
 {
     JikanClient.Setup(x => x.GetSeasonArchive())
     .ReturnsAsync(new SeasonArchives {
         Archives = new List <SeasonArchive> {
             seasonArchive
         }
     });
     return(this);
 }
Пример #6
0
 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();
        }