public void ApplyValuesFrom(MusicMetadata sourceMetadata) { Artists = sourceMetadata.Artists; Title = sourceMetadata.Title; Rating = sourceMetadata.Rating; Album = sourceMetadata.Album; TrackNumber = sourceMetadata.TrackNumber; Year = sourceMetadata.Year; Genre = sourceMetadata.Genre; AlbumArtist = sourceMetadata.AlbumArtist; Publisher = sourceMetadata.Publisher; Subtitle = sourceMetadata.Subtitle; Composers = sourceMetadata.Composers; Conductors = sourceMetadata.Conductors; }
public async Task ImplicitLoadMetadata() { var metadata = new MusicMetadata(TimeSpan.Zero, 0); var musicFile = new MusicFile(async fileNme => { await Task.Yield(); return metadata; }, "testfile.mp3"); Assert.AreEqual("testfile.mp3", musicFile.FileName); Assert.IsFalse(musicFile.SharedMusicFiles.Any()); Assert.IsFalse(musicFile.IsMetadataLoaded); Assert.IsNull(musicFile.Metadata); await Task.Delay(5); Assert.AreEqual(metadata, musicFile.Metadata); Assert.AreEqual(metadata, musicFile.GetMetadataAsync().Result); Assert.IsTrue(musicFile.IsMetadataLoaded); }
public void ApplyValuesFromTest() { var metadata1 = new MusicMetadata(TimeSpan.FromSeconds(1), 64000); var metadata2 = new MusicMetadata(TimeSpan.FromSeconds(1), 64000); Assert.IsTrue(metadata1.IsSupported); Assert.IsTrue(metadata2.IsSupported); metadata2.Artists = new[] { "Artist1", "Artist2" }; metadata2.Title = "Title"; metadata2.Rating = 80; metadata2.Album = "Album"; metadata2.TrackNumber = 3; metadata2.Year = 2000; metadata2.Genre = new[] { "Genre1", "Genre2" }; metadata2.AlbumArtist = "AlbumArtist"; metadata2.Publisher = "Publisher"; metadata2.Subtitle = "Subtitle"; metadata2.Composers = new[] { "Composer1", "Composer2" }; metadata2.Conductors = new[] { "Conductor1", "Conductor2" }; metadata1.ApplyValuesFrom(metadata2); TestHelper.AssertHaveEqualPropertyValues(metadata2, metadata1); }
public MockMusicFile(MusicMetadata metadata, string fileName) : base(x => Task.FromResult(metadata), fileName) { GetMetadataAsync().GetAwaiter().GetResult(); // Ensure that the metadata is loaded. }
public SampleMusicFile(MusicMetadata metadata, string fileName) : base(x => Task.FromResult(metadata), fileName) { }
private static MusicFile CreateMockMusicFile(string fileName, string title, params string[] artists) { var metadata = new MusicMetadata(TimeSpan.FromSeconds(3), 128000) { Title = title, Artists = artists }; return new MockMusicFile(metadata, fileName); }
public void TotalDurationWithMetadataLoading() { var manager = new PlaylistManager(); Assert.AreEqual(TimeSpan.Zero, manager.TotalDuration); var firstFile = new MockMusicFile(new MusicMetadata(TimeSpan.FromSeconds(10), 0), ""); manager.AddAndReplaceItems(new[] { new PlaylistItem(firstFile) }); var secondMetadata = new MusicMetadata(TimeSpan.FromSeconds(20), 0); var secondFile = new MusicFile(async x => { await Task.Delay(10); return secondMetadata; }, ""); manager.AddItems(new[] { new PlaylistItem(secondFile) }); Assert.IsTrue(manager.IsTotalDurationEstimated); Assert.AreEqual(TimeSpan.FromSeconds(20), manager.TotalDuration); AssertHelper.PropertyChangedEvent(manager, x => x.TotalDuration, () => secondFile.GetMetadataAsync().GetResult()); Assert.IsFalse(manager.IsTotalDurationEstimated); Assert.AreEqual(TimeSpan.FromSeconds(30), manager.TotalDuration); var thirdFile = new MockMusicFile(new MusicMetadata(TimeSpan.FromSeconds(30), 0), ""); AssertHelper.PropertyChangedEvent(manager, x => x.TotalDuration, () => manager.AddItems(new[] { new PlaylistItem(thirdFile) })); Assert.AreEqual(TimeSpan.FromSeconds(60), manager.TotalDuration); }