private void should_return_channel_joined_message(MessageInterpreter interpreter)
        {
            // given
            string json = @"
                {
                  'type': 'channel_joined',
                  'channel': {
                    id: 'test-channel',
                    is_channel: true
                  }
                }
            ";

            // when
            var result = interpreter.InterpretMessage(json);

            // then
            var expected = new ChannelJoinedMessage
            {
                MessageType = MessageType.Channel_Joined,
                Channel     = new Channel
                {
                    Id        = "test-channel",
                    IsChannel = true
                },
                RawData = json,
            };

            result.ShouldLookLike(expected);
        }
Пример #2
0
        private async Task should_not_raise_event_given_missing_data(
            Mock <IWebSocketClient> webSocket,
            SlackConnection slackConnection)
        {
            // given
            var connectionInfo = new ConnectionInformation {
                WebSocket = webSocket.Object
            };
            await slackConnection.Initialise(connectionInfo);

            SlackChatHub lastHub = null;

            slackConnection.OnChatHubJoined += hub =>
            {
                lastHub = hub;
                return(Task.CompletedTask);
            };

            var inboundMessage = new ChannelJoinedMessage {
                Channel = null
            };

            // when
            webSocket.Raise(x => x.OnMessage += null, null, inboundMessage);

            // then
            lastHub.ShouldBeNull();
            slackConnection.ConnectedHubs.ShouldBeEmpty();
        }
Пример #3
0
        private async Task should_raise_event(
            Mock <IWebSocketClient> webSocket,
            SlackConnection slackConnection)
        {
            // given
            var connectionInfo = new ConnectionInformation {
                WebSocket = webSocket.Object
            };
            await slackConnection.Initialise(connectionInfo);

            const string hubId   = "this-is-the-id";
            SlackChatHub lastHub = null;

            slackConnection.OnChatHubJoined += hub =>
            {
                lastHub = hub;
                return(Task.CompletedTask);
            };

            var inboundMessage = new ChannelJoinedMessage
            {
                Channel = new Channel {
                    Id = hubId
                }
            };

            // when
            webSocket.Raise(x => x.OnMessage += null, null, inboundMessage);

            // then
            lastHub.Id.ShouldBe(hubId);
            lastHub.Type.ShouldBe(SlackChatHubType.Channel);
            slackConnection.ConnectedHubs.ContainsKey(hubId).ShouldBeTrue();
            slackConnection.ConnectedHubs[hubId].ShouldBe(lastHub);
        }
Пример #4
0
        private Task HandleChannelJoined(ChannelJoinedMessage inboundMessage)
        {
            string channelId = inboundMessage?.Channel?.Id;

            if (channelId == null)
            {
                return(Task.CompletedTask);
            }

            var hub = inboundMessage.Channel.ToChatHub();

            this._connectedHubs[channelId] = hub;

            return(this.RaiseChatHubJoined(hub));
        }
        public void then_should_look_like_expected()
        {
            var expected = new ChannelJoinedMessage
            {
                MessageType = MessageType.Channel_Joined,
                Channel     = new Channel
                {
                    Id        = "test-channel",
                    IsChannel = true
                },
                RawData = Json,
            };

            Result.ShouldLookLike(expected);
        }
Пример #6
0
        private Task HandleChannelJoined(ChannelJoinedMessage inboundMessage)
        {
            string channelId = inboundMessage?.Channel?.Id;

            if (channelId == null)
            {
                return(Task.FromResult(false));
            }

            var hub = inboundMessage.Channel.ToChatHub();

            _connectedHubs[channelId] = hub;

            return(RaiseChatHubJoined(hub));
        }
Пример #7
0
        private async Task given_exception_in_event_then_shouldnt_bubble_exception(
            Mock <IWebSocketClient> webSocket,
            SlackConnection slackConnection)
        {
            // given
            var connectionInfo = new ConnectionInformation {
                WebSocket = webSocket.Object
            };
            await slackConnection.Initialise(connectionInfo);

            const string hubId = "this-is-the-id";

            slackConnection.OnChatHubJoined += hub => throw new NotImplementedException("THIS SHOULDN'T BUBBLE UP");

            var inboundMessage = new ChannelJoinedMessage
            {
                Channel = new Channel {
                    Id = hubId
                }
            };

            // when & then (does not throw)
            webSocket.Raise(x => x.OnMessage += null, null, inboundMessage);
        }