public void AddSongsToPlaylist_PlaylistNotFound_ThrowsNotFoundError()
        {
            const string dbName = "AddToPlaylistPlaylistNotFound";

            // Arrange
            using (var context = Utils.GetDbContext(dbName))
            {
                context.Albums.AddRange(new List <Album>
                {
                    new Album {
                        Id = 2
                    }
                });
                context.SaveChanges();
            }

            using (var context = Utils.GetDbContext(dbName))
            {
                var command = new AddSongsToPlaylistCommand
                {
                    PlaylistId = 1,
                    AlbumIds   = new List <int> {
                        2
                    }
                };

                // Act
                var handler = GetCommandHandler(context);

                // Assert
                Assert.ThrowsAsync <NotFoundException>(async() => await handler.Handle(command, CancellationToken.None));
            }
        }
Exemplo n.º 2
0
        public void MustHaveSongsOrAlbums_HasNeither_Fails()
        {
            var validator = GetValidator();
            var command   = new AddSongsToPlaylistCommand
            {
                PlaylistId = 1
            };

            var res = validator.Validate(command);

            Assert.IsFalse(res.IsValid);
        }
        public async Task AddSongsToPlaylist_ContainsAlbumIdList_AddsSongsToPlaylist()
        {
            const string dbName     = "AddToPlaylistContainsAlbums";
            const int    playlistId = 1;
            const int    albumId    = 2;

            // Arrange
            using (var context = Utils.GetDbContext(dbName))
            {
                context.Playlists.Add(new Playlist {
                    Id = playlistId
                });
                var album = new Album {
                    Id = albumId
                };
                context.Albums.Add(album);
                context.Tracks.AddRange(new List <Track>
                {
                    new Track {
                        Id = 1, Album = album
                    },
                    new Track {
                        Id = 2, Album = album
                    }
                });

                context.SaveChanges();
            }

            // Act
            using (var context = Utils.GetDbContext(dbName))
            {
                var command = new AddSongsToPlaylistCommand
                {
                    PlaylistId = 1,
                    AlbumIds   = new List <int> {
                        albumId
                    }
                };


                var handler = GetCommandHandler(context);
                await handler.Handle(command, CancellationToken.None);

                var tracks = context.Playlists
                             .Include(p => p.PlaylistTracks)
                             .ThenInclude(pt => pt.Track)
                             .SelectMany(p => p.PlaylistTracks.Select(pt => pt.Track));

                // Assert
                Assert.AreEqual(2, tracks.Count());
            }
        }
Exemplo n.º 4
0
        public void MustHaveSongsOrAlbums_HasEmptyLists_Fails()
        {
            var validator = GetValidator();
            var command   = new AddSongsToPlaylistCommand
            {
                PlaylistId = 1,
                AlbumIds   = new List <int>(),
                TrackIds   = new List <int>()
            };

            var res = validator.Validate(command);

            Assert.IsFalse(res.IsValid);
        }
Exemplo n.º 5
0
        public void MustHaveSongsOrAlbums_HasSongs_Passes()
        {
            var validator = GetValidator();
            var command   = new AddSongsToPlaylistCommand
            {
                PlaylistId = 1,
                TrackIds   = new List <int> {
                    1, 2
                }
            };

            var res = validator.Validate(command);

            Assert.IsTrue(res.IsValid);
        }
        public void AddSongsToPlaylist_SongsNotFound_ThrowsNotFoundError()
        {
            const string dbName     = "AddToPlaylistSongsNotFound";
            const int    playlistId = 1;

            // Arrange
            using (var context = Utils.GetDbContext(dbName))
            {
                context.Playlists.Add(new Playlist {
                    Id = playlistId
                });
                context.Tracks.AddRange(new List <Track>
                {
                    new Track {
                        Id = 1
                    }
                });
                context.SaveChanges();
            }

            using (var context = Utils.GetDbContext(dbName))
            {
                var command = new AddSongsToPlaylistCommand
                {
                    PlaylistId = 1,
                    TrackIds   = new List <int> {
                        2
                    }
                };

                // Act
                var handler = GetCommandHandler(context);

                // Assert
                Assert.ThrowsAsync <NotFoundException>(async() => await handler.Handle(command, CancellationToken.None));
            }
        }