コード例 #1
0
        public void CorrelationIdPropertyHappyPath2()
        {
            var cloudEvent = new CorrelatedEvent();

            cloudEvent.CorrelationId.Should().NotBeNullOrEmpty();
            Guid.TryParse(cloudEvent.CorrelationId, out _).Should().BeTrue();
        }
コード例 #2
0
        public void CorrelationIdPropertySadPath()
        {
            var cloudEvent = new CorrelatedEvent();

            cloudEvent.Invoking(evt => evt.CorrelationId = null !).Should()
            .ThrowExactly <ArgumentNullException>()
            .WithMessage("*value*");
        }
コード例 #3
0
        public void CorrelationIdPropertyHappyPath1()
        {
            var cloudEvent = new CorrelatedEvent();

            cloudEvent.CorrelationId = "123";

            cloudEvent.CorrelationId.Should().Be("123");
        }
コード例 #4
0
        private async Task OnUserEventReceivedAsync(CorrelatedEvent userEvent, IReceiverMessage message)
        {
            Console.WriteLine($"Received user event: '{userEvent.StringData}' with correlation id: {userEvent.CorrelationId}");

            var worker1Event = userEvent.Copy();
            var worker2Event = userEvent.Copy();

            var middle = userEvent.StringData.Length / 2;

            worker1Event.SetData(userEvent.StringData[..middle]);
コード例 #5
0
        public void ValidateStaticMethodHappyPath1()
        {
            var senderMessage = new SenderMessage("Hello, world!");

            senderMessage.Headers.Add(CorrelatedEvent.CorrelationIdAttribute, "MyCorrelationId");

            senderMessage.Headers.Add(CloudEvent.SpecVersionAttribute, "1.0");
            senderMessage.Headers.Add(CloudEvent.IdAttribute, "MyId");
            senderMessage.Headers.Add(CloudEvent.SourceAttribute, new Uri("http://MySource"));
            senderMessage.Headers.Add(CloudEvent.TypeAttribute, "MyType");
            senderMessage.Headers.Add(CloudEvent.TimeAttribute, DateTime.UtcNow);

            Action act = () => CorrelatedEvent.Validate(senderMessage);

            act.Should().NotThrow();
        }
コード例 #6
0
        public void ValidateStaticMethodSadPath()
        {
            // Missing CorrelationId

            var senderMessage = new SenderMessage("Hello, world!");

            senderMessage.Headers.Add(CloudEvent.SpecVersionAttribute, "1.0");
            senderMessage.Headers.Add(CloudEvent.IdAttribute, "MyId");
            senderMessage.Headers.Add(CloudEvent.SourceAttribute, new Uri("http://MySource"));
            senderMessage.Headers.Add(CloudEvent.TypeAttribute, "MyType");
            senderMessage.Headers.Add(CloudEvent.TimeAttribute, DateTime.UtcNow);

            CorrelatedEvent.Validate(senderMessage);

            senderMessage.Headers.Should().ContainKey(CorrelatedEvent.CorrelationIdAttribute)
            .WhoseValue.Should().NotBeNull();
        }
コード例 #7
0
        public void ValidateMethodHappyPath()
        {
            var cloudEvent = new CorrelatedEvent
            {
                Id     = "MyId",
                Type   = "MyType",
                Source = "/MySource",
                Time   = DateTime.Now
            };

            cloudEvent.Attributes.Should().HaveCount(4);

            cloudEvent.Validate();

            cloudEvent.Attributes.Should().HaveCount(5);
            cloudEvent.Attributes.Should().ContainKey(CorrelatedEvent.CorrelationIdAttribute)
            .WhoseValue.Should().NotBeNull();
        }
コード例 #8
0
        public void ValidateStaticMethodHappyPath2()
        {
            // Non-default protocol binding

            var senderMessage = new SenderMessage("Hello, world!");

            senderMessage.Headers.Add("test-" + CorrelatedEvent.CorrelationIdAttribute, "MyCorrelationId");

            senderMessage.Headers.Add("test-" + CloudEvent.SpecVersionAttribute, "1.0");
            senderMessage.Headers.Add("test-" + CloudEvent.IdAttribute, "MyId");
            senderMessage.Headers.Add("test-" + CloudEvent.SourceAttribute, new Uri("http://MySource"));
            senderMessage.Headers.Add("test-" + CloudEvent.TypeAttribute, "MyType");
            senderMessage.Headers.Add("test-" + CloudEvent.TimeAttribute, DateTime.UtcNow);

            var mockProtocolBinding = new Mock <IProtocolBinding>();

            mockProtocolBinding.Setup(m => m.GetHeaderName(It.IsAny <string>())).Returns <string>(header => "test-" + header);

            Action act = () => CorrelatedEvent.Validate(senderMessage, mockProtocolBinding.Object);

            act.Should().NotThrow();
        }