public static void TestNotResponding <T>(T dialogUnit, DialogContext context, string initMessage) where T : DialogUnit { DialogUnitHandleResult result = dialogUnit.Handle(context, initMessage); Assert.Null(result.Message); Assert.False(result.IsResponseAwaiting); Assert.False(result.IsHandled); }
public static void TestResponding <T>(T dialogUnit, DialogContext context, string initMessage, string expectedResponseMessage) where T : DialogUnit { DialogUnitHandleResult result = dialogUnit.Handle(context, initMessage); Assert.Equal(expectedResponseMessage, result.Message); Assert.False(result.IsResponseAwaiting); Assert.True(result.IsHandled); }
public void TestDontKnowResponding() { DialogUnit dialogUnit = new ConnectedClients(); DialogContext context = new DialogContext(); DialogUnitHandleResult result = dialogUnit.Handle(context, "список пользователей"); Assert.True(result.IsHandled); Assert.Equal($"Я не знаю.", result.Message); Assert.False(result.IsResponseAwaiting); }
public void TestResponding(string question) { string name = "Федор"; DialogUnit dialogUnit = new MyNameIs(name); DialogContext context = new DialogContext(); DialogUnitHandleResult result = dialogUnit.Handle(context, question); Assert.Equal($"Меня зовут {name}.", result.Message); Assert.False(result.IsResponseAwaiting); Assert.True(result.IsHandled); }
public void TestHandle() { DialogContext context = new DialogContext(); UnhandledFallback unhandledFallback = new UnhandledFallback(); DialogUnitHandleResult actualResult = unhandledFallback.Handle(context, "Что-то невнятное"); Assert.True(actualResult.IsHandled); Assert.False(actualResult.IsResponseAwaiting); Assert.Equal("Я тебя не понимаю.", actualResult.Message); Assert.False(unhandledFallback.Handle(context).IsHandled); }
public void TestDifferentClientLists(string[] clients, string expectedAnswer) { DialogUnit dialogUnit = new ConnectedClients(); DialogContext context = new DialogContext(); context.Upsert <GetConnectedClients>(() => clients); DialogUnitHandleResult result = dialogUnit.Handle(context, "список пользователей"); Assert.True(result.IsHandled); Assert.Equal(expectedAnswer, result.Message); Assert.False(result.IsResponseAwaiting); }
public void TestRespondingOnDifferentQuestions(string question) { DialogUnit dialogUnit = new ConnectedClients(); DialogContext context = new DialogContext(); context.Upsert <GetConnectedClients>(() => new string[] { "Иван" }); DialogUnitHandleResult result = dialogUnit.Handle(context, question); Assert.True(result.IsHandled); Assert.Equal($"\n - Иван", result.Message); Assert.False(result.IsResponseAwaiting); }
public static void TestStating <T>(T dialogUnit, DialogContext context, string expectedStatingMessageStartWith) where T : Statement { DialogUnitHandleResult result = dialogUnit.Handle(context); Assert.StartsWith(expectedStatingMessageStartWith, result.Message); Assert.False(result.IsResponseAwaiting); Assert.True(result.IsHandled); result = dialogUnit.Handle(context, "whatever"); Assert.Null(result.Message); Assert.False(result.IsResponseAwaiting); Assert.False(result.IsHandled); }
private static (DialogUnitHandleResult Result, DialogUnit HandledDialogUnit) HandleMessage( DialogContext context, string message, IEnumerable <DialogUnit> dialogUnits, ICollection <DialogUnit> responseAwaitingDialogUnits) { foreach (DialogUnit dialogUnit in dialogUnits) { DialogUnitHandleResult result = dialogUnit.Handle(context, message); if (result.IsHandled) { if (result.IsResponseAwaiting) { responseAwaitingDialogUnits.Add(dialogUnit); } else { responseAwaitingDialogUnits.Remove(dialogUnit); } return(result, dialogUnit); } } return(default);
protected override DialogUnitHandleResult HandleInternal(DialogContext context, string message, DialogUnitHandleResult previousHandledResult) { return(!string.IsNullOrEmpty(message) ? new DialogUnitHandleResult { Message = "Я тебя не понимаю.", IsHandled = true, IsResponseAwaiting = false } : new DialogUnitHandleResult { IsHandled = false }); }
protected override DialogUnitHandleResult HandleInternal(DialogContext context, string message, DialogUnitHandleResult previousHandledResult) { if (message == null) { return(new DialogUnitHandleResult { Message = GetPhrase(context), IsHandled = true, IsResponseAwaiting = true }); } else { if (IsMatched(message)) { return(previousHandledResult.IsResponseAwaiting ? new DialogUnitHandleResult { IsResponseAwaiting = false, IsHandled = true } : new DialogUnitHandleResult { IsResponseAwaiting = false, IsHandled = true, Message = GetPhrase(context) }); } else { return(DialogUnitHandleResult.NotHandled); } } }
protected override DialogUnitHandleResult HandleInternal(DialogContext context, string message, DialogUnitHandleResult previousHandledResult) { if (message == null) { return(new DialogUnitHandleResult { Message = GetQuestion(context), IsResponseAwaiting = true, IsHandled = true }); } else { if (previousHandledResult.IsResponseAwaiting) { string answer = ExtractAnswer(message); AddAnswerToContext(context, answer); return(new DialogUnitHandleResult { Message = null, IsHandled = true }); } else { return(DialogUnitHandleResult.NotHandled); } } }
protected override DialogUnitHandleResult HandleInternal(DialogContext context, string message, DialogUnitHandleResult previousHandledResult) { if (IsQuestionMatched(message)) { return(new DialogUnitHandleResult { Message = GetAnswer(context), IsHandled = true }); } return(DialogUnitHandleResult.NotHandled); }