< Summary - CoreWCF Coverage — PR #1766

Information
Class: CoreWCF.Channels.DeadLetterQueueSender
Assembly: CoreWCF.MSMQ
File(s): /home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.MSMQ/src/CoreWCF/Channels/DeadLetterQueueSender.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 21
Coverable lines: 21
Total lines: 47
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
Send()0%220%
SendToSystem()100%110%
ConvertToStream()100%110%

File(s)

/home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.MSMQ/src/CoreWCF/Channels/DeadLetterQueueSender.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.Buffers;
 6using System.IO;
 7using System.IO.Pipelines;
 8using System.Threading.Tasks;
 9using MSMQ.Messaging;
 10
 11namespace CoreWCF.Channels
 12{
 13    internal class DeadLetterQueueSender
 14    {
 15        public async Task Send(PipeReader message, Uri endpoint)
 16        {
 017            string nativeQueueName = MsmqQueueNameConverter.GetMsmqFormatQueueName(endpoint);
 018            if (!MessageQueue.Exists(nativeQueueName))
 19            {
 020                MessageQueue.Create(nativeQueueName);
 21            }
 022            MemoryStream memStream = await ConvertToStream(message);
 023            var queue = new MessageQueue(nativeQueueName);
 024            var messageForQueue = new MSMQ.Messaging.Message { BodyStream = memStream };
 025            queue.Send(messageForQueue);
 026        }
 27
 28        public async Task SendToSystem(PipeReader message, Uri endpoint)
 29        {
 030            string nativeQueueName = MsmqQueueNameConverter.GetMsmqFormatQueueName(endpoint);
 031            MemoryStream memStream = await ConvertToStream(message);
 032            var queue = new MessageQueue(nativeQueueName);
 033            var messageForQueue = new MSMQ.Messaging.Message
 034            {
 035                BodyStream = memStream, UseDeadLetterQueue = true, TimeToBeReceived = TimeSpan.FromSeconds(0),
 036            };
 037            queue.Send(messageForQueue);
 038        }
 39
 40        private static async Task<MemoryStream> ConvertToStream(PipeReader stream)
 41        {
 042            var readResult = await stream.ReadAsync();
 043            var memStream = new MemoryStream(readResult.Buffer.ToArray());
 044            return memStream;
 045        }
 46    }
 47}