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); }
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; }