예제 #1
0
        public void GetHeaders_DecoratedPropertyPublishingDefaultValue_HeaderWithDefaultValueReturned()
        {
            var message = new TestEventWithHeaders();

            var result = HeaderAttributeHelper.GetHeaders(message).ToList();

            result.Should().ContainEquivalentOf(new MessageHeader("x-string-default", null));
            result.Should().ContainEquivalentOf(new MessageHeader("x-int-default", "0"));
        }
예제 #2
0
        public void GetHeaders_DecoratedPropertyWithoutPublishingDefaultValue_HeaderNotReturned()
        {
            var message = new TestEventWithHeaders();

            var result = HeaderAttributeHelper.GetHeaders(message).ToList();

            result.Select(header => header.Name).Should().NotContain("x-string");
            result.Select(header => header.Name).Should().NotContain("x-int");
        }
        public void GetHeaders_DecoratedMessage_HeadersReturned()
        {
            var message = new TestEventWithHeaders
            {
                StringHeader            = "string1",
                StringHeaderWithDefault = "string2",
                IntHeader            = 1,
                IntHeaderWithDefault = 2
            };

            var result = HeaderAttributeHelper.GetHeaders(message);

            result.Should().BeEquivalentTo(
                new MessageHeader("x-string", "string1"),
                new MessageHeader("x-string-default", "string2"),
                new MessageHeader("x-readonly-string", "readonly"),
                new MessageHeader("x-int", "1"),
                new MessageHeader("x-int-default", "2"),
                new MessageHeader("x-readonly-int", "42"));
        }
예제 #4
0
        public void SetFromHeaders_DecoratedMessage_PropertiesSet()
        {
            var headers = new MessageHeaderCollection
            {
                { "x-string", "string1" },
                { "x-string-default", "string2" },
                { "x-readonly-string", "ignored" },
                { "x-int", "1" },
                { "x-int-default", "2" },
                { "x-readonly-int", "3" }
            };

            var message = new TestEventWithHeaders();

            HeaderAttributeHelper.SetFromHeaders(message, headers);

            message.StringHeader.Should().Be("string1");
            message.StringHeaderWithDefault.Should().Be("string2");
            message.ReadOnlyStringHeader.Should().Be("readonly");
            message.IntHeader.Should().Be(1);
            message.IntHeaderWithDefault.Should().Be(2);
            message.ReadOnlyIntHeader.Should().Be(42);
        }