public void DeleteHashBinsAndSubfingerprintsOnTrackDelete() { TagInfo tagInfo = GetTagInfo(1); var track = new TrackInfo(tagInfo.ISRC, tagInfo.Title, tagInfo.Artist); var trackReference = trackDao.InsertTrack(track, tagInfo.Duration).TrackReference; var hashData = FingerprintCommandBuilder.Instance .BuildFingerprintCommand() .From(GetAudioSamples()) .WithFingerprintConfig(config => { config.Stride = new StaticStride(0); return(config); }) .UsingServices(audioService) .Hash() .Result; subFingerprintDao.InsertHashDataForTrack(hashData, trackReference); var actualTrack = trackDao.ReadTrackById(tagInfo.ISRC); actualTrack.Should().NotBeNull(); AssertTracksAreEqual(track, actualTrack); // Act int modifiedRows = trackDao.DeleteTrack(trackReference) + subFingerprintDao.DeleteSubFingerprintsByTrackReference(trackReference); trackDao.ReadTrackById(tagInfo.ISRC).Should().BeNull(); subFingerprintDao.ReadHashedFingerprintsByTrackReference(actualTrack.TrackReference).Should().BeEmpty(); modifiedRows.Should().Be(1 + hashData.Count + (25 * hashData.Count)); }
public async Task DeleteHashBinsAndSubFingerprintsOnTrackDelete() { var tagInfo = GetTagInfo(); var track = new TrackInfo(tagInfo.ISRC, tagInfo.Title, tagInfo.Artist); var trackReference = trackDao.InsertTrack(track, tagInfo.Duration).TrackReference; var hashData = await FingerprintCommandBuilder.Instance .BuildFingerprintCommand() .From(GetAudioSamples()) .WithFingerprintConfig(config => { config.Stride = new StaticStride(0); return(config); }) .UsingServices(audioService) .Hash(); subFingerprintDao.InsertHashDataForTrack(hashData, trackReference); var actualTrack = trackDao.ReadTrackById(tagInfo.ISRC); Assert.IsNotNull(actualTrack); // Act int modifiedRows = trackDao.DeleteTrack(trackReference) + subFingerprintDao.DeleteSubFingerprintsByTrackReference(trackReference); Assert.IsNull(trackDao.ReadTrackById(tagInfo.ISRC)); Assert.IsFalse(subFingerprintDao.ReadHashedFingerprintsByTrackReference(actualTrack.TrackReference).Any()); Assert.AreEqual(1 + hashData.Count + 25 * hashData.Count, modifiedRows); }