< Summary - CoreWCF Coverage — PR #1766

Information
Class: CoreWCF.Security.BinaryNegotiation
Assembly: CoreWCF.Primitives
File(s): /home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Primitives/src/CoreWCF/Security/BinaryNegotiation.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 32
Coverable lines: 32
Total lines: 69
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 12
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
.ctor(...)0%440%
.ctor(...)0%440%
Validate(...)0%220%
WriteTo(...)0%220%
GetNegotiationData()100%110%

File(s)

/home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Primitives/src/CoreWCF/Security/BinaryNegotiation.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.Xml;
 5
 6namespace CoreWCF.Security
 7{
 8    internal sealed class BinaryNegotiation
 9    {
 10        private readonly byte[] _negotiationData;
 11        private XmlDictionaryString _valueTypeUriDictionaryString;
 12
 013        public BinaryNegotiation(
 014            string valueTypeUri,
 015            byte[] negotiationData)
 16        {
 017            _valueTypeUriDictionaryString = null;
 018            ValueTypeUri = valueTypeUri ?? throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull(nameof(value
 019            _negotiationData = negotiationData ?? throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull(nameo
 020        }
 21
 022        public BinaryNegotiation(
 023            XmlDictionaryString valueTypeDictionaryString,
 024            byte[] negotiationData)
 25        {
 026            _valueTypeUriDictionaryString = valueTypeDictionaryString ?? throw DiagnosticUtility.ExceptionUtility.ThrowH
 027            ValueTypeUri = valueTypeDictionaryString.Value;
 028            _negotiationData = negotiationData ?? throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull(nameo
 029        }
 30
 31        public void Validate(XmlDictionaryString valueTypeUriDictionaryString)
 32        {
 033            if (ValueTypeUri != valueTypeUriDictionaryString.Value)
 34            {
 035                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SecurityNegotiationException(SR.Format(SR.
 36            }
 037            _valueTypeUriDictionaryString = valueTypeUriDictionaryString;
 038        }
 39
 40        public void WriteTo(XmlDictionaryWriter writer, string prefix, XmlDictionaryString localName, XmlDictionaryStrin
 41        {
 042            writer.WriteStartElement(prefix, localName, ns);
 043            writer.WriteStartAttribute(valueTypeLocalName, valueTypeNs);
 044            if (_valueTypeUriDictionaryString != null)
 45            {
 046                writer.WriteString(_valueTypeUriDictionaryString);
 47            }
 48            else
 49            {
 050                writer.WriteString(ValueTypeUri);
 51            }
 52
 053            writer.WriteEndAttribute();
 054            writer.WriteStartAttribute(XD.SecurityJan2004Dictionary.EncodingType, null);
 055            writer.WriteString(XD.SecurityJan2004Dictionary.EncodingTypeValueBase64Binary);
 056            writer.WriteEndAttribute();
 057            writer.WriteBase64(_negotiationData, 0, _negotiationData.Length);
 058            writer.WriteEndElement();
 059        }
 60
 061        public string ValueTypeUri { get; }
 62
 63        public byte[] GetNegotiationData()
 64        {
 65            // avoid copying since this is internal and callers use it as read-only
 066            return _negotiationData;
 67        }
 68    }
 69}