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]); }
public void RequireAuthorization_ChainedCall() { // Arrange var builder = new TestEndpointConventionBuilder(); // Act var chainedBuilder = builder.RequireAuthorization(); // Assert Assert.True(chainedBuilder.TestProperty); }
public void RequireAuthorization_PolicyName() { // Arrange var builder = new TestEndpointConventionBuilder(); // Act builder.RequireAuthorization("policy"); // Assert var convention = Assert.Single(builder.Conventions); var endpointModel = new RouteEndpointBuilder((context) => Task.CompletedTask, RoutePatternFactory.Parse("/"), 0); convention(endpointModel); Assert.Equal("policy", Assert.IsAssignableFrom <IAuthorizeData>(Assert.Single(endpointModel.Metadata)).Policy); }
public void RequireAuthorization_IAuthorizeData() { // Arrange var builder = new TestEndpointConventionBuilder(); var metadata = new AuthorizeAttribute(); // Act builder.RequireAuthorization(metadata); // Assert var convention = Assert.Single(builder.Conventions); var endpointModel = new RouteEndpointBuilder((context) => Task.CompletedTask, RoutePatternFactory.Parse("/"), 0); convention(endpointModel); Assert.Equal(metadata, Assert.Single(endpointModel.Metadata)); }
public void RequireAuthorization_IAuthorizeData_Empty() { // Arrange var builder = new TestEndpointConventionBuilder(); // Act builder.RequireAuthorization(Array.Empty <IAuthorizeData>()); // Assert var convention = Assert.Single(builder.Conventions); var endpointModel = new RouteEndpointBuilder((context) => Task.CompletedTask, RoutePatternFactory.Parse("/"), 0); convention(endpointModel); var authMetadata = Assert.IsAssignableFrom <IAuthorizeData>(Assert.Single(endpointModel.Metadata)); Assert.Null(authMetadata.Policy); }
public void RequireAuthorization_PolicyWithAuthorize() { // Arrange var builder = new TestEndpointConventionBuilder(); var policy = new AuthorizationPolicyBuilder().RequireAssertion(_ => true).Build(); var authorize = new AuthorizeAttribute(); // Act builder.RequireAuthorization(policy); // 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]); Assert.Equal(policy, endpointModel.Metadata[1]); }
public void RequireAuthorization_Policy() { // Arrange var builder = new TestEndpointConventionBuilder(); var policy = new AuthorizationPolicyBuilder().RequireAssertion(_ => true).Build(); // Act builder.RequireAuthorization(policy); // 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); Assert.Equal(policy, endpointModel.Metadata[1]); }