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); }
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(); }
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); }
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); }
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)); }
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); }