コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }