xamarin-macios/tests/monotouch-test/MediaPlayer/MediaItemTest.cs

90 строки
4.0 KiB
C#

// Copyright 2014 Xamarin Inc. All rights reserved
#if !__TVOS__ && !__WATCHOS__ && !MONOMAC
using System;
using System.Drawing;
using Foundation;
using MediaPlayer;
using ObjCRuntime;
using NUnit.Framework;
namespace MonoTouchFixtures.MediaPlayer {
[TestFixture]
[Preserve (AllMembers = true)]
public class MediaItemTest {
[Test]
public void DefaultValues ()
{
if (Runtime.Arch != Arch.DEVICE)
Assert.Inconclusive ("This test only works on device (the simulator does not have an iPod Music library).");
TestRuntime.RequestMediaLibraryPermission (true);
using (var q = new MPMediaQuery ()) {
var items = q.Items;
if (items == null)
Assert.Inconclusive ("This test needs media library privacy permission to be executed.");
if (items.Length == 0)
Assert.Inconclusive ("This test needs music in the music library on the device.");
var six_dot_oh = true;
var nine_dot_two = TestRuntime.CheckSystemVersion (PlatformName.iOS, 9, 2);
var ten_dot_oh = TestRuntime.CheckSystemVersion (PlatformName.iOS, 10, 0);
var ten_dot_three = TestRuntime.CheckSystemVersion (PlatformName.iOS, 10, 3);
foreach (var i in items) {
object dummy;
Assert.DoesNotThrow (() => dummy = i.AlbumArtist, "AlbumArtist");
Assert.DoesNotThrow (() => dummy = i.AlbumArtistPersistentID, "AlbumArtistPersistentID");
Assert.DoesNotThrow (() => dummy = i.AlbumPersistentID, "AlbumPersistentID");
Assert.DoesNotThrow (() => dummy = i.AlbumTitle, "AlbumTitle");
Assert.DoesNotThrow (() => dummy = i.AlbumTrackCount, "AlbumTrackCount");
Assert.DoesNotThrow (() => dummy = i.AlbumTrackNumber, "AlbumTrackNumber");
Assert.DoesNotThrow (() => dummy = i.Artist, "Artist");
Assert.DoesNotThrow (() => dummy = i.ArtistPersistentID, "ArtistPersistentID");
Assert.DoesNotThrow (() => dummy = i.Artwork, "Artwork");
Assert.DoesNotThrow (() => dummy = i.AssetURL, "AssetURL");
Assert.DoesNotThrow (() => dummy = i.BeatsPerMinute, "BeatsPerMinute");
Assert.DoesNotThrow (() => dummy = i.BookmarkTime, "BookmarkTime");
Assert.DoesNotThrow (() => dummy = i.Comments, "Comments");
Assert.DoesNotThrow (() => dummy = i.Composer, "Composer");
Assert.DoesNotThrow (() => dummy = i.ComposerPersistentID, "ComposerPersistentID");
Assert.DoesNotThrow (() => dummy = i.DiscCount, "DiscCount");
Assert.DoesNotThrow (() => dummy = i.DiscNumber, "DiscNumber");
Assert.DoesNotThrow (() => dummy = i.Genre, "Genre");
Assert.DoesNotThrow (() => dummy = i.GenrePersistentID, "GenrePersistentID");
if (six_dot_oh)
Assert.DoesNotThrow (() => dummy = i.IsCloudItem, "IsCloudItem");
Assert.DoesNotThrow (() => dummy = i.IsCompilation, "IsCompilation");
Assert.DoesNotThrow (() => dummy = i.LastPlayedDate, "LastPlayedDate");
Assert.DoesNotThrow (() => dummy = i.Lyrics, "Lyrics");
Assert.DoesNotThrow (() => dummy = i.MediaType, "MediaType");
Assert.DoesNotThrow (() => dummy = i.PersistentID, "PersistentID");
Assert.DoesNotThrow (() => dummy = i.PlaybackDuration, "PlaybackDuration");
Assert.DoesNotThrow (() => dummy = i.PlayCount, "PlayCount");
Assert.DoesNotThrow (() => dummy = i.PodcastPersistentID, "PodcastPersistentID");
Assert.DoesNotThrow (() => dummy = i.PodcastTitle, "PodcastTitle");
Assert.DoesNotThrow (() => dummy = i.Rating, "Rating");
Assert.DoesNotThrow (() => dummy = i.ReleaseDate, "ReleaseDate");
Assert.DoesNotThrow (() => dummy = i.SkipCount, "SkipCount");
Assert.DoesNotThrow (() => dummy = i.Title, "Title");
Assert.DoesNotThrow (() => dummy = i.UserGrouping, "UserGrouping");
if (nine_dot_two)
Assert.DoesNotThrow (() => dummy = i.HasProtectedAsset, "HasProtectedAsset");
if (ten_dot_oh) {
Assert.DoesNotThrow (() => dummy = i.IsExplicitItem, "IsExplicitItem");
Assert.DoesNotThrow (() => dummy = i.DateAdded, "DateAdded");
}
if (ten_dot_three)
Assert.DoesNotThrow (() => dummy = i.PlaybackStoreID, "PlaybackStoreID");
}
}
}
}
}
#endif // !__TVOS__ && !__WATCHOS__