< Summary - CoreWCF Coverage — PR #1766

Information
Class: CoreWCF.ServiceModel.Channels.KafkaBinding
Assembly: CoreWCF.Kafka.Client
File(s): /home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Kafka.Client/src/CoreWCF/ServiceModel/Channels/KafkaBinding.cs
Line coverage
82%
Covered lines: 28
Uncovered lines: 6
Coverable lines: 34
Total lines: 86
Line coverage: 82.3%
Branch coverage
60%
Covered branches: 6
Total branches: 10
Branch coverage: 60%
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%
CreateBindingElements()66.66%6685.71%
Initialize()100%11100%

File(s)

/home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Kafka.Client/src/CoreWCF/ServiceModel/Channels/KafkaBinding.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.ServiceModel.Channels;
 6
 7namespace CoreWCF.ServiceModel.Channels
 8{
 9    public class KafkaBinding : Binding
 10    {
 11        private KafkaSecurity _security;
 12        private KafkaTransportBindingElement _transport;
 13        private TextMessageEncodingBindingElement _textEncoding;
 14        private BinaryMessageEncodingBindingElement _binaryEncoding;
 15
 3916        private KafkaMessageEncoding _messageEncoding = KafkaMessageEncoding.Text;
 17
 3918        public KafkaBinding()
 19        {
 3920            Initialize();
 3921        }
 22
 23        public KafkaBinding(KafkaSecurityMode securityMode)
 024            : this()
 25        {
 026            _security.Mode = securityMode;
 027        }
 28
 29        public override BindingElementCollection CreateBindingElements()
 30        {
 33131            BindingElementCollection elements = new();
 32
 33133            SecurityBindingElement securityBindingElement = _security.CreateMessageSecurity();
 33134            if (securityBindingElement != null)
 35            {
 036                elements.Add(securityBindingElement);
 37            }
 38
 33139            MessageEncodingBindingElement encodingBindingElement = MessageEncoding switch
 33140            {
 941                KafkaMessageEncoding.Binary => _binaryEncoding,
 32242                KafkaMessageEncoding.Text => _textEncoding,
 043                _ => _textEncoding
 33144            };
 45
 33146            elements.Add(encodingBindingElement);
 47
 33148            _security.ApplySecurity(_transport);
 49
 33150            elements.Add(_transport);
 51
 33152            return elements.Clone();
 53        }
 54
 455        public override string Scheme => KafkaConstants.Scheme;
 56
 57
 58        public KafkaMessageEncoding MessageEncoding
 59        {
 33560            get => _messageEncoding;
 61            set
 62            {
 263                if (!KafkaMessageEncodingHelper.IsDefined(value))
 64                {
 065                    throw new ArgumentOutOfRangeException(nameof(value));
 66                }
 67
 268                _messageEncoding = value;
 269            }
 70        }
 71
 72        public KafkaSecurity Security
 73        {
 474            get => _security;
 475            set => _security = value ?? throw new ArgumentNullException(nameof(value));
 76        }
 77
 78        private void Initialize()
 79        {
 3980            _security = new KafkaSecurity();
 3981            _transport = new KafkaTransportBindingElement();
 3982            _textEncoding = new TextMessageEncodingBindingElement();
 3983            _binaryEncoding = new BinaryMessageEncodingBindingElement();
 3984        }
 85    }
 86}