public void ToDelegate() { Func <Dummy, DummyResult> middlewareResult = _ => new DummyResult(); var middleware = new SpyMiddleware(middlewareResult); Func <Dummy, DummyResult> next = _ => new DummyResult(); new TestCaseRunner() .Run(() => MiddlewareExtensions.ToDelegate(middleware)(next)) .Verify((actual, desc) => { Assert.AreEqual(middlewareResult, actual, desc); Assert.AreEqual(next, middleware.ActualNext, desc); }, (Type)null); }
public void Layer() { Func <DummyContext, DummyResult> middlewareResult = context => new DummyResult(); Action TestCase(int testNumber, Func <DummyContext, DummyResult> _handler, SpyMiddleware _middleware, Type expectedExceptionType = null) => () => { new TestCaseRunner() .Run(() => OnionFuncExtensions.Layer(_handler, _middleware?.Delegate)) .Verify((actual, desc) => { Assert.AreEqual(middlewareResult, actual, desc); Assert.AreEqual(_handler, _middleware.ActualNext, desc); }, expectedExceptionType); }; Func <DummyContext, DummyResult> handler = _ => new DummyResult(); var middleware = new SpyMiddleware(middlewareResult); new[] { TestCase(0, null, middleware, typeof(ArgumentNullException)), TestCase(1, handler, null, typeof(ArgumentNullException)), TestCase(2, handler, middleware), }.Run(); }