< Summary - CoreWCF Coverage — PR #1766

Information
Class: CoreWCF.Channels.KafkaReceiveContext
Assembly: CoreWCF.Kafka
File(s): /home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Kafka/src/CoreWCF/Channels/KafkaReceiveContext.cs
Line coverage
100%
Covered lines: 18
Uncovered lines: 0
Coverable lines: 18
Total lines: 59
Line coverage: 100%
Branch coverage
100%
Covered branches: 6
Total branches: 6
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
.ctor(...)100%11100%
OnAbandonAsync()100%44100%
OnCompleteAsync(...)100%22100%

File(s)

/home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Kafka/src/CoreWCF/Channels/KafkaReceiveContext.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.Threading;
 6using System.Threading.Tasks;
 7using Confluent.Kafka;
 8
 9namespace CoreWCF.Channels;
 10
 11internal class KafkaReceiveContext : ReceiveContext
 12{
 13    private readonly ConsumeResult<byte[], byte[]> _consumeResult;
 14    private readonly KafkaTransportPump _kafkaTransportPump;
 15
 71316    public KafkaReceiveContext(ConsumeResult<byte[], byte[]> consumeResult, KafkaTransportPump kafkaTransportPump)
 17    {
 71318        _consumeResult = consumeResult;
 71319        _kafkaTransportPump = kafkaTransportPump;
 71320        _kafkaTransportPump.IncrementReceiveContextCount();
 71321    }
 22
 23    protected override async Task OnAbandonAsync(CancellationToken token)
 24    {
 25        try
 26        {
 627            if (_kafkaTransportPump.TransportBindingElement.ErrorHandlingStrategy == KafkaErrorHandlingStrategy.DeadLett
 28            {
 229                await _kafkaTransportPump.Producer.ProduceAsync(_kafkaTransportPump.TransportBindingElement.DeadLetterQu
 30            }
 31
 632            if (_kafkaTransportPump.TransportBindingElement.DeliverySemantics == KafkaDeliverySemantics.AtLeastOnce)
 33            {
 234                _kafkaTransportPump.OffsetTracker.MarkAsProcessed(_consumeResult);
 35            }
 636        }
 37        finally
 38        {
 639            _kafkaTransportPump.DecrementReceiveContextCount();
 40        }
 641    }
 42
 43    protected override Task OnCompleteAsync(CancellationToken token)
 44    {
 45        try
 46        {
 70747            if (_kafkaTransportPump.TransportBindingElement.DeliverySemantics == KafkaDeliverySemantics.AtLeastOnce)
 48            {
 44149                _kafkaTransportPump.OffsetTracker.MarkAsProcessed(_consumeResult);
 50            }
 70751        }
 52        finally
 53        {
 70754            _kafkaTransportPump.DecrementReceiveContextCount();
 70755        }
 56
 70757        return Task.CompletedTask;
 58    }
 59}