< Summary - CoreWCF Coverage — PR #1766

Information
Class: CoreWCF.ServiceModel.Channels.KafkaChannelFactory
Assembly: CoreWCF.Kafka.Client
File(s): /home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Kafka.Client/src/CoreWCF/ServiceModel/Channels/KafkaChannelFactory.cs
Line coverage
76%
Covered lines: 13
Uncovered lines: 4
Coverable lines: 17
Total lines: 61
Line coverage: 76.4%
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(...)50%44100%
OnBeginOpen(...)100%110%
OnEndOpen(...)100%110%
OnOpen(...)100%11100%
OnCreateChannel(...)100%11100%
OnClosed()100%11100%

File(s)

/home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Kafka.Client/src/CoreWCF/ServiceModel/Channels/KafkaChannelFactory.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 System.Linq;
 6using System.ServiceModel;
 7using System.ServiceModel.Channels;
 8using System.Threading.Tasks;
 9using CoreWCF.Runtime;
 10
 11namespace CoreWCF.ServiceModel.Channels
 12{
 13    internal class KafkaChannelFactory : ChannelFactoryBase<IOutputChannel>
 14    {
 15        private readonly BufferManager _bufferManager;
 16        private readonly KafkaTransportBindingElement _transportTransportBindingElement;
 17
 18        public KafkaChannelFactory(KafkaTransportBindingElement transportBindingElement,
 19            BindingContext context)
 3820            : base(context.Binding)
 21        {
 3822            _transportTransportBindingElement = transportBindingElement;
 3823            _bufferManager = BufferManager.CreateBufferManager(transportBindingElement.MaxBufferPoolSize, int.MaxValue);
 24
 3825            MessageEncoderFactory = context.BindingParameters.Find<MessageEncodingBindingElement>()?.CreateMessageEncode
 3826                ?? KafkaConstants.DefaultMessageEncoderFactory;
 3827        }
 28
 94429        public BufferManager BufferManager => _bufferManager;
 30
 3831        public MessageEncoderFactory MessageEncoderFactory { get; }
 32
 033        private Task OnOpenAsync => Task.CompletedTask;
 34
 35        protected override IAsyncResult OnBeginOpen(TimeSpan timeout, AsyncCallback callback, object state)
 36        {
 037            return OnOpenAsync.ToApm(callback, state);
 38        }
 39
 40        protected override void OnEndOpen(IAsyncResult result)
 41        {
 042            result.ToApmEnd();
 043        }
 44
 45        protected override void OnOpen(TimeSpan timeout)
 46        {
 47
 3848        }
 49
 50        protected override IOutputChannel OnCreateChannel(EndpointAddress address, Uri via)
 51        {
 3852            return new KafkaOutputChannel(this, address, via, MessageEncoderFactory.Encoder, _transportTransportBindingE
 53        }
 54
 55        protected override void OnClosed()
 56        {
 1157            base.OnClosed();
 1158            _bufferManager.Clear();
 1159        }
 60    }
 61}