< Summary - CoreWCF Coverage — PR #1766

Information
Class: CoreWCF.IdentityModel.Policy.DefaultEvaluationContext
Assembly: CoreWCF.Primitives
File(s): /home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Primitives/src/CoreWCF/IdentityModel/Policy/DefaultEvaluationContext.cs
Line coverage
95%
Covered lines: 21
Uncovered lines: 1
Coverable lines: 22
Total lines: 79
Line coverage: 95.4%
Branch coverage
90%
Covered branches: 9
Total branches: 10
Branch coverage: 90%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
.ctor()100%11100%
AddClaimSet(...)75%4485.71%
RecordExpirationTime(...)100%22100%

File(s)

/home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Primitives/src/CoreWCF/IdentityModel/Policy/DefaultEvaluationContext.cs

#LineLine coverage
 1// Licensed to the .NET Foundation under one or more agreements.
 2// The .NET Foundation licenses this file to you under the MIT license.
 3
 4using System;
 5using System.Collections.Generic;
 6using System.Collections.ObjectModel;
 7using CoreWCF.IdentityModel.Claims;
 8using CoreWCF.Security;
 9
 10namespace CoreWCF.IdentityModel.Policy
 11{
 12    internal class DefaultEvaluationContext : EvaluationContext
 13    {
 14        private List<ClaimSet> _claimSets;
 15        private readonly Dictionary<string, object> _properties;
 16        private int _generation;
 17        private ReadOnlyCollection<ClaimSet> _readOnlyClaimSets;
 18
 10619        public DefaultEvaluationContext()
 20        {
 10621            _properties = new Dictionary<string, object>();
 10622            _generation = 0;
 10623        }
 24
 25        public override int Generation
 26        {
 13427            get { return _generation; }
 28        }
 29
 30        public override ReadOnlyCollection<ClaimSet> ClaimSets
 31        {
 32            get
 33            {
 10634                if (_claimSets == null)
 35                {
 8836                    return EmptyReadOnlyCollection<ClaimSet>.Instance;
 37                }
 38
 1839                if (_readOnlyClaimSets == null)
 40                {
 1841                    _readOnlyClaimSets = new ReadOnlyCollection<ClaimSet>(_claimSets);
 42                }
 43
 1844                return _readOnlyClaimSets;
 45            }
 46        }
 47
 48        public override IDictionary<string, object> Properties
 49        {
 25750            get { return _properties; }
 51        }
 52
 22053        public DateTime ExpirationTime { get; private set; } = SecurityUtils.MaxUtcDateTime;
 54
 55        public override void AddClaimSet(IAuthorizationPolicy policy, ClaimSet claimSet)
 56        {
 1857            if (claimSet == null)
 58            {
 059                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull(nameof(claimSet));
 60            }
 61
 1862            if (_claimSets == null)
 63            {
 1864                _claimSets = new List<ClaimSet>();
 65            }
 66
 1867            _claimSets.Add(claimSet);
 1868            ++_generation;
 1869        }
 70
 71        public override void RecordExpirationTime(DateTime expirationTime)
 72        {
 473            if (ExpirationTime > expirationTime)
 74            {
 475                ExpirationTime = expirationTime;
 76            }
 477        }
 78    }
 79}