示例#1
0
        public async Task GetAudioEntriesOfPlaylistAsync_ReturnsExpectedNbOfAudioEntries()
        {
            var audios = new[]
            {
                new AudioBuilder()
                .WithId(0)
                .WithAudioPlaylist(new AudioPlaylistsBuilder().WithAudioId(0).WithPlaylistId(0).Build())
                .Build(),

                new AudioBuilder()
                .WithId(1)
                .WithAudioPlaylist(new AudioPlaylistsBuilder().WithAudioId(1).WithPlaylistId(0).Build())
                .Build(),

                new AudioBuilder()
                .WithId(2)
                .WithAudioPlaylist(new AudioPlaylistsBuilder().WithAudioId(2).WithPlaylistId(1).Build())
                .Build(),
            };

            var dbContextMock = new DbContextMock <ApplicationDbContext>(DummyDbOptions);

            dbContextMock.CreateDbSetMock(x => x.AudioEntries, audios);

            var sut = new SqlAudioEntriesRepository(dbContextMock.Object);

            var actual = await sut.GetAudioEntriesByPlaylistAsync(GuidFactory.MakeFromInt(0), CancellationToken.None);

            actual.Should().HaveCount(2);
        }
示例#2
0
        public async Task GetPlaylistDetails_ForPlaylistContainingAnAudio_DetailsContainsASingleAudio()
        {
            var playlist = new PlaylistBuilder()
                           .WithId(GuidFactory.MakeFromInt(42))
                           .Build();

            var playlistRepo = Substitute.For <IPlaylistEntriesRepository>();

            playlistRepo
            .GetByIdAsync(Arg.Any <Guid>(), CancellationToken.None)
            .Returns(x => playlist);

            var audioRepo = Substitute.For <IAudioEntriesRepository>();

            audioRepo
            .GetAudioEntriesByPlaylistAsync(playlist.PlaylistId, CancellationToken.None)
            .Returns(x => new[] { new AudioBuilder().Build() });

            var sut = new PlaylistServiceBuilder()
                      .WithPlaylistRepository(playlistRepo)
                      .WithAudioRepository(audioRepo)
                      .WithMapper(new MapperBuilder().WithDefaultProfile().Build())
                      .Build();

            var playlistDetails = await sut.GetPlaylistDetails(playlist.PlaylistId, CancellationToken.None);

            var actual = playlistDetails.AudioEntries;

            actual.Should().ContainSingle();
        }
示例#3
0
        public async Task EntryExistsAsync_ForNonexistentElement_ReturnsFalse()
        {
            var audio = new AudioBuilder().WithId(GuidFactory.MakeFromInt(0)).Build();

            var dbContextMock         = new DbContextMock <ApplicationDbContext>(DummyDbOptions);
            var audioEntriesDbSetMock = dbContextMock.CreateDbSetMock(x => x.AudioEntries, new[] { audio });

            var sut = new SqlAudioEntriesRepository(dbContextMock.Object);

            var actual = await sut.EntryExistsAsync(GuidFactory.MakeFromInt(1), CancellationToken.None);

            actual.Should().BeFalse();
        }
示例#4
0
        public async Task CountAsync_ForMultipleEntries_CountAsExpected()
        {
            var audios = new[]
            {
                new AudioBuilder().WithId(GuidFactory.MakeFromInt(0)).Build(),
                new AudioBuilder().WithId(GuidFactory.MakeFromInt(1)).Build(),
            };

            var dbContextMock         = new DbContextMock <ApplicationDbContext>(DummyDbOptions);
            var audioEntriesDbSetMock = dbContextMock.CreateDbSetMock(x => x.AudioEntries, audios);

            var sut = new SqlAudioEntriesRepository(dbContextMock.Object);

            var actual = await sut.CountAsync(CancellationToken.None);

            actual.Should().Be(2);
        }
示例#5
0
        public async Task GetRangeAsync_ReturnsExpectedNbOfElemnets()
        {
            var audios = new[]
            {
                new AudioBuilder().WithId(GuidFactory.MakeFromInt(0)).Build(),
                new AudioBuilder().WithId(GuidFactory.MakeFromInt(1)).Build(),
                new AudioBuilder().WithId(GuidFactory.MakeFromInt(2)).Build(),
                new AudioBuilder().WithId(GuidFactory.MakeFromInt(3)).Build(),
            };

            var dbContextMock         = new DbContextMock <ApplicationDbContext>(DummyDbOptions);
            var audioEntriesDbSetMock = dbContextMock.CreateDbSetMock(x => x.AudioEntries, audios);

            var sut = new SqlAudioEntriesRepository(dbContextMock.Object);

            var actual = await sut.GetRangeAsync(1, 2, CancellationToken.None);

            actual.Should().HaveCount(2);
        }
示例#6
0
 public AudioBuilder WithId(int audioId)
 {
     _audioId = GuidFactory.MakeFromInt(audioId);
     return(this);
 }
 public AudioPlaylistsBuilder WithPlaylistId(int playlistId)
 {
     _playlistId = GuidFactory.MakeFromInt(playlistId);
     return(this);
 }