public void RequireAuthorization_PolicyCallbackWithAuthorize() { // Arrange var builder = new TestEndpointConventionBuilder(); var authorize = new AuthorizeAttribute(); var requirement = new TestRequirement(); // Act builder.RequireAuthorization(policyBuilder => policyBuilder.Requirements.Add(requirement)); // Assert var convention = Assert.Single(builder.Conventions); var endpointModel = new RouteEndpointBuilder((context) => Task.CompletedTask, RoutePatternFactory.Parse("/"), 0); endpointModel.Metadata.Add(authorize); convention(endpointModel); // Confirm that we don't add another authorize if one already exists Assert.Equal(2, endpointModel.Metadata.Count); Assert.Equal(authorize, endpointModel.Metadata[0]); var policy = Assert.IsAssignableFrom <AuthorizationPolicy>(endpointModel.Metadata[1]); Assert.Equal(1, policy.Requirements.Count); Assert.Equal(requirement, policy.Requirements[0]); }
public void RequireAuthorization_PolicyCallback() { // Arrange var builder = new TestEndpointConventionBuilder(); var requirement = new TestRequirement(); // Act builder.RequireAuthorization(policyBuilder => policyBuilder.Requirements.Add(requirement)); // Assert var convention = Assert.Single(builder.Conventions); var endpointModel = new RouteEndpointBuilder((context) => Task.CompletedTask, RoutePatternFactory.Parse("/"), 0); convention(endpointModel); Assert.Equal(2, endpointModel.Metadata.Count); var authMetadata = Assert.IsAssignableFrom <IAuthorizeData>(endpointModel.Metadata[0]); Assert.Null(authMetadata.Policy); var policy = Assert.IsAssignableFrom <AuthorizationPolicy>(endpointModel.Metadata[1]); Assert.Equal(1, policy.Requirements.Count); Assert.Equal(requirement, policy.Requirements[0]); }
protected override Task HandleRequirementAsync(LinksHandlerContext context, TestRequirement <TResource> requirement) { var route = context.RouteMap.GetRoute("TestRoute"); context.Links.Add(new LinkSpec("testLink", route)); context.Handled(requirement); return(Task.CompletedTask); }
public void MapHubFindsMetadataPolicyOnHub() { var authCount = 0; var policy1 = new AuthorizationPolicyBuilder().RequireAssertion(_ => true).Build(); var req = new TestRequirement(); using (var host = BuildWebHost(routes => routes.MapHub <AuthHub>("/path", options => { authCount += options.AuthorizationData.Count; }) .RequireAuthorization(policy1) .RequireAuthorization(policy => policy.AddRequirements(req)))) { host.Start(); var dataSource = host.Services.GetRequiredService <EndpointDataSource>(); // We register 2 endpoints (/negotiate and /) Assert.Collection(dataSource.Endpoints, endpoint => { Assert.Equal("/path/negotiate", endpoint.DisplayName); Assert.Equal(1, endpoint.Metadata.GetOrderedMetadata <IAuthorizeData>().Count); var policies = endpoint.Metadata.GetOrderedMetadata <AuthorizationPolicy>(); Assert.Equal(2, policies.Count); Assert.Equal(policy1, policies[0]); Assert.Equal(1, policies[1].Requirements.Count); Assert.Equal(req, policies[1].Requirements.First()); }, endpoint => { Assert.Equal("/path", endpoint.DisplayName); Assert.Equal(1, endpoint.Metadata.GetOrderedMetadata <IAuthorizeData>().Count); var policies = endpoint.Metadata.GetOrderedMetadata <AuthorizationPolicy>(); Assert.Equal(2, policies.Count); Assert.Equal(policy1, policies[0]); Assert.Equal(1, policies[1].Requirements.Count); Assert.Equal(req, policies[1].Requirements.First()); }); } Assert.Equal(0, authCount); }
protected override Task HandleRequirementAsync(LinksHandlerContext context, TestRequirement <TResource> requirement) { throw new Exception("Test Exception"); }
public ModelTestRequirement(TestRequirement requirement) { this.Title = ToolsEnum.EnumToString(requirement); this.TestRequirement = requirement; }