Beispiel #1
0
        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);
            });
        }
Beispiel #2
0
 private void OnReplyOccurred(ChatReplyPacket replyPacket)
 {
     if (this.ReplyOccurred != null)
     {
         this.ReplyOccurred(this, replyPacket);
     }
 }
Beispiel #3
0
        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);
        }
Beispiel #5
0
        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));
        }
Beispiel #6
0
        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."));
            });
        }
Beispiel #7
0
        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));
            });
        }
Beispiel #8
0
        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."));
            });
        }
Beispiel #9
0
        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));
            });
        }
Beispiel #10
0
        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"));
            });
        }
Beispiel #11
0
        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);
                        }
                    }
                }
            }
        }
Beispiel #12
0
 private void ChatClient_ReplyOccurred(object sender, ChatReplyPacket e)
 {
     this.replyPackets.Add(e);
 }