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)); } }
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()); } }
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); }
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)); } }