public async Task ProcessAsyncShouldFailOnVerificationTokenMismatch()
{
_testOptions.SlackVerificationToken = "testToken";
var slackApi = new Mock <SlackClientWrapper>(_testOptions);
slackApi.Setup(x => x.TestAuthAsync(It.IsAny <CancellationToken>())).Returns(Task.FromResult("mockedUserId"));
slackApi.Setup(x => x.VerifySignature(It.IsAny <HttpRequest>(), It.IsAny <string>())).Returns(true);
var slackAdapter = new SlackAdapter(_testOptions, slackClient: slackApi.Object);
var payload = File.ReadAllText(Directory.GetCurrentDirectory() + @"/Files/MessageBody.json");
var stream = new MemoryStream(Encoding.UTF8.GetBytes(payload.ToString()));
var httpRequest = new Mock <HttpRequest>();
httpRequest.SetupGet(req => req.Body).Returns(stream);
var httpRequestHeader = new Mock <IHeaderDictionary>();
httpRequestHeader.SetupGet(x => x["Content-Type"]).Returns("application/json");
httpRequest.SetupGet(req => req.Headers).Returns(httpRequestHeader.Object);
var httpResponse = new Mock <HttpResponse>();
httpResponse.SetupAllProperties();
var mockStream = new Mock <Stream>();
httpResponse.SetupGet(req => req.Body).Returns(mockStream.Object);
await Assert.ThrowsAsync <Exception>(async() => { await slackAdapter.ProcessAsync(httpRequest.Object, httpResponse.Object, new Mock <IBot>().Object, default); });
}