< Summary - CoreWCF Coverage — PR #1766

Information
Class: CoreWCF.Channels.StreamSecurityUpgradeAcceptorBase
Assembly: CoreWCF.NetFramingBase
File(s): /home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.NetFramingBase/src/CoreWCF/Channels/StreamSecurityUpgradeAcceptorBase.cs
Line coverage
84%
Covered lines: 11
Uncovered lines: 2
Coverable lines: 13
Total lines: 51
Line coverage: 84.6%
Branch coverage
50%
Covered branches: 2
Total branches: 4
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
.ctor(...)100%11100%
AcceptUpgradeAsync()50%2283.33%
CanUpgrade(...)50%2266.66%
GetRemoteSecurity()100%11100%

File(s)

/home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.NetFramingBase/src/CoreWCF/Channels/StreamSecurityUpgradeAcceptorBase.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.IO;
 5using System.Threading.Tasks;
 6using CoreWCF.Security;
 7
 8namespace CoreWCF.Channels
 9{
 10    internal abstract class StreamSecurityUpgradeAcceptorBase : StreamSecurityUpgradeAcceptor
 11    {
 12        private SecurityMessageProperty _remoteSecurity;
 13        private bool _securityUpgraded;
 14        private readonly string _upgradeString;
 15
 716        protected StreamSecurityUpgradeAcceptorBase(string upgradeString)
 17        {
 718            _upgradeString = upgradeString;
 719        }
 20
 21        public override async Task<Stream> AcceptUpgradeAsync(Stream stream)
 22        {
 723            if (stream == null)
 24            {
 025                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull(nameof(stream));
 26            }
 27
 728            (stream, _remoteSecurity) = await OnAcceptUpgradeAsync(stream);
 729            _securityUpgraded = true;
 730            return stream;
 731        }
 32
 33        public override bool CanUpgrade(string contentType)
 34        {
 735            if (_securityUpgraded)
 36            {
 037                return false;
 38            }
 39
 740            return (contentType == _upgradeString);
 41        }
 42
 43        public override SecurityMessageProperty GetRemoteSecurity()
 44        {
 45            // this could be null if upgrade not completed.
 546            return _remoteSecurity;
 47        }
 48
 49        protected abstract Task<(Stream, SecurityMessageProperty)> OnAcceptUpgradeAsync(Stream stream);
 50    }
 51}