• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mehdihadeli / food-delivery-microservices / 28702836619

04 Jul 2026 10:06AM UTC coverage: 17.028% (+0.8%) from 16.207%
28702836619

Pull #254

github

web-flow
Merge bff19f2e6 into ed20d3c08
Pull Request #254: feat: :sparkles: add inbox, outbox and internal processor by wolverine

379 of 3330 branches covered (11.38%)

Branch coverage included in aggregate %.

19 of 61 new or added lines in 12 files covered. (31.15%)

29 existing lines in 5 files now uncovered.

1398 of 7106 relevant lines covered (19.67%)

0.41 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/BuildingBlocks/BuildingBlocks.Integration.Wolverine/WolverineConsumerExecutor.cs
1
using BuildingBlocks.Abstractions.Messages;
2
using BuildingBlocks.Core.Messages;
3
using BuildingBlocks.Core.Web.Extensions;
4
using Microsoft.AspNetCore.HeaderPropagation;
5
using Microsoft.Extensions.Logging;
6
using Microsoft.Extensions.Primitives;
7
using Wolverine;
8

9
namespace BuildingBlocks.Integration.Wolverine;
10

11
public static class WolverineConsumerExecutor
12
{
13
    public static async Task ExecuteAsync<TMessage>(
14
        TMessage message,
15
        Envelope transportEnvelope,
16
        HeaderPropagationValues headerPropagationValues,
17
        Func<TMessage, Task> dispatch,
18
        ILogger? logger = null,
19
        CancellationToken cancellationToken = default
20
    )
21
        where TMessage : class
22
    {
UNCOV
23
        InitializeHeaderPropagation(headerPropagationValues);
×
24

UNCOV
25
        var correlationIdValue = Convert.ToString(transportEnvelope.CorrelationId);
×
UNCOV
26
        if (Guid.TryParse(correlationIdValue, out var correlationId))
×
27
        {
UNCOV
28
            headerPropagationValues.AddCorrelationId(correlationId);
×
29
        }
30

UNCOV
31
        var messageIdValue = Convert.ToString(transportEnvelope.Id);
×
UNCOV
32
        if (Guid.TryParse(messageIdValue, out var messageId))
×
33
        {
UNCOV
34
            headerPropagationValues.AddMessageId(messageId);
×
35
        }
36

37
        IMessageEnvelopeBase messageEnvelope;
UNCOV
38
        if (message is IMessageEnvelopeBase existingEnvelope)
×
39
        {
40
            messageEnvelope = existingEnvelope;
41
        }
42
        else
43
        {
UNCOV
44
            var metadata = new MessageEnvelopeMetadata(
×
UNCOV
45
                Guid.TryParse(messageIdValue, out var parsedMessageId) ? parsedMessageId : Guid.CreateVersion7(),
×
UNCOV
46
                Guid.TryParse(correlationIdValue, out var parsedCorrelationId)
×
UNCOV
47
                    ? parsedCorrelationId
×
UNCOV
48
                    : Guid.CreateVersion7(),
×
UNCOV
49
                transportEnvelope.MessageType,
×
UNCOV
50
                message.GetType().Name,
×
UNCOV
51
                Guid.TryParse(Convert.ToString(transportEnvelope.ParentId), out var parsedCausationId)
×
UNCOV
52
                    ? parsedCausationId
×
UNCOV
53
                    : null
×
UNCOV
54
            );
×
55

UNCOV
56
            foreach (var header in transportEnvelope.Headers)
×
57
            {
UNCOV
58
                metadata.Headers[header.Key] = header.Value;
×
59
            }
60

UNCOV
61
            messageEnvelope = MessageEnvelopeFactory.From(message, metadata);
×
62
        }
63

NEW
64
        await dispatch(message).ConfigureAwait(false);
×
65

UNCOV
66
        logger?.LogInformation("Message with ID {MessageId} processed and marked as delivered.", messageIdValue);
×
UNCOV
67
    }
×
68

69
    private static void InitializeHeaderPropagation(HeaderPropagationValues headerPropagationValues)
70
    {
71
        headerPropagationValues.Headers ??= new Dictionary<string, StringValues>(StringComparer.OrdinalIgnoreCase);
×
72
    }
73
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc