public async Task Invoke(HttpContext context) { if (_validationDelegate != null) { if (!await _validationDelegate(context).ConfigureAwait(false)) { return; } } else { var matchedRouteResult = await RoutesUtils.MatchRouteAsync(context, _routesRepository).ConfigureAwait(false); if (matchedRouteResult.Key != null) { if (!await ValidationUtils .ValidateClaimsAsync(matchedRouteResult.Key, context, matchedRouteResult.Value) .ConfigureAwait(false)) { return; } } } await _next(context).ConfigureAwait(false); }
public void MatchRouteAsyncTest_NoMatch() { TestingUtils.ResetRoutesRepository(); var routesRepository = new RoutesRepository(); routesRepository.RegisterRoutesAsync(new List <IRouteDefinitions>() { new SpecialRouteTemplateRoutes() }).Wait(); var httpContext = new DefaultHttpContext(); var request = new DefaultHttpRequest(httpContext) { Method = HttpMethod.Post.Method, Path = "/v1/yolo/nolo/asdf/kjlkjl" }; var result = RoutesUtils.MatchRouteAsync(httpContext, routesRepository).Result; Assert.NotNull(request); Assert.Null(result.Key); Assert.Null(result.Value); }
public void MatchRouteAsyncTest() { TestingUtils.ResetRoutesRepository(); var routesRepository = new RoutesRepository(); routesRepository.RegisterRoutesAsync(new List <IRouteDefinitions>() { new SpecialRouteTemplateRoutes() }).Wait(); var httpContext = new DefaultHttpContext(); var request = new DefaultHttpRequest(httpContext) { Method = HttpMethod.Post.Method, Path = "/v1/yolo/nolo/1" }; var result = RoutesUtils.MatchRouteAsync(httpContext, routesRepository).Result; Assert.NotNull(request); Assert.Equal(4, result.Key.ClaimsConfig.ExtractionConfigs.Count); Assert.Equal(1, result.Key.ClaimsConfig.ValidationConfigs.Count); Assert.NotNull(result.Key.ClaimsConfig.BadRequestResponse); Assert.Equal("1", result.Value["id"]); }