Example #1
0
        public async Task Execute_JustInvoked_ShouldInvokeHandle()
        {
            // Arrange
            var testHandler  = new Foo();
            var actionParams = new Bar();

            _serviceProviderMock
            .Setup(m => m.GetService(typeof(ISlackActionHandler <Bar>)))
            .Returns(testHandler);

            // Act
            await _service.ExecuteAction(actionParams.GetType(), actionParams);

            // Assert
            _serviceProviderMock.Verify(m => m.GetService(typeof(ISlackActionHandler <Bar>)), Times.Once);
            _serviceProviderMock.VerifyNoOtherCalls();
            Assert.True(testHandler.WasInvoked);
        }
        public Task ProcessRequest(InteractiveMessage request)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            var invokedAction = request.Actions.FirstOrDefault();

            if (invokedAction == null)
            {
                throw new ArgumentNullException(nameof(invokedAction));
            }

            var paramsType   = _slackParamsSelectService.Choose(invokedAction.Name);
            var actionParams = _mapper.Map(request, request.GetType(), paramsType);

            return(_slackExecutorService.ExecuteAction(paramsType, actionParams));
        }