Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }