public async Task ShuffleTest() { var res1 = await Tracklist.Clear(); Assert.True(res1); var res2 = await Library.Search( queryArtist : "Air Supply", queryAlbum : "Strangers In Love" ); Assert.True(res2.Succeeded); Assert.True(1 <= res2.Result.Length); Assert.True(1 <= res2.Result.First().Tracks.Length); var uris = res2.Result.First().Tracks .OrderBy(e => e.TrackNo) .Select(e => e.Uri) .ToArray(); var res3 = await Tracklist.Add(uris); Assert.True(res3.Succeeded); var ordered = new Dictionary <int, string>() { { 0, uris[0] }, { 1, uris[1] }, { 2, uris[2] }, { 3, uris[3] }, { 4, uris[4] }, { 10, uris[10] } }; var unordered = new Dictionary <int, string>() { { 5, uris[5] }, { 6, uris[6] }, { 7, uris[7] }, { 8, uris[8] }, { 9, uris[9] }, }; var res4 = await Tracklist.Shuffle(5, 10); Assert.True(res4); var res5 = await Tracklist.GetTlTracks(); Assert.True(res5.Succeeded); Assert.Equal(uris.Length, res5.Result.Length); foreach (var pair in ordered) { Assert.Equal(ordered[pair.Key], res5.Result[pair.Key].Track.Uri); } var shuffled = false; foreach (var pair in unordered) { if (pair.Value != res5.Result[pair.Key].Track.Uri) { shuffled = true; break; } } Assert.True(shuffled); }