private void should_return_dm_channel_joined_message(MessageInterpreter interpreter)
        {
            // given
            string json = @"
                {
                   'type':'im_created',
                   'channel':{
                      'id':'D99999',
                      'user':'******',
                      'is_im':true,
                      'is_open':true
                   }
                }
            ";

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

            // then
            var expected = new DmChannelJoinedMessage
            {
                MessageType = MessageType.Im_Created,
                Channel     = new Im
                {
                    Id     = "D99999",
                    User   = "******",
                    IsIm   = true,
                    IsOpen = true
                },
                RawData = json,
            };

            result.ShouldLookLike(expected);
        }
示例#2
0
        private Task HandleDmJoined(DmChannelJoinedMessage inboundMessage)
        {
            string channelId = inboundMessage?.Channel?.Id;

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

            var hub = inboundMessage.Channel.ToChatHub(this._userCache.Values.ToArray());

            this._connectedHubs[channelId] = hub;

            return(this.RaiseChatHubJoined(hub));
        }
示例#3
0
        private Task HandleDmJoined(DmChannelJoinedMessage inboundMessage)
        {
            string channelId = inboundMessage?.Channel?.Id;

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

            var hub = inboundMessage.Channel.ToChatHub(_userCache.Values.ToArray());

            _connectedHubs[channelId] = hub;

            return(RaiseChatHubJoined(hub));
        }
        public void then_should_look_like_expected()
        {
            var expected = new DmChannelJoinedMessage
            {
                MessageType = MessageType.Im_Created,
                Channel     = new Im
                {
                    Id     = "D99999",
                    User   = "******",
                    IsIm   = true,
                    IsOpen = true
                },
                RawData = Json,
            };

            Result.ShouldLookLike(expected);
        }
示例#5
0
        private async Task should_raise_event(
            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 DmChannelJoinedMessage
            {
                Channel = new Im
                {
                    User   = "******",
                    Id     = "channel-id",
                    IsIm   = true,
                    IsOpen = true
                }
            };

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

            // then
            slackConnection.ConnectedHubs.ContainsKey("channel-id").ShouldBeTrue();
            slackConnection.ConnectedHubs["channel-id"].ShouldBe(lastHub);
            lastHub.ShouldLookLike(new SlackChatHub
            {
                Id   = "channel-id",
                Name = "@test-user",
                Type = SlackChatHubType.DM
            });
        }