< Summary - CoreWCF Coverage — PR #1766

Information
Class: CoreWCF.Security.SessionSymmetricTransportSecurityProtocolFactory
Assembly: CoreWCF.Primitives
File(s): /home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Primitives/src/CoreWCF/Security/SessionSymmetricTransportSecurityProtocolFactory.cs
Line coverage
56%
Covered lines: 13
Uncovered lines: 10
Coverable lines: 23
Total lines: 75
Line coverage: 56.5%
Branch coverage
40%
Covered branches: 4
Total branches: 10
Branch coverage: 40%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
.ctor()100%11100%
OnCreateSecurityProtocol(...)50%4450%
OnOpenAsync(...)50%4457.14%
GetTokenParameters()0%220%

File(s)

/home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Primitives/src/CoreWCF/Security/SessionSymmetricTransportSecurityProtocolFactory.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.Threading.Tasks;
 6using CoreWCF.Security.Tokens;
 7
 8namespace CoreWCF.Security
 9{
 10    internal class SessionSymmetricTransportSecurityProtocolFactory : TransportSecurityProtocolFactory
 11    {
 12        private SecurityTokenParameters _securityTokenParameters;
 13        private SessionDerivedKeySecurityTokenParameters _derivedKeyTokenParameters;
 14
 2215        public SessionSymmetricTransportSecurityProtocolFactory() : base()
 16        {
 2217        }
 18
 019        public override bool SupportsReplayDetection => true;
 20
 21        public SecurityTokenParameters SecurityTokenParameters
 22        {
 23            get
 24            {
 12825                return _securityTokenParameters;
 26            }
 27            set
 28            {
 4429                ThrowIfImmutable();
 4430                _securityTokenParameters = value;
 4431            }
 32        }
 33
 34        internal override SecurityProtocol OnCreateSecurityProtocol(EndpointAddress target, Uri via, TimeSpan timeout)
 35        {
 1036            if (SecurityTokenParameters == null)
 37            {
 038                OnPropertySettingsError(nameof(SecurityTokenParameters), true);
 39            }
 1040            if (SecurityTokenParameters.RequireDerivedKeys)
 41            {
 042                ExpectKeyDerivation = true;
 043                _derivedKeyTokenParameters = new SessionDerivedKeySecurityTokenParameters(ActAsInitiator);
 44            }
 1045            return new AcceptorSessionSymmetricTransportSecurityProtocol(this);
 46        }
 47
 48        public override Task OnOpenAsync(TimeSpan timeout)
 49        {
 2250            base.OnOpenAsync(timeout);
 2251            if (SecurityTokenParameters == null)
 52            {
 053                OnPropertySettingsError(nameof(SecurityTokenParameters), true);
 54            }
 2255            if (SecurityTokenParameters.RequireDerivedKeys)
 56            {
 057                ExpectKeyDerivation = true;
 058                _derivedKeyTokenParameters = new SessionDerivedKeySecurityTokenParameters(ActAsInitiator);
 59            }
 2260            return Task.CompletedTask;
 61        }
 62
 63        internal SecurityTokenParameters GetTokenParameters()
 64        {
 065            if (_derivedKeyTokenParameters != null)
 66            {
 067                return _derivedKeyTokenParameters;
 68            }
 69            else
 70            {
 071                return _securityTokenParameters;
 72            }
 73        }
 74    }
 75}