public void TestAddUpdateRemove() { AlbumPlayedDatabase albumPlayedDatabase = new AlbumPlayedDatabase(_settingsLookup[ConnectionKey]); GetTestAlbumPlayed(out var name, out AlbumPlayed albumPlayed); // Test album played is not there Assert.IsNotNull(albumPlayedDatabase.LoadedItems); int numberInitialItems = albumPlayedDatabase.LoadedItems.Count; List <string> userNames = albumPlayedDatabase.LoadedItems.ToList().Select(x => x.Album).ToList(); Assert.IsFalse(userNames.Contains(name)); // Add new album played albumPlayedDatabase.AddNewItemToDatabase(albumPlayed); albumPlayedDatabase.ConnectToDatabase(); Assert.AreNotEqual(numberInitialItems, albumPlayedDatabase.LoadedItems.Count); Assert.AreEqual(1, albumPlayedDatabase.LoadedItems.Count - numberInitialItems); List <string> userNames2 = albumPlayedDatabase.LoadedItems.ToList().Select(x => x.Album).ToList(); Assert.IsTrue(userNames2.Contains(name)); // Update the album played to have different album name albumPlayed.Album = UpdatedAlbumName; albumPlayedDatabase.UpdateDatabaseItem(albumPlayed); albumPlayedDatabase.ConnectToDatabase(); List <string> userNames3 = albumPlayedDatabase.LoadedItems.ToList().Select(x => x.Album).ToList(); Assert.IsTrue(userNames3.Contains(UpdatedAlbumName)); // Remove the new album played albumPlayedDatabase.RemoveItemFromDatabase(albumPlayed); albumPlayedDatabase.ConnectToDatabase(); Assert.AreEqual(albumPlayedDatabase.LoadedItems.Count, numberInitialItems); List <string> userNames4 = albumPlayedDatabase.LoadedItems.ToList().Select(x => x.Album).ToList(); Assert.IsFalse(userNames4.Contains(UpdatedAlbumName)); }
public IActionResult UpdateAlbum([FromBody] DisplayAlbum existingAlbum) { // set up the successful response AlbumPlayedAddResponse response = new AlbumPlayedAddResponse { ErrorCode = (int)UserResponseCode.Success, Album = new DisplayAlbum(existingAlbum), FailReason = "", UserId = "" }; // Find the item lock (Lock) { var itemToUpdate = _albumPlayedDatabase.LoadedItems.FirstOrDefault(x => x.Id.ToString() == existingAlbum.Id); if (itemToUpdate == null) { response.ErrorCode = (int)UserResponseCode.UnknownItem; response.FailReason = "Could not find item"; } else { itemToUpdate.Date = existingAlbum.Date; itemToUpdate.Location = existingAlbum.Location; itemToUpdate.Artist = existingAlbum.Artist; itemToUpdate.Album = existingAlbum.Album; itemToUpdate.ImagePath = existingAlbum.ImagePath; itemToUpdate.PlayerLink = existingAlbum.PlayerLink; _albumPlayedDatabase.UpdateDatabaseItem(itemToUpdate); } } return(Ok(response)); }