< Summary - CoreWCF Coverage — PR #1766

Information
Class: CoreWCF.Channels.ChannelBuilder
Assembly: CoreWCF.Primitives
File(s): /home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Primitives/src/CoreWCF/Channels/ChannelBuilder.cs
Line coverage
60%
Covered lines: 17
Uncovered lines: 11
Coverable lines: 28
Total lines: 77
Line coverage: 60.7%
Branch coverage
50%
Covered branches: 4
Total branches: 8
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%22100%
.ctor(...)100%110%
GetTypedChannelDemuxer()100%110%
GetTypedChannelDemuxer(...)100%11100%
AddServiceDispatcher(...)0%220%
AddServiceDispatcher(...)50%2266.66%
RemoveServiceDispatcher(...)50%2275%
BuildServiceDispatcher(...)100%11100%

File(s)

/home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Primitives/src/CoreWCF/Channels/ChannelBuilder.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 CoreWCF.Configuration;
 6using CoreWCF.Dispatcher;
 7
 8namespace CoreWCF.Channels
 9{
 10    internal class ChannelBuilder
 11    {
 12        private readonly bool _isChannelDemuxerRequired = false;
 13
 3314        public ChannelBuilder(BindingContext context, bool addChannelDemuxerIfRequired)
 15        {
 3316            _isChannelDemuxerRequired = addChannelDemuxerIfRequired;
 3317            if (_isChannelDemuxerRequired)
 18            {
 2219                ChannelDemuxer = new ChannelDemuxer();
 20            }
 21
 3322            Binding = new CustomBinding(context.Binding, context.RemainingBindingElements);
 3323            BindingParameters = context.BindingParameters;
 3324        }
 25
 026        public ChannelBuilder(Binding binding, BindingParameterCollection bindingParameters, bool addChannelDemuxerIfReq
 27        {
 028            Binding = new CustomBinding(binding);
 029            BindingParameters = bindingParameters;
 030            _isChannelDemuxerRequired = addChannelDemuxerIfRequired;
 031        }
 32
 5533        public CustomBinding Binding { get; set; }
 34
 10035        public BindingParameterCollection BindingParameters { get; set; }
 36
 7737        public ChannelDemuxer ChannelDemuxer { get; }
 38
 39        public TypedChannelDemuxer GetTypedChannelDemuxer<TChannel>() where TChannel : class, IChannel
 40        {
 041            return ChannelDemuxer.GetTypedServiceDispatcher<TChannel>(BindingParameters);
 42        }
 43
 44        public TypedChannelDemuxer GetTypedChannelDemuxer(Type channelType)
 45        {
 2446            return ChannelDemuxer.GetTypedServiceDispatcher(channelType, BindingParameters);
 47        }
 48
 49        public  IServiceDispatcher AddServiceDispatcher<TChannel>(IServiceDispatcher innerDispatcher) where TChannel : c
 50        {
 051            if (!_isChannelDemuxerRequired)
 052                throw new Exception("ChannelDemuxerRequired is set to false");
 053            return ChannelDemuxer.CreateServiceDispatcher<TChannel>(innerDispatcher, BindingParameters);
 54        }
 55
 56        public IServiceDispatcher AddServiceDispatcher<TChannel>(IServiceDispatcher innerDispatcher, ChannelDemuxerFilte
 57        {
 3358            if (!_isChannelDemuxerRequired)
 059                throw new Exception("ChannelDemuxerRequired is set to false");
 3360            return ChannelDemuxer.CreateServiceDispatcher<TChannel>(innerDispatcher, filter, BindingParameters);
 61        }
 62
 63        public void RemoveServiceDispatcher<TChannel>(MessageFilter filter) where TChannel : class, IChannel
 64        {
 1065            if (ChannelDemuxer == null)
 66            {
 067                throw new Exception("Demuxer can't be null");
 68            }
 1069            ChannelDemuxer.RemoveServiceDispatcher<TChannel>(filter, BindingParameters);
 1070        }
 71
 72        public IServiceDispatcher BuildServiceDispatcher<TChannel>(BindingContext context, IServiceDispatcher innerDispa
 73        {
 3374            return context.BuildNextServiceDispatcher<TChannel>(innerDispatcher);
 75        }
 76    }
 77}