public async Task DefaultSettings_ExplicitlySetKafkaKeyTransferred()
        {
            var message = new KafkaEventOne
            {
                KafkaKey = "my-key",
                Content  = "Hello E2E!"
            };

            Host.ConfigureServices(
                services => services
                .AddLogging()
                .AddSilverback()
                .UseModel()
                .WithConnectionToMessageBroker(options => options.AddMockedKafka())
                .AddEndpoints(
                    endpoints => endpoints
                    .AddOutbound <IIntegrationEvent>(new KafkaProducerEndpoint("test-e2e"))
                    .AddInbound(new KafkaConsumerEndpoint("test-e2e")))
                .AddSingletonBrokerBehavior <SpyBrokerBehavior>())
            .Run();

            var publisher = Host.ScopedServiceProvider.GetRequiredService <IEventPublisher>();
            await publisher.PublishAsync(message);

            SpyBehavior.InboundEnvelopes.Should().HaveCount(1);
            SpyBehavior.InboundEnvelopes[0].Headers[KafkaMessageHeaders.KafkaMessageKey].Should().Be("my-key");
        }
        public async Task Chunks_SameKafkaKeySetToAllChunks()
        {
            var message = new KafkaEventOne
            {
                KafkaKey = "my-key",
                Content  = "Hello E2E!"
            };

            Host.ConfigureServices(
                services => services
                .AddLogging()
                .AddSilverback()
                .UseModel()
                .WithConnectionToMessageBroker(
                    options => options
                    .AddMockedKafka())             // <- this adds all extra behaviors, even though the InMemoryBroker will be used
                .AddEndpoints(
                    endpoints => endpoints
                    .AddOutbound <IIntegrationEvent>(
                        new KafkaProducerEndpoint("test-e2e")
            {
                Chunk = new ChunkSettings
                {
                    Size = 10
                }
            })
                    .AddInbound(new KafkaConsumerEndpoint("test-e2e")))
                .AddSingletonBrokerBehavior <SpyBrokerBehavior>())
            .Run();

            var publisher = Host.ScopedServiceProvider.GetRequiredService <IEventPublisher>();
            await publisher.PublishAsync(message);

            SpyBehavior.InboundEnvelopes.Should().HaveCount(1);
            SpyBehavior.InboundEnvelopes.ForEach(
                envelope =>
                envelope.Headers[KafkaMessageHeaders.KafkaMessageKey].Should().Be("my-key"));
        }