Example #1
0
        public void OnMessage(IBot bot, Message message)
        {
            if (bot == null || message == null)
            {
                throw new ArgumentException();
            }

            AIResponse aiResponse = _aiService.TextRequest(message.Text);

            if (aiResponse.Result.Action == Data.BotAction.InputUnknown)
            {
                throw new UnrecognizableIntentException();
            }

            IAction action = MapAiResponse(aiResponse);

            action.Message = message;

            IActionController actionController = GetActionController(action);
            IActionResponse   actionResponse   = actionController?.Handle(action);

            IActionResponseController actionResponseController = GetActionResponseController(actionResponse);

            actionResponseController?.HandleAsync(bot, actionResponse);
        }
Example #2
0
        private Mock <BotMessageController> MakeControllerMock(
            IAiService aiService,
            IActionController actionController,
            IActionResponseController actionResponseController
            )
        {
            var controllerMock = new Mock <BotMessageController>(aiService, null, null);

            controllerMock
            .Setup(m => m.GetActionController(It.IsAny <IAction>()))
            .Returns(actionController);
            controllerMock
            .Setup(m => m.GetActionResponseController(It.IsAny <IActionResponse>()))
            .Returns(actionResponseController);
            controllerMock
            .Setup(m => m.MapAiResponse(It.IsAny <AIResponse>()))
            .Returns(new AddPokemonFilterAction());

            return(controllerMock);
        }
 protected ActionResponseControllerTests(IActionResponseController <TAR> controller)
 {
     Controller = controller;
 }