Пример #1
0
        public void CanHandlePongMessages()
        {
            var selfData = new SelfBotData { Id = "BOTID" };

            var message = new Pong
            {
                Type = EventType.Pong
            };

            var handler = new PingHandler();

            var result = handler.CanHandle(message);

            Assert.True(result);
        }
Пример #2
0
        public void CanNotHandleInvalidPingMessages()
        {
            var selfData = new SelfBotData { Id = "BOTID" };

            var message = new PlainMessage
            {
                Type = EventType.Message,
                Subtype = MessageSubType.PlainMessage,
                Text = "<@BOTID>: pingdom"
            };

            var handler = new PingHandler();

            var result = handler.CanHandle(message);

            Assert.False(result);
        }
Пример #3
0
        public void CanHandlePongMessages()
        {
            var selfData = new SelfBotData {
                Id = "BOTID"
            };

            var message = new Pong
            {
                Type = EventType.Pong
            };

            var handler = new PingHandler();

            var result = handler.CanHandle(message);

            Assert.True(result);
        }
Пример #4
0
        public void CanNotHandleInvalidPingMessages()
        {
            var selfData = new SelfBotData {
                Id = "BOTID"
            };

            var message = new PlainMessage
            {
                Type    = EventType.Message,
                Subtype = MessageSubType.PlainMessage,
                Text    = "<@BOTID>: pingdom"
            };

            var handler = new PingHandler();

            var result = handler.CanHandle(message);

            Assert.False(result);
        }
Пример #5
0
        public void DoesntPingWhenThereIsActivity()
        {
            var selfData = new SelfBotData {
                Id = "BOTID"
            };

            var mockState = new Mock <IBotState>();

            mockState.Setup(m => m.Connected).Returns(true).Verifiable();

            var mockService = new Mock <IBotServices>();

            mockService.Setup(m => m.SendRawMessage(It.Is <OutputMessage>(om => om.Type == "ping")))
            .Verifiable();

            var handler = new PingHandler
            {
                BotState        = mockState.Object,
                BotServices     = mockService.Object,
                PingFrequencyMs = 200
            };

            var message = new PlainMessage
            {
                Type    = EventType.Message,
                Subtype = MessageSubType.PlainMessage,
                Text    = "<@BOTID>: pingdom"
            };

            Thread.Sleep(250);

            foreach (var loop in Enumerable.Range(1, 6))
            {
                handler.CanHandle(message);
                Thread.Sleep(100);
            }

            mockService.Verify(m => m.SendRawMessage(It.Is <OutputMessage>(om => om.Type == "ping")), Times.Exactly(1));
        }
Пример #6
0
        public void DoesntPingWhenThereIsActivity()
        {
            var selfData = new SelfBotData { Id = "BOTID" };

            var mockState = new Mock<IBotState>();
            mockState.Setup(m => m.Connected).Returns(true).Verifiable();

            var mockService = new Mock<IBotServices>();
            mockService.Setup(m => m.SendRawMessage(It.Is<OutputMessage>(om => om.Type == "ping")))
                       .Verifiable();

            var handler = new PingHandler
            {
                BotState = mockState.Object,
                BotServices = mockService.Object,
                PingFrequencyMs = 200
            };

            var message = new PlainMessage
            {
                Type = EventType.Message,
                Subtype = MessageSubType.PlainMessage,
                Text = "<@BOTID>: pingdom"
            };

            Thread.Sleep(250);

            foreach (var loop in Enumerable.Range(1, 6))
            {
                handler.CanHandle(message);
                Thread.Sleep(100);
            }

            mockService.Verify(m => m.SendRawMessage(It.Is<OutputMessage>(om => om.Type == "ping")), Times.Exactly(1));
        }