public async Task UseMiddleware_AddsMiddleware() { IServiceProvider serviceProvider = new MockServiceProvider() .With <MockMiddleware>(new MockMiddleware()); OkraAppBuilder app = new OkraAppBuilder(serviceProvider); var middlewareCallList = new List <string>(); var middlewareCallContextList = new List <AppLaunchContext>(); var options = new MockMiddlewareOptions(middlewareCallList, middlewareCallContextList); app.UseMiddleware <MockMiddleware, MockMiddlewareOptions>(options); app.Use(next => { return(context => { middlewareCallList.Add("Next"); middlewareCallContextList.Add(context); return next(context); }); }); var appContext = new MockAppLaunchContext(); var pipeline = app.Build(); await pipeline(appContext); Assert.Equal(new string[] { "Middleware", "Next" }, middlewareCallList); Assert.Equal(new AppLaunchContext[] { appContext, appContext }, middlewareCallContextList); }
public void UseMiddleware_WithNullApp_ThrowsException() { MockMiddlewareOptions options = new MockMiddlewareOptions(); var e = Assert.Throws <ArgumentNullException>(() => UseMiddlewareExtensions.UseMiddleware <MockMiddleware, MockMiddlewareOptions>(null, options)); Assert.Equal("app", e.ParamName); }