示例#1
0
        public MessageResponse PostMessage(PostMessageRequest request)
        {
            var requestParams = this.request.BuildRequestParams(request);
            var response = this.request.ExecuteAndDeserializeRequest<MessageResponse>("/chat.postMessage", requestParams);

            if (response.Ok)
                response.Message = this.request.ResponseParser.RemapMessageToConcreteType(response.Message);

            return response;
        }
示例#2
0
        public void ChatPostMessageShouldCallCorrectEndpoint()
        {
            var requestHandlerMock = ExecRequestMock<MessageResponse>("/chat.postMessage", new MessageResponse { Ok = true });
            var responseParserMock = new Mock<IResponseParser>();

            responseParserMock.Setup(r => r.RemapMessageToConcreteType(It.IsAny<MessageBase>()))
                              .Returns(new MessageBase())
                              .Verifiable();

            requestHandlerMock.Setup(r => r.ResponseParser)
                              .Returns(responseParserMock.Object)
                              .Verifiable();

            var request = new PostMessageRequest
            {
                Channel = "foo",
                Parse = ParseMode.Full,
                Attachments = new List<Attachment>
                {
                    new Attachment
                    {
                        Text = "Attach1",
                        Fields = new List<Field>
                        {
                            new Field { Title = "F1", Value = "V1" },
                            new Field { Title = "F2", Value = "V2" },
                        }
                    }
                }
            };

            requestHandlerMock.Setup(r => r.BuildRequestParams(request))
                              .Returns<Dictionary<string, string>>(null)
                              .Verifiable();

            var subject = new ChatApi(requestHandlerMock.Object);
            var result = subject.PostMessage(request);

            requestHandlerMock.Verify();
            responseParserMock.Verify();
            Assert.NotNull(result);
        }