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