< Summary - CoreWCF Coverage — PR #1766

Information
Class: CoreWCF.WSAddressing10ProblemHeaderQNameFault
Assembly: CoreWCF.Primitives
File(s): /home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Primitives/src/CoreWCF/WSAddressing10ProblemHeaderQNameFault.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 51
Coverable lines: 51
Total lines: 149
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 6
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%220%
.ctor(...)100%110%
OnWriteDetail(...)0%220%
OnWriteDetailContents(...)100%110%
AddHeaders(...)0%220%
.ctor(...)100%110%
OnWriteStartHeader(...)100%110%
OnWriteHeaderContents(...)100%110%

File(s)

/home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Primitives/src/CoreWCF/WSAddressing10ProblemHeaderQNameFault.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.Globalization;
 5using System.Xml;
 6using CoreWCF.Channels;
 7
 8namespace CoreWCF
 9{
 10    internal class WSAddressing10ProblemHeaderQNameFault : MessageFault
 11    {
 12        private readonly FaultCode _code;
 13        private readonly FaultReason _reason;
 14        private readonly string _actor;
 15        private readonly string _node;
 16        private readonly string _invalidHeaderName;
 17
 018        public WSAddressing10ProblemHeaderQNameFault(MessageHeaderException e)
 19        {
 020            _invalidHeaderName = e.HeaderName;
 21
 022            if (e.IsDuplicate)
 23            {
 024                _code = FaultCode.CreateSenderFaultCode(
 025                    new FaultCode(Addressing10Strings.InvalidAddressingHeader,
 026                                  AddressingVersion.WSAddressing10.Namespace,
 027                                  new FaultCode(Addressing10Strings.InvalidCardinality,
 028                                                AddressingVersion.WSAddressing10.Namespace)));
 29            }
 30            else
 31            {
 032                _code = FaultCode.CreateSenderFaultCode(
 033                    new FaultCode(Addressing10Strings.MessageAddressingHeaderRequired,
 034                                  AddressingVersion.WSAddressing10.Namespace));
 35            }
 36
 037            _reason = new FaultReason(e.Message, CultureInfo.CurrentCulture);
 038            _actor = "";
 039            _node = "";
 040        }
 41
 042        public WSAddressing10ProblemHeaderQNameFault(ActionMismatchAddressingException e)
 43        {
 044            _invalidHeaderName = AddressingStrings.Action;
 045            _code = FaultCode.CreateSenderFaultCode(
 046                new FaultCode(Addressing10Strings.ActionMismatch, AddressingVersion.WSAddressing10.Namespace));
 047            _reason = new FaultReason(e.Message, CultureInfo.CurrentCulture);
 048            _actor = "";
 049            _node = "";
 050        }
 51
 52        public override string Actor
 53        {
 54            get
 55            {
 056                return _actor;
 57            }
 58        }
 59
 60        public override FaultCode Code
 61        {
 62            get
 63            {
 064                return _code;
 65            }
 66        }
 67
 68        public override bool HasDetail
 69        {
 70            get
 71            {
 072                return true;
 73            }
 74        }
 75
 76        public override string Node
 77        {
 78            get
 79            {
 080                return _node;
 81            }
 82        }
 83
 84        public override FaultReason Reason
 85        {
 86            get
 87            {
 088                return _reason;
 89            }
 90        }
 91
 92        protected override void OnWriteDetail(XmlDictionaryWriter writer, EnvelopeVersion version)
 93        {
 094            if (version == EnvelopeVersion.Soap12)  // Soap11 wants the detail in the header
 95            {
 096                OnWriteStartDetail(writer, version);
 097                OnWriteDetailContents(writer);
 098                writer.WriteEndElement();
 99            }
 0100        }
 101
 102        protected override void OnWriteDetailContents(XmlDictionaryWriter writer)
 103        {
 0104            writer.WriteStartElement(Addressing10Strings.ProblemHeaderQName, AddressingVersion.WSAddressing10.Namespace)
 0105            writer.WriteQualifiedName(_invalidHeaderName, AddressingVersion.WSAddressing10.Namespace);
 0106            writer.WriteEndElement();
 0107        }
 108
 109        public void AddHeaders(MessageHeaders headers)
 110        {
 0111            if (headers.MessageVersion.Envelope == EnvelopeVersion.Soap11)
 112            {
 0113                headers.Add(new WSAddressing10ProblemHeaderQNameHeader(_invalidHeaderName));
 114            }
 0115        }
 116
 117        private class WSAddressing10ProblemHeaderQNameHeader : MessageHeader
 118        {
 119            private readonly string _invalidHeaderName;
 120
 0121            public WSAddressing10ProblemHeaderQNameHeader(string invalidHeaderName)
 122            {
 0123                _invalidHeaderName = invalidHeaderName;
 0124            }
 125
 126            public override string Name
 127            {
 0128                get { return Addressing10Strings.FaultDetail; }
 129            }
 130
 131            public override string Namespace
 132            {
 0133                get { return AddressingVersion.WSAddressing10.Namespace; }
 134            }
 135
 136            protected override void OnWriteStartHeader(XmlDictionaryWriter writer, MessageVersion messageVersion)
 137            {
 0138                writer.WriteStartElement(Name, Namespace);
 0139            }
 140
 141            protected override void OnWriteHeaderContents(XmlDictionaryWriter writer, MessageVersion messageVersion)
 142            {
 0143                writer.WriteStartElement(Addressing10Strings.ProblemHeaderQName, Namespace);
 0144                writer.WriteQualifiedName(_invalidHeaderName, Namespace);
 0145                writer.WriteEndElement();
 0146            }
 147        }
 148    }
 149}