本文整理汇总了C#中System.Net.Player.ChangeChannel方法的典型用法代码示例。如果您正苦于以下问题:C# Player.ChangeChannel方法的具体用法?C# Player.ChangeChannel怎么用?C# Player.ChangeChannel使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Net.Player
的用法示例。
在下文中一共展示了Player.ChangeChannel方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TestChangeChannel
public async void TestChangeChannel()
{
var serverConnectionMock = new Mock<IServerConnection>();
serverConnectionMock.Setup(s => s.Get(It.Is<Uri>(u => u.AbsolutePath.EndsWith("app_channels")), It.IsAny<Action<HttpWebRequest>>())).ReturnsAsync(Resource.ChannelListExample).Verifiable();
serverConnectionMock.Setup(s => s.Get(It.Is<Uri>(u => u.AbsolutePath.EndsWith("playlist")), It.IsAny<Action<HttpWebRequest>>())).ReturnsAsync(Resource.PlayList).Verifiable();
var session = new Session(serverConnectionMock.Object);
var player = new Player(session);
var channelGroups = await new Discovery(session).GetRecommendedChannels();
Assert.IsNotNull(channelGroups);
var newChannels = channelGroups.SelectMany(group => group.Channels).ToArray();
Assert.IsNotEmpty(newChannels);
foreach (var newChannel in newChannels)
{
await player.ChangeChannel(newChannel);
serverConnectionMock.Verify();
Assert.AreEqual(newChannel, player.CurrentChannel);
Validator.ValidateChannel(player.CurrentChannel);
Validator.ValidateSong(player.CurrentSong);
}
}
示例2: TestChangeChannelAndValidateParameterStart
public async void TestChangeChannelAndValidateParameterStart(ChangeChannelCommandType type)
{
var serverConnectionMock = new Mock<IServerConnection>();
serverConnectionMock.Setup(s => s.Get(It.Is<Uri>(u => u.AbsolutePath.EndsWith("playlist")), It.IsAny<Action<HttpWebRequest>>())).ReturnsAsync(Resource.PlayList).Verifiable();
var session = new Session(serverConnectionMock.Object);
var player = new Player(session);
var channel = new Channel(123) { Start = "StartCode" };
await player.ChangeChannel(channel, type);
serverConnectionMock.Verify();
var startValidator = new Func<Uri, bool>(uri =>
{
var queries = uri.GetQueries();
switch (type)
{
case ChangeChannelCommandType.Normal:
return queries.ContainsKey("start") && queries["start"] == "StartCode";
case ChangeChannelCommandType.PlayRelatedSongs:
return !queries.ContainsKey("start");
default:
throw new ArgumentOutOfRangeException(nameof(type), type, null);
}
});
serverConnectionMock.Verify(s => s.Get(It.Is<Uri>(u => u.AbsolutePath.EndsWith("playlist") && startValidator(u)), It.IsAny<Action<HttpWebRequest>>()));
}
示例3: TestNext
public async void TestNext(NextCommandType type)
{
var playList = _defaultPlayList.DeepClone();
string reportType = GetReportTypeStringByNextCommandType(type);
var serverConnectionMock = new Mock<IServerConnection>();
serverConnectionMock.Setup(s => s.Get(It.Is<Uri>(u => u.AbsolutePath.EndsWith("playlist")
&& (u.GetQueries().Contains(new KeyValuePair<string, string>("type", "n"))
|| u.GetQueries().Contains(new KeyValuePair<string, string>("type", reportType)))
&& !u.GetQueries().ContainsKey("start")),
It.IsAny<Action<HttpWebRequest>>())).Returns(() => Task.FromResult(playList.ToString())).Callback(
() =>
{
if (type == NextCommandType.CurrentSongEnded)
{
playList["song"] = new JArray();
}
else
{
var first = playList["song"][0];
first.Remove();
playList["song"].Last.AddAfterSelf(first);
}
}).Verifiable();
var session = new Session(serverConnectionMock.Object);
var player = new Player(session);
await player.ChangeChannel(new Channel(0));
var originalSong = player.CurrentSong;
for (var i = 0; i < 5; ++i)
{
await player.Next(type);
var newSong = player.CurrentSong;
Assert.AreNotEqual(newSong, originalSong);
originalSong = newSong;
}
serverConnectionMock.Verify();
}
示例4: TestNoAvailableSongs_SetRedHeart
public async void TestNoAvailableSongs_SetRedHeart(bool redHeart)
{
var emptyPlayList = _defaultPlayList.DeepClone();
emptyPlayList["song"] = new JArray();
var serverConnectionMock = new Mock<IServerConnection>();
serverConnectionMock.Setup(s => s.Get(It.Is<Uri>(u => u.AbsolutePath.EndsWith("playlist") && u.GetQueries().Contains(new KeyValuePair<string, string>("type", "n"))),
It.IsAny<Action<HttpWebRequest>>())).ReturnsAsync(Resource.PlayList).Verifiable();
serverConnectionMock.Setup(s => s.Get(It.Is<Uri>(u => u.AbsolutePath.EndsWith("playlist") && u.GetQueries().Contains(new KeyValuePair<string, string>("type", GetReportTypeStringByRedHeart(redHeart)))),
It.IsAny<Action<HttpWebRequest>>())).ReturnsAsync(emptyPlayList.ToString()).Verifiable();
var player = new Player(new Session(serverConnectionMock.Object));
await player.ChangeChannel(new Channel(0));
await AssertEx.ThrowsAsync<NoAvailableSongsException>(async () => await player.SetRedHeart(redHeart));
serverConnectionMock.Verify();
}
示例5: TestSongNotSelectedException
public async void TestSongNotSelectedException()
{
var playList = _defaultPlayList.DeepClone();
var emptyPlayList = _defaultPlayList.DeepClone();
emptyPlayList["song"] = new JArray();
var serverConnectionMock = new Mock<IServerConnection>();
serverConnectionMock.Setup(s => s.Get(It.Is<Uri>(u => u.AbsolutePath.EndsWith("playlist") && u.GetQueries().Contains(new KeyValuePair<string, string>("type", "n"))),
It.IsAny<Action<HttpWebRequest>>())).ReturnsAsync(playList.ToString()).Verifiable();
serverConnectionMock.Setup(s => s.Get(It.Is<Uri>(u => u.AbsolutePath.EndsWith("playlist") && u.GetQueries().Contains(new KeyValuePair<string, string>("type", "p"))),
It.IsAny<Action<HttpWebRequest>>())).ReturnsAsync(playList.ToString()).Verifiable();
serverConnectionMock.Setup(s => s.Get(It.Is<Uri>(u => u.AbsolutePath.EndsWith("playlist") && u.GetQueries().Contains(new KeyValuePair<string, string>("type", "s"))),
It.IsAny<Action<HttpWebRequest>>())).ReturnsAsync(emptyPlayList.ToString()).Verifiable();
var session = new Session(serverConnectionMock.Object);
var player = new Player(session);
await player.ChangeChannel(new Channel(0));
await AssertEx.ThrowsAsync<NoAvailableSongsException>(async () => await player.Next(NextCommandType.SkipCurrentSong));
Assert.IsNotNull(player.CurrentChannel);
Assert.IsNull(player.CurrentSong);
await AssertEx.ThrowsAsync<SongNotSelectedException>(async () => await player.SetRedHeart(true));
}
示例6: TestSongEnded
public async void TestSongEnded()
{
var playList = _defaultPlayList.DeepClone();
var emptyPlayList = _defaultPlayList.DeepClone();
emptyPlayList["song"] = new JArray();
var serverConnectionMock = new Mock<IServerConnection>();
serverConnectionMock.Setup(s => s.Get(It.Is<Uri>(u => u.AbsolutePath.EndsWith("playlist") && u.GetQueries().Contains(new KeyValuePair<string, string>("type", "n"))),
It.IsAny<Action<HttpWebRequest>>())).ReturnsAsync(playList.ToString()).Verifiable();
serverConnectionMock.Setup(s => s.Get(It.Is<Uri>(u => u.AbsolutePath.EndsWith("playlist") && u.GetQueries().Contains(new KeyValuePair<string, string>("type", "p"))),
It.IsAny<Action<HttpWebRequest>>())).ReturnsAsync(playList.ToString()).Verifiable();
serverConnectionMock.Setup(s => s.Get(It.Is<Uri>(u => u.AbsolutePath.EndsWith("playlist") && u.GetQueries().Contains(new KeyValuePair<string, string>("type", "e"))),
It.IsAny<Action<HttpWebRequest>>())).ReturnsAsync(emptyPlayList.ToString()).Verifiable();
var session = new Session(serverConnectionMock.Object);
var player = new Player(session);
await player.ChangeChannel(new Channel(0));
var songCount = playList["song"].Count();
for (var i = 0; i < songCount*2; ++i)
{
await player.Next(NextCommandType.CurrentSongEnded);
}
serverConnectionMock.Verify();
}
示例7: TestSetRedHeart
public async void TestSetRedHeart(bool redHeart)
{
string reportType = GetReportTypeStringByRedHeart(redHeart);
var serverConnectionMock = new Mock<IServerConnection>();
serverConnectionMock.Setup(s => s.Get(It.Is<Uri>(u => u.AbsolutePath.EndsWith("playlist")
&& u.GetQueries().Contains(new KeyValuePair<string, string>("type", "n"))),
It.IsAny<Action<HttpWebRequest>>())).ReturnsAsync(Resource.PlayList).Verifiable();
var session = new Session(serverConnectionMock.Object);
var player = new Player(session);
await player.ChangeChannel(new Channel(0));
var originalSong = player.CurrentSong;
serverConnectionMock.Setup(s => s.Get(It.Is<Uri>(u => u.AbsolutePath.EndsWith("playlist")
&& u.GetQueries().Contains(new KeyValuePair<string, string>("type", reportType))
&& u.GetQueries().Contains(new KeyValuePair<string, string>("sid", player.CurrentSong.Sid))),
It.IsAny<Action<HttpWebRequest>>())).ReturnsAsync(Resource.PlayList).Verifiable();
await player.SetRedHeart(redHeart);
Assert.AreEqual(originalSong, player.CurrentSong);
serverConnectionMock.Verify();
}