public async Task AllowThroughMessagesWithoutADomainUnderTestHeader()
        {
            var behaviour = new DomainUnderTestFilterIncomingBehaviour(
                "A",
                NullLogger <DomainUnderTestFilterIncomingBehaviour> .Instance);

            var message = new IncomingMessage(
                id: Guid.NewGuid().ToString(),
                body: null,
                messageTypeNames: new[] { "test" },
                dequeuedUtc: DateTime.UtcNow,
                lockExpiresUtc: DateTime.UtcNow,
                1);

            await behaviour
            .Process(message, new Context(null), NextAction)
            .ConfigureAwait(false);

            Assert.IsTrue(nextActionWasCalled);
        }
        public async Task AutomaticallyCompleteMessagesWithADomainUnderTestHeaderThatExcludesTheCurrentEndpoint(string domainUnderTestHeaderValue, string endpointName, bool expectedToBeProcessed)
        {
            var behaviour = new DomainUnderTestFilterIncomingBehaviour(
                endpointName,
                NullLogger <DomainUnderTestFilterIncomingBehaviour> .Instance);

            var message = new IncomingMessage(
                id: Guid.NewGuid().ToString(),
                body: null,
                messageTypeNames: new[] { "test" },
                dequeuedUtc: DateTime.UtcNow,
                lockExpiresUtc: DateTime.UtcNow,
                1,
                headers: new HeaderCollection
            {
                { Constants.HeaderName, domainUnderTestHeaderValue }
            });

            await behaviour
            .Process(message, new Context(null), NextAction)
            .ConfigureAwait(false);

            Assert.AreEqual(expectedToBeProcessed, nextActionWasCalled);
        }