public async Task Command_Handles_Missing_Processor() { var router = new SlackTalkRouter( scopeFactory: TestHelper.GetServiceScopeFactory(new List <ISlackTalkProcessor>(0)), options: TestHelper.GetOptions(), logger: new Mock <ILogger <SlackTalkRouter> >().Object); var context = TestHelper.GetIncomingCommandContext(new SlackCommand { command = "/some_command", token = "bar" }); await router.ProcessAsync(IncomingMessageType.Command, context, TestHelper.GetHttpClient(string.Empty)); var error = context.Response.Body.ReadAsString().FromJson <SlackMessage>(); Assert.Contains("No registered processor found to handle this command", error.text, StringComparison.OrdinalIgnoreCase); }
public async Task Command_Handles_Invalid_Token() { var router = new SlackTalkRouter( scopeFactory: new Mock <IServiceScopeFactory>().Object, options: TestHelper.GetOptions(), logger: new Mock <ILogger <SlackTalkRouter> >().Object); var context = TestHelper.GetIncomingCommandContext(new SlackCommand { command = "/some_command", token = "some_token" }); await router.ProcessAsync(IncomingMessageType.Command, context, TestHelper.GetHttpClient(string.Empty)); var error = context.Response.Body.ReadAsString().FromJson <SlackMessage>(); Assert.Contains("Invalid token", error.text, StringComparison.OrdinalIgnoreCase); }
public async Task Action_Handles_Delayed_Response_Failure() { var router = new SlackTalkRouter( scopeFactory: TestHelper.GetServiceScopeFactory(new List <ISlackTalkProcessor> { new DelayedResponseProcessor() }), options: TestHelper.GetOptions(), logger: new Mock <ILogger <SlackTalkRouter> >().Object); var context = TestHelper.GetIncomingActionContext(new SlackCallback { callback_id = "foo_callback", token = "bar", response_url = "https://www.example.com/" }); await router.ProcessAsync(IncomingMessageType.Action, context, TestHelper.GetHttpClient(string.Empty, HttpStatusCode.InternalServerError)); Assert.Equal(200, context.Response.StatusCode); }
public async Task Action_Handles_Immediate_Response() { var router = new SlackTalkRouter( scopeFactory: TestHelper.GetServiceScopeFactory(new List <ISlackTalkProcessor> { new DummyProcessor() }), options: TestHelper.GetOptions(), logger: new Mock <ILogger <SlackTalkRouter> >().Object); var context = TestHelper.GetIncomingActionContext(new SlackCallback { callback_id = "foo_callback", token = "bar" }); await router.ProcessAsync(IncomingMessageType.Action, context, TestHelper.GetHttpClient(string.Empty)); var error = context.Response.Body.ReadAsString().FromJson <SlackMessage>(); Assert.Contains("DUMMY", error.text, StringComparison.OrdinalIgnoreCase); }
public async Task Action_Handles_Null_Message() { var router = new SlackTalkRouter( scopeFactory: TestHelper.GetServiceScopeFactory(new List <ISlackTalkProcessor> { new NullMessageProcessor() }), options: TestHelper.GetOptions(), logger: new Mock <ILogger <SlackTalkRouter> >().Object); var context = TestHelper.GetIncomingActionContext(new SlackCallback { callback_id = "foo_callback", token = "bar" }); await router.ProcessAsync(IncomingMessageType.Action, context, TestHelper.GetHttpClient(string.Empty)); var body = context.Response.Body.ReadAsString(); Assert.Equal(200, context.Response.StatusCode); Assert.Equal(string.Empty, body); }
public async Task Command_Handles_Delayed_Response_Success() { var router = new SlackTalkRouter( scopeFactory: TestHelper.GetServiceScopeFactory(new List <ISlackTalkProcessor> { new DelayedResponseProcessor() }), options: TestHelper.GetOptions(), logger: new Mock <ILogger <SlackTalkRouter> >().Object); var context = TestHelper.GetIncomingCommandContext(new SlackCommand { command = "/foo", token = "bar", response_url = "https://www.example.com/" }); await router.ProcessAsync(IncomingMessageType.Command, context, TestHelper.GetHttpClient(string.Empty)); var body = context.Response.Body.ReadAsString(); Assert.Equal(200, context.Response.StatusCode); Assert.Equal(string.Empty, body); }