public async Task Status_OneEntryThatDoesNotCallNext() { bool called1 = false; var one = new DoNotCallNextMiddleware(() => { called1 = true; }); var m = new MiddlewareSet(); m.Use(one); // The middlware in this pipeline DOES NOT call next(), so this must not be called bool didAllRun = false; await m.ReceiveActivityWithStatus(null, (ctx) => { didAllRun = true; return(Task.CompletedTask); }, default(CancellationToken)); Assert.IsTrue(called1); // Our "Final" action MUST NOT have been called, as the Middlware Pipeline // didn't complete. Assert.IsFalse(didAllRun); }
public async Task Status_TwoItemsOneDoesNotCallNext() { bool called1 = false; bool called2 = false; var one = new CallMeMiddlware(() => { Assert.IsFalse(called2, "Second Middleware was called"); called1 = true; }); var two = new DoNotCallNextMiddleware(() => { Assert.IsTrue(called1, "First Middleware was not called"); called2 = true; }); var m = new MiddlewareSet(); m.Use(one); m.Use(two); bool didAllRun = false; await m.ReceiveActivityWithStatus(null, (ctx) => { didAllRun = true; return(Task.CompletedTask); }); Assert.IsTrue(called1); Assert.IsTrue(called2); // The 2nd middleware did not call next, so the "final" action should not have run. Assert.IsFalse(didAllRun); }
public async Task Status_RunAtEndEmptyPipeline() { MiddlewareSet m = new MiddlewareSet(); bool didAllRun = false; // This middlware pipeline has no entries. This should result in // the status being TRUE. await m.ReceiveActivityWithStatus(null, async (ctx) => didAllRun = true); Assert.IsTrue(didAllRun); }
public async Task NoMiddlewareWithDelegate() { MiddlewareSet m = new MiddlewareSet(); bool wasCalled = false; async Task CallMe(ITurnContext context) { wasCalled = true; } // No middleware. Should not explode. await m.ReceiveActivityWithStatus(null, CallMe); Assert.IsTrue(wasCalled, "Delegate was not called"); }
public async Task NoMiddlewareWithDelegate() { var m = new MiddlewareSet(); bool wasCalled = false; Task CallMe(ITurnContext context) { wasCalled = true; return(Task.CompletedTask); } // No middleware. Should not explode. await m.ReceiveActivityWithStatus(null, CallMe, default(CancellationToken)); Assert.IsTrue(wasCalled, "Delegate was not called"); }
public async Task Status_RunAtEndEmptyPipeline() { var m = new MiddlewareSet(); bool didAllRun = false; // This middlware pipeline has no entries. This should result in // the status being TRUE. await m.ReceiveActivityWithStatus(null, (ctx) => { didAllRun = true; return(Task.CompletedTask); }, default(CancellationToken)); Assert.IsTrue(didAllRun); }
public async Task Status_OneMiddlewareRan() { bool called1 = false; CallMeMiddlware one = new CallMeMiddlware(() => { called1 = true; }); MiddlewareSet m = new MiddlewareSet(); m.Use(one); // The middlware in this pipeline calls next(), so the delegate should be called bool didAllRun = false; await m.ReceiveActivityWithStatus(null, async (ctx) => didAllRun = true); Assert.IsTrue(called1); Assert.IsTrue(didAllRun); }
public async Task OneMiddlewareItem() { WasCalledMiddlware simple = new WasCalledMiddlware(); bool wasCalled = false; async Task CallMe(ITurnContext context) { wasCalled = true; } MiddlewareSet m = new MiddlewareSet(); m.Use(simple); Assert.IsFalse(simple.Called); await m.ReceiveActivityWithStatus(null, CallMe); Assert.IsTrue(simple.Called); Assert.IsTrue(wasCalled, "Delegate was not called"); }
public async Task OneMiddlewareItem() { var simple = new WasCalledMiddlware(); bool wasCalled = false; Task CallMe(ITurnContext context) { wasCalled = true; return(Task.CompletedTask); } MiddlewareSet m = new MiddlewareSet(); m.Use(simple); Assert.IsFalse(simple.Called); await m.ReceiveActivityWithStatus(null, CallMe, default(CancellationToken)); Assert.IsTrue(simple.Called); Assert.IsTrue(wasCalled, "Delegate was not called"); }
public async Task Status_OneMiddlewareRan() { bool called1 = false; var one = new CallMeMiddlware(() => { called1 = true; }); var m = new MiddlewareSet(); m.Use(one); // The middlware in this pipeline calls next(), so the delegate should be called bool didAllRun = false; await m.ReceiveActivityWithStatus(null, (ctx) => { didAllRun = true; return(Task.CompletedTask); }, default(CancellationToken)); Assert.IsTrue(called1); Assert.IsTrue(didAllRun); }
public async Task TwoMiddlewareItemsWithDelegate() { WasCalledMiddlware one = new WasCalledMiddlware(); WasCalledMiddlware two = new WasCalledMiddlware(); int called = 0; async Task CallMe(ITurnContext context) { called++; } MiddlewareSet m = new MiddlewareSet(); m.Use(one); m.Use(two); await m.ReceiveActivityWithStatus(null, CallMe); Assert.IsTrue(one.Called); Assert.IsTrue(two.Called); Assert.IsTrue(called == 1, "Incorrect number of calls to Delegate"); }