public void StartPollAndVote() { this.ChatWrapper(async(MixerClient client, ChatClient chatClient) => { await this.AuthenticateChat(chatClient); this.ClearRepliesAndEvents(); await chatClient.StartVote("Turkey or Ham?", new List <string>() { "Turkey", "Ham" }, 30); await Task.Delay(1000); Assert.IsTrue(this.replyPackets.Count > 0); ChatReplyPacket replyPacket = this.replyPackets.First(); Assert.IsTrue(replyPacket.id == (uint)(chatClient.CurrentPacketID - 1)); Assert.IsTrue(replyPacket.data.ToString().Equals("Poll started.")); this.ClearRepliesAndEvents(); await chatClient.ChooseVote(0); await Task.Delay(1000); Assert.IsTrue(this.replyPackets.Count > 0); replyPacket = this.replyPackets.First(); Assert.IsTrue(replyPacket.id == (uint)(chatClient.CurrentPacketID - 1)); Assert.IsTrue((bool)replyPacket.data); }); }
private void OnReplyOccurred(ChatReplyPacket replyPacket) { if (this.ReplyOccurred != null) { this.ReplyOccurred(this, replyPacket); } }
private void AuthenticateEventHandler(object sender, ChatReplyPacket e) { JToken value; if (e.id == (this.CurrentPacketID - 1) && e.data.TryGetValue("authenticated", out value) && (bool)value) { this.authenticateSuccessful = true; } }
public override Task Process(ChatReplyPacket packet, IPacketContext context) { // TODO: Get sender User var message = new ChatMessage(null, "", packet.Message); ChatService.InvokeReceived(message); return(Task.CompletedTask); }
private void ValidateMessage(ChatClient chatClient, string messageText) { Assert.IsTrue(this.replyPackets.Count > 0); ChatReplyPacket replyPacket = this.replyPackets.First(); Assert.IsTrue(replyPacket.id == (uint)(chatClient.CurrentPacketID - 1)); Assert.IsTrue(replyPacket.data["user_name"].ToString().Equals(chatClient.User.username)); Assert.IsTrue(replyPacket.data["message"]["message"][0]["text"].ToString().Equals(messageText)); Assert.IsTrue(this.messages.Count > 0); ChatMessageEventModel message = this.messages.First(); Assert.IsTrue(message.message.message.First().text.Equals(messageText)); }
public void ClearMessages() { this.ChatWrapper(async(MixerClient client, ChatClient chatClient) => { await this.AuthenticateChat(chatClient); this.ClearRepliesAndEvents(); await chatClient.ClearMessages(); await Task.Delay(1000); Assert.IsTrue(this.replyPackets.Count > 0); ChatReplyPacket replyPacket = this.replyPackets.First(); Assert.IsTrue(replyPacket.id == (uint)(chatClient.CurrentPacketID - 1)); Assert.IsTrue(replyPacket.data.ToString().Equals("Messages cleared.")); }); }
public void Whisper() { this.ChatWrapper(async(MixerClient client, ChatClient chatClient) => { await this.AuthenticateChat(chatClient); this.ClearRepliesAndEvents(); string messageText = "Hello World!"; await chatClient.Whisper(chatClient.User.username, messageText); await Task.Delay(1000); this.ValidateMessage(chatClient, messageText); ChatReplyPacket replyPacket = this.replyPackets.First(); Assert.IsTrue(replyPacket.data["target"].ToString().Equals(chatClient.User.username)); }); }
public void DeleteMessage() { this.ChatWrapper(async(MixerClient client, ChatClient chatClient) => { await this.SendBasicMessage(chatClient); ChatMessageEventModel message = this.messages.First(); this.ClearRepliesAndEvents(); await chatClient.DeleteMessage(message.id); await Task.Delay(1000); Assert.IsTrue(this.replyPackets.Count > 0); ChatReplyPacket replyPacket = this.replyPackets.First(); Assert.IsTrue(replyPacket.id == (uint)(chatClient.CurrentPacketID - 1)); Assert.IsTrue(replyPacket.data.ToString().Equals("Message deleted.")); }); }
public void PurgeUser() { this.ChatWrapper(async(MixerClient client, ChatClient chatClient) => { await this.AuthenticateChat(chatClient); this.ClearRepliesAndEvents(); UserModel user = await client.Users.GetUser("SXTBot"); await chatClient.PurgeUser(user.username); await Task.Delay(1000); Assert.IsTrue(this.replyPackets.Count > 0); ChatReplyPacket replyPacket = this.replyPackets.First(); Assert.IsTrue(replyPacket.id == (uint)(chatClient.CurrentPacketID - 1)); Assert.IsTrue(string.IsNullOrEmpty(replyPacket.error)); }); }
public void TimeoutUser() { this.ChatWrapper(async(MixerClient client, ChatClient chatClient) => { await this.AuthenticateChat(chatClient); this.ClearRepliesAndEvents(); UserModel user = await client.Users.GetUser("SXTBot"); await chatClient.TimeoutUser(user.username, 1); await Task.Delay(1000); Assert.IsTrue(this.replyPackets.Count > 0); ChatReplyPacket replyPacket = this.replyPackets.First(); Assert.IsTrue(replyPacket.id == (uint)(chatClient.CurrentPacketID - 1)); Assert.IsTrue(replyPacket.data.ToString().Contains("has been timed out for")); }); }
private async Task Receive() { await Task.Delay(100); while (this.webSocket != null) { if (this.webSocket.State == WebSocketState.Open) { byte[] buffer = new byte[this.bufferSize]; WebSocketReceiveResult result = await this.webSocket.ReceiveAsync(new ArraySegment <byte>(buffer), CancellationToken.None); if (result != null) { if (result.CloseStatus == null || result.CloseStatus != WebSocketCloseStatus.Empty) { string jsonBuffer = this.encoder.GetString(buffer); ChatPacket packet = JsonConvert.DeserializeObject <ChatPacket>(jsonBuffer); if (packet.type.Equals("reply")) { ChatReplyPacket replyPacket = JsonConvert.DeserializeObject <ChatReplyPacket>(jsonBuffer); this.OnReplyOccurred(replyPacket); } else if (packet.type.Equals("event")) { ChatEventPacket eventPacket = JsonConvert.DeserializeObject <ChatEventPacket>(jsonBuffer); this.OnEventOccurred(eventPacket); } } else { this.OnDisconnectOccurred(result); } } } } }
private void ChatClient_ReplyOccurred(object sender, ChatReplyPacket e) { this.replyPackets.Add(e); }