< Summary - CoreWCF Coverage — PR #1766

Information
Class: CoreWCF.Channels.MsmqTransportBindingElement
Assembly: CoreWCF.MSMQ
File(s): /home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.MSMQ/src/CoreWCF/Channels/MsmqTransportBindingElement.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 18
Coverable lines: 18
Total lines: 71
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 2
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()100%110%
.ctor(...)100%110%
BuildQueueTransportPump(...)100%110%
CreateMyQueueTransport(...)100%110%
Clone()100%110%
CreateQueue(...)0%220%

File(s)

/home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.MSMQ/src/CoreWCF/Channels/MsmqTransportBindingElement.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.Queue.Common;
 7using MSMQ.Messaging;
 8
 9namespace CoreWCF.Channels
 10{
 11    public sealed class MsmqTransportBindingElement : MsmqBindingElementBase
 12    {
 13        private bool _useActiveDirectory = MsmqDefaults.UseActiveDirectory;
 14
 015        public MsmqTransportBindingElement() { }
 16
 17        private MsmqTransportBindingElement(MsmqTransportBindingElement elementToBeCloned)
 018            : base(elementToBeCloned)
 19        {
 020            _useActiveDirectory = elementToBeCloned._useActiveDirectory;
 021        }
 22
 23        public override string Scheme
 24        {
 25            get
 26            {
 027                return "net.msmq";
 28            }
 29        }
 30
 31        public bool UseActiveDirectory
 32        {
 33            get
 34            {
 035                return _useActiveDirectory;
 36            }
 37            set
 38            {
 039                throw new NotImplementedException();
 40            }
 41        }
 42
 43        public override QueueTransportPump BuildQueueTransportPump(BindingContext context)
 44        {
 045            IQueueTransport queueTransport = CreateMyQueueTransport(context);
 046            return QueueTransportPump.CreateDefaultPump(queueTransport);
 47        }
 48
 49        private IQueueTransport CreateMyQueueTransport(BindingContext context)
 50        {
 051            var serviceDispatcher = context.BindingParameters.Find<IServiceDispatcher>();
 052            var serviceProvider = context.BindingParameters.Find<IServiceProvider>();
 053            CreateQueue(serviceDispatcher.BaseAddress);
 054            return new MsmqQueueTransport(serviceDispatcher, serviceProvider);
 55        }
 56
 57        public override BindingElement Clone()
 58        {
 059            return new MsmqTransportBindingElement(this);
 60        }
 61
 62        private void CreateQueue(Uri localAddress)
 63        {
 064            var queueName = MsmqQueueNameConverter.GetMsmqFormatQueueName(localAddress);
 065            if (!MessageQueue.Exists(queueName))
 66            {
 067                MessageQueue.Create(queueName);
 68            }
 069        }
 70    }
 71}