< Summary

Class:SVETA.Api.Helpers.Authorize.MethodPolicyProvider
Assembly:SVETA.Api
File(s):/opt/dev/sveta_api_build/SVETA.Api/Helpers/Authorize/MethodPolicyProvider.cs
Covered lines:0
Uncovered lines:15
Coverable lines:15
Total lines:36
Line coverage:0% (0 of 15)
Covered branches:0
Total branches:2
Branch coverage:0% (0 of 2)

Metrics

MethodLine coverage Branch coverage
get_FallbackPolicyProvider()0%100%
.ctor(...)0%100%
GetDefaultPolicyAsync()0%100%
GetPolicyAsync(...)0%0%
GetFallbackPolicyAsync()0%100%

File(s)

/opt/dev/sveta_api_build/SVETA.Api/Helpers/Authorize/MethodPolicyProvider.cs

#LineLine coverage
 1using Microsoft.AspNetCore.Authorization;
 2using Microsoft.Extensions.Options;
 3using System;
 4using System.Collections.Generic;
 5using System.Linq;
 6using System.Threading.Tasks;
 7
 8namespace SVETA.Api.Helpers.Authorize
 9{
 10    public class MethodPolicyProvider : IAuthorizationPolicyProvider
 11    {
 12        const string POLICY_PREFIX = "Method";
 13
 014        public DefaultAuthorizationPolicyProvider FallbackPolicyProvider { get; }
 15
 016        public MethodPolicyProvider(IOptions<AuthorizationOptions> options)
 017        {
 018            FallbackPolicyProvider = new DefaultAuthorizationPolicyProvider(options);
 019        }
 020        public Task<AuthorizationPolicy> GetDefaultPolicyAsync() => FallbackPolicyProvider.GetDefaultPolicyAsync();
 21        //public Task<AuthorizationPolicy> GetRequiredPolicyAsync() => FallbackPolicyProvider.GetRequiredPolicyAsync();
 22
 23        public Task<AuthorizationPolicy> GetPolicyAsync(string policyName)
 024        {
 025            if (policyName.StartsWith(POLICY_PREFIX, StringComparison.OrdinalIgnoreCase))
 026            {
 027                var policy = new AuthorizationPolicyBuilder();
 028                policy.AddRequirements(new MethodRequirement(policyName.Substring(POLICY_PREFIX.Length)));
 029                return Task.FromResult(policy.Build());
 30            }
 031            return FallbackPolicyProvider.GetPolicyAsync(policyName);
 032        }
 33
 034        public Task<AuthorizationPolicy> GetFallbackPolicyAsync() => FallbackPolicyProvider.GetFallbackPolicyAsync();
 35    }
 36}