Skip to content

Commit

Permalink
add Calculate_Script_Scorable_As_Action_Reset_Stack example test
Browse files Browse the repository at this point in the history
  • Loading branch information
willportnoy committed Feb 2, 2017
1 parent 547bba3 commit d13553e
Showing 1 changed file with 38 additions and 1 deletion.
39 changes: 38 additions & 1 deletion CSharp/Tests/Microsoft.Bot.Builder.Tests/ScorableDialogTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -327,7 +327,44 @@ await AssertScriptAsync(container,
public sealed class CalculatorScorableTests : DialogTestBase
{
[TestMethod]
public async Task Calculate_Script_Scorable_As_Action()
public async Task Calculate_Script_Scorable_As_Action_Reset_Stack()
{
var echo = Chain.PostToChain().Select(msg => $"echo: {msg.Text}").PostToUser().Loop();

var scorable = Actions
.Bind(async (string expression, IDialogStack stack, IMessageActivity activity, CancellationToken token) =>
{
var dialog = new CalculatorDialog();
activity.Text = expression;
stack.Reset();
await stack.Forward(dialog.Loop(), null, activity, token);
})
.When(new Regex(@".*calculate\s*(?<expression>.*)"))
.Normalize();

echo = echo.WithScorable(scorable);

using (var container = Build(Options.ResolveDialogFromContainer))
{
var builder = new ContainerBuilder();
builder
.RegisterInstance(echo)
.As<IDialog<object>>();
builder.Update(container);

await AssertScriptAsync(container,
"hello",
"echo: hello",
"calculate 2 + 3",
"5",
"2 + 2",
"4"
);
}
}

[TestMethod]
public async Task Calculate_Script_Scorable_As_Action_Interrupt_Stack()
{
var echo = Chain.PostToChain().Select(msg => $"echo: {msg.Text}").PostToUser().Loop();

Expand Down

0 comments on commit d13553e

Please sign in to comment.