< Summary - CoreWCF Coverage — PR #1766

Information
Class: CoreWCF.Description.WsdlEndpointConversionContext
Assembly: CoreWCF.Primitives
File(s): /home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Primitives/src/CoreWCF/Description/WsdlEndpointConversionContext.cs
Line coverage
62%
Covered lines: 38
Uncovered lines: 23
Coverable lines: 61
Total lines: 132
Line coverage: 62.2%
Branch coverage
75%
Covered branches: 12
Total branches: 16
Branch coverage: 75%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
.ctor(...)100%11100%
.ctor(...)100%110%
GetOperationBinding(...)100%11100%
GetMessageBinding(...)100%11100%
GetFaultBinding(...)100%110%
GetOperationDescription(...)100%110%
GetMessageDescription(...)100%110%
GetFaultDescription(...)100%110%
AddOperationBinding(...)100%11100%
AddMessageBinding(...)100%11100%
AddFaultBinding(...)100%110%

File(s)

/home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Primitives/src/CoreWCF/Description/WsdlEndpointConversionContext.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.Collections.Generic;
 5using System.Collections.ObjectModel;
 6using WsdlNS = System.Web.Services.Description;
 7
 8namespace CoreWCF.Description
 9{
 10    public class WsdlEndpointConversionContext
 11    {
 12        private readonly Dictionary<OperationDescription, WsdlNS.OperationBinding> _wsdlOperationBindings;
 13        private readonly Dictionary<WsdlNS.OperationBinding, OperationDescription> _operationDescriptionBindings;
 14        private readonly Dictionary<MessageDescription, WsdlNS.MessageBinding> _wsdlMessageBindings;
 15        private readonly Dictionary<FaultDescription, WsdlNS.FaultBinding> _wsdlFaultBindings;
 16        private readonly Dictionary<WsdlNS.MessageBinding, MessageDescription> _messageDescriptionBindings;
 17        private readonly Dictionary<WsdlNS.FaultBinding, FaultDescription> _faultDescriptionBindings;
 18
 3219        internal WsdlEndpointConversionContext(WsdlContractConversionContext contractContext, ServiceEndpoint endpoint, 
 20        {
 21
 3222            Endpoint = endpoint;
 3223            WsdlBinding = wsdlBinding;
 3224            WsdlPort = wsdlport;
 3225            ContractConversionContext = contractContext;
 26
 3227            _wsdlOperationBindings = new Dictionary<OperationDescription, WsdlNS.OperationBinding>();
 3228            _operationDescriptionBindings = new Dictionary<WsdlNS.OperationBinding, OperationDescription>();
 3229            _wsdlMessageBindings = new Dictionary<MessageDescription, WsdlNS.MessageBinding>();
 3230            _messageDescriptionBindings = new Dictionary<WsdlNS.MessageBinding, MessageDescription>();
 3231            _wsdlFaultBindings = new Dictionary<FaultDescription, WsdlNS.FaultBinding>();
 3232            _faultDescriptionBindings = new Dictionary<WsdlNS.FaultBinding, FaultDescription>();
 3233        }
 34
 035        internal WsdlEndpointConversionContext(WsdlEndpointConversionContext bindingContext, ServiceEndpoint endpoint, W
 36        {
 37
 038            Endpoint = endpoint;
 039            WsdlBinding = bindingContext.WsdlBinding;
 040            WsdlPort = wsdlport;
 041            ContractConversionContext = bindingContext.ContractConversionContext;
 42
 043            _wsdlOperationBindings = bindingContext._wsdlOperationBindings;
 044            _operationDescriptionBindings = bindingContext._operationDescriptionBindings;
 045            _wsdlMessageBindings = bindingContext._wsdlMessageBindings;
 046            _messageDescriptionBindings = bindingContext._messageDescriptionBindings;
 047            _wsdlFaultBindings = bindingContext._wsdlFaultBindings;
 048            _faultDescriptionBindings = bindingContext._faultDescriptionBindings;
 049        }
 50
 51        internal IEnumerable<IWsdlExportExtension> ExportExtensions
 52        {
 53            get
 54            {
 6455                foreach (IWsdlExportExtension extension in Endpoint.EndpointBehaviors.FindAll<IEndpointBehavior, IWsdlEx
 56                {
 057                    yield return extension;
 58                }
 59
 19260                foreach (IWsdlExportExtension extension in Endpoint.Binding.CreateBindingElements().FindAll<IWsdlExportE
 61                {
 6462                    yield return extension;
 63                }
 64
 6465                foreach (IWsdlExportExtension extension in Endpoint.Contract.ContractBehaviors.FindAll<IContractBehavior
 66                {
 067                    yield return extension;
 68                }
 69
 38270                foreach (OperationDescription operation in Endpoint.Contract.Operations)
 71                {
 15972                    if (!WsdlExporter.OperationIsExportable(operation))
 73                    {
 74                        continue;
 75                    }
 76
 77                    // In 3.0SP1, the DCSOB and XSOB were moved from before to after the custom behaviors.  For
 78                    // IWsdlExportExtension compat, run them in the pre-SP1 order.
 15979                    Collection<IWsdlExportExtension> extensions = operation.OperationBehaviors.FindAll<IOperationBehavio
 47780                    for (int i = 0; i < extensions.Count;)
 81                    {
 15982                        if (WsdlExporter.IsBuiltInOperationBehavior(extensions[i]))
 83                        {
 15984                            yield return extensions[i];
 15985                            extensions.RemoveAt(i);
 86                        }
 87                        else
 88                        {
 089                            i++;
 90                        }
 91                    }
 92
 31893                    foreach (IWsdlExportExtension extension in extensions)
 94                    {
 095                        yield return extension;
 96                    }
 15997                }
 3298            }
 99        }
 100
 510101        public ServiceEndpoint Endpoint { get; }
 1342102        public WsdlNS.Binding WsdlBinding { get; }
 128103        public WsdlNS.Port WsdlPort { get; }
 41104        public WsdlContractConversionContext ContractConversionContext { get; }
 477105        public WsdlNS.OperationBinding GetOperationBinding(OperationDescription operation) => _wsdlOperationBindings[ope
 318106        public WsdlNS.MessageBinding GetMessageBinding(MessageDescription message) => _wsdlMessageBindings[message];
 0107        public WsdlNS.FaultBinding GetFaultBinding(FaultDescription fault) => _wsdlFaultBindings[fault];
 0108        public OperationDescription GetOperationDescription(WsdlNS.OperationBinding operationBinding) => _operationDescr
 0109        public MessageDescription GetMessageDescription(WsdlNS.MessageBinding messageBinding) => _messageDescriptionBind
 0110        public FaultDescription GetFaultDescription(WsdlNS.FaultBinding faultBinding) => _faultDescriptionBindings[fault
 111
 112        // --------------------------------------------------------------------------------------------------
 113
 114        internal void AddOperationBinding(OperationDescription operationDescription, WsdlNS.OperationBinding wsdlOperati
 115        {
 159116            _wsdlOperationBindings.Add(operationDescription, wsdlOperationBinding);
 159117            _operationDescriptionBindings.Add(wsdlOperationBinding, operationDescription);
 159118        }
 119
 120        internal void AddMessageBinding(MessageDescription messageDescription, WsdlNS.MessageBinding wsdlMessageBinding)
 121        {
 318122            _wsdlMessageBindings.Add(messageDescription, wsdlMessageBinding);
 318123            _messageDescriptionBindings.Add(wsdlMessageBinding, messageDescription);
 318124        }
 125
 126        internal void AddFaultBinding(FaultDescription faultDescription, WsdlNS.FaultBinding wsdlFaultBinding)
 127        {
 0128            _wsdlFaultBindings.Add(faultDescription, wsdlFaultBinding);
 0129            _faultDescriptionBindings.Add(wsdlFaultBinding, faultDescription);
 0130        }
 131    }
 132}