Esempio n. 1
0
        public async Task Should_set_the_IsSystemMessage_when_control_message_header_is_null()
        {
            var context = new SystemMessageTestContext
            {
                MessageId                   = Guid.NewGuid().ToString(),
                EnclosedMessageType         = "NServiceBus.Scheduling.Messages.ScheduledTask",
                IncludeControlMessageHeader = true, // If hte control message header is present, then its a system message
                ControlMessageHeaderValue   = null
            };

            FailedMessageView failure = null;

            await Define(context)
            .WithEndpoint <ServerEndpoint>()
            .Done(async c =>
            {
                var result = await TryGetSingle <FailedMessageView>("/api/errors", r => r.MessageId == c.MessageId);
                failure    = result;
                return(result);
            })
            .Run();

            Assert.IsNotNull(failure);
            Assert.IsTrue(failure.IsSystemMessage);
        }
Esempio n. 2
0
        public void No_SagaType_Header_Is_Ok()
        {
            FailedMessageView failure = null;

            var context = new MyContext();

            Define(context)
            .WithEndpoint <FailureEndpoint>()
            .Done(c => TryGetSingle("/api/errors/", out failure, m => m.Id == c.UniqueMessageId))
            .Run();

            Assert.IsNotNull(failure);
        }
        public void Null_TimeSent_should_not_be_cast_to_DateTimeMin()
        {
            FailedMessageView failure = null;

            var context = new MyContext();

            Define(context)
            .WithEndpoint <FailureEndpoint>()
            .Done(c => TryGetSingle("/api/errors/", out failure, m => m.Id == c.UniqueMessageId))
            .Run();

            Assert.IsNotNull(failure);
            Assert.IsNull(failure.TimeSent);
        }
Esempio n. 4
0
        public async Task Should_be_able_to_get_the_message_by_id()
        {
            FailedMessageView failure = null;

            await Define <MyContext>()
            .WithEndpoint <Failing>()
            .Done(async c =>
            {
                var result = await this.TryGet <FailedMessageView>($"/api/errors/last/{c.UniqueMessageId}");
                failure    = result;
                return(c.UniqueMessageId != null & result);
            })
            .Run();

            Assert.IsNotNull(failure);
        }
Esempio n. 5
0
        public void Should_be_listed_in_the_error_list()
        {
            var context = new MyContext();

            FailedMessageView failure = null;

            Define(context)
            .WithEndpoint <Receiver>(b => b.Given(bus => bus.SendLocal(new MyMessage())))
            .Done(c => TryGetSingle("/api/errors", out failure, r => r.MessageId == c.MessageId))
            .Run();

            // The message Ids may contain a \ if they are from older versions.
            Assert.AreEqual(context.MessageId, failure.MessageId.Replace(@"\", "-"), "The returned message should match the processed one");
            Assert.AreEqual(FailedMessageStatus.Unresolved, failure.Status, "Status of new messages should be failed");
            Assert.AreEqual(1, failure.NumberOfProcessingAttempts, "One attempt should be stored");
        }
Esempio n. 6
0
        public async Task No_SagaType_Header_Is_Ok()
        {
            FailedMessageView failure = null;

            await Define <MyContext>()
            .WithEndpoint <FailureEndpoint>()
            .Done(async c =>
            {
                var result = await this.TryGetSingle <FailedMessageView>("/api/errors/", m => m.Id == c.UniqueMessageId);
                failure    = result;
                return(result);
            })
            .Run();

            Assert.IsNotNull(failure);
        }
Esempio n. 7
0
        public async Task Null_TimeSent_should_not_be_cast_to_DateTimeMin()
        {
            FailedMessageView failure = null;

            await Define <MyContext>()
            .WithEndpoint <Failing>()
            .Done(async c =>
            {
                var result = await this.TryGetSingle <FailedMessageView>("/api/errors/", m => m.Id == c.UniqueMessageId);
                failure    = result;
                return(result);
            })
            .Run();

            Assert.IsNotNull(failure);
            Assert.IsNull(failure.TimeSent);
        }
        public void Should_be_listed_in_the_error_list_when_processing_endpoint_header_is_present()
        {
            var context = new MyContext
            {
                MessageId = Guid.NewGuid().ToString(),
                IncludeProcessingEndpointHeader = true
            };

            FailedMessageView failure = null;

            Define(context)
            .WithEndpoint <SendOnlyEndpoint>()
            .Done(c => TryGetSingle("/api/errors", out failure, r => r.MessageId == c.MessageId))
            .Run();
            Assert.IsNotNull(failure);
            Assert.IsTrue(failure.ReceivingEndpoint.Name.Contains("SomeEndpoint"), $"The sending endpoint should be SomeEndpoint and not {failure.ReceivingEndpoint.Name}");
        }
        public void Should_set_the_IsSystemMessage_when_message_type_is_a_scheduled_task()
        {
            var context = new SystemMessageTestContext
            {
                MessageId                   = Guid.NewGuid().ToString(),
                EnclosedMessageType         = "NServiceBus.Scheduling.Messages.ScheduledTask",
                IncludeControlMessageHeader = false,
            };

            FailedMessageView failure = null;

            Define(context)
            .WithEndpoint <ServerEndpoint>()
            .Done(c => TryGetSingle("/api/errors", out failure, r => r.MessageId == c.MessageId))
            .Run();
            Assert.IsNotNull(failure);
            Assert.IsTrue(failure.IsSystemMessage);
        }
        public void Should_set_the_IsSystemMessage_when_message_type_is_not_a_scheduled_task()
        {
            var context = new SystemMessageTestContext
            {
                MessageId                   = Guid.NewGuid().ToString(),
                EnclosedMessageType         = "SendOnlyError.SendSomeCommand, TestSendOnlyError, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",
                IncludeControlMessageHeader = false,
            };

            FailedMessageView failure = null;

            Define(context)
            .WithEndpoint <ServerEndpoint>()
            .Done(c => TryGetSingle("/api/errors", out failure, r => r.MessageId == c.MessageId))
            .Run();
            Assert.IsNotNull(failure);
            Assert.IsFalse(failure.IsSystemMessage);
        }
        public void Should_set_the_IsSystemMessage_for_integration_scenario()
        {
            var context = new SystemMessageTestContext
            {
                MessageId                   = Guid.NewGuid().ToString(),
                EnclosedMessageType         = null,
                IncludeControlMessageHeader = false
            };

            FailedMessageView failure = null;

            Define(context)
            .WithEndpoint <ServerEndpoint>()
            .Done(c => TryGetSingle("/api/errors", out failure, r => r.MessageId == c.MessageId))
            .Run();
            Assert.IsNotNull(failure);
            Assert.IsFalse(failure.IsSystemMessage);
        }
Esempio n. 12
0
        public void Should_be_listed_in_the_error_list_when_processing_endpoint_header_is_not_present()
        {
            var context = new MyContext
            {
                MessageId = Guid.NewGuid().ToString(),
                IncludeProcessingEndpointHeader = false
            };

            FailedMessageView failure = null;

            Scenario.Define(context)
            .WithEndpoint <ManagementEndpoint>(c => c.AppConfig(PathToAppConfig))
            .WithEndpoint <SendOnlyEndpoint>()
            .Done(c => TryGetSingle("/api/errors", out failure, r => r.MessageId == c.MessageId))
            .Run();
            Assert.IsNotNull(failure);
            Assert.IsTrue(failure.ReceivingEndpoint.Name.Contains("SomeEndpoint"), string.Format("The sending endpoint should be SomeEndpoint and not {0}", failure.ReceivingEndpoint.Name));
        }
        public void Should_set_the_IsSystemMessage_when_control_message_header_is_true()
        {
            var context = new SystemMessageTestContext
            {
                MessageId                   = Guid.NewGuid().ToString(),
                EnclosedMessageType         = null,
                IncludeControlMessageHeader = true,
                ControlMessageHeaderValue   = true
            };

            FailedMessageView failure = null;

            Define(context)
            .WithEndpoint <ServerEndpoint>()
            .Done(c => TryGetSingle("/api/errors", out failure, r => r.MessageId == c.MessageId))
            .Run();
            Assert.IsNotNull(failure);
            Assert.IsTrue(failure.IsSystemMessage);
        }
Esempio n. 14
0
        public async Task TimeSent_should_not_be_casted()
        {
            FailedMessageView failure = null;

            var sentTime = DateTime.Parse("2014-11-11T02:26:58.000462Z");

            await Define <MyContext>(ctx => { ctx.TimeSent = sentTime; })
            .WithEndpoint <Failing>()
            .Done(async c =>
            {
                var result = await this.TryGet <FailedMessageView>($"/api/errors/last/{c.UniqueMessageId}");
                failure    = result;
                return(c.UniqueMessageId != null & result);
            })
            .Run();

            Assert.IsNotNull(failure);
            Assert.AreEqual(sentTime, failure.TimeSent);
        }
Esempio n. 15
0
        public async Task Should_be_listed_in_the_error_list()
        {
            FailedMessageView failure = null;

            var context = await Define <MyContext>()
                          .WithEndpoint <Receiver>(b => b.When(bus => bus.SendLocal(new MyMessage())).DoNotFailOnErrorMessages())
                          .Done(async c =>
            {
                var result = await this.TryGetSingle <FailedMessageView>("/api/errors", r => r.MessageId == c.MessageId);
                failure    = result;
                return(result);
            })
                          .Run();

            // The message Ids may contain a \ if they are from older versions.
            Assert.AreEqual(context.MessageId, failure.MessageId.Replace(@"\", "-"), "The returned message should match the processed one");
            Assert.AreEqual(FailedMessageStatus.Unresolved, failure.Status, "Status of new messages should be failed");
            Assert.AreEqual(1, failure.NumberOfProcessingAttempts, "One attempt should be stored");
        }
        public void Should_set_the_IsSystemMessage_when_control_message_header_is_null()
        {
            var context = new SystemMessageTestContext
            {
                MessageId                   = Guid.NewGuid().ToString(),
                EnclosedMessageType         = "NServiceBus.Scheduling.Messages.ScheduledTask",
                IncludeControlMessageHeader = true, // If hte control message header is present, then its a system message
                ControlMessageHeaderValue   = null
            };

            FailedMessageView failure = null;

            Scenario.Define(context)
            .WithEndpoint <ManagementEndpoint>(c => c.AppConfig(PathToAppConfig))
            .WithEndpoint <ServerEndpoint>()
            .Done(c => TryGetSingle("/api/errors", out failure, r => r.MessageId == c.MessageId))
            .Run();
            Assert.IsNotNull(failure);
            Assert.IsTrue(failure.IsSystemMessage);
        }
Esempio n. 17
0
        public async Task Should_be_listed_in_the_error_list_when_processing_endpoint_header_is_present()
        {
            FailedMessageView failure = null;

            await Define <MyContext>(ctx =>
            {
                ctx.MessageId = Guid.NewGuid().ToString();
                ctx.IncludeProcessingEndpointHeader = true;
            })
            .WithEndpoint <SendOnlyEndpoint>()
            .Done(async c =>
            {
                var result = await this.TryGetSingle <FailedMessageView>("/api/errors", r => r.MessageId == c.MessageId);
                failure    = result;
                return(result);
            })
            .Run();

            Assert.IsNotNull(failure);
            Assert.IsTrue(failure.ReceivingEndpoint.Name.Contains("SomeEndpoint"), $"The sending endpoint should be SomeEndpoint and not {failure.ReceivingEndpoint.Name}");
        }
Esempio n. 18
0
        public async Task Should_set_the_IsSystemMessage_when_message_type_is_a_scheduled_task()
        {
            FailedMessageView failure = null;

            await Define <SystemMessageTestContext>(ctx =>
            {
                ctx.MessageId                   = Guid.NewGuid().ToString();
                ctx.EnclosedMessageType         = "NServiceBus.Scheduling.Messages.ScheduledTask";
                ctx.IncludeControlMessageHeader = false;
            })
            .WithEndpoint <ServerEndpoint>()
            .Done(async c =>
            {
                var result = await this.TryGetSingle <FailedMessageView>("/api/errors", r => r.MessageId == c.MessageId);
                failure    = result;
                return(result);
            })
            .Run();

            Assert.IsNotNull(failure);
            Assert.IsTrue(failure.IsSystemMessage);
        }
Esempio n. 19
0
        public async Task Should_set_the_IsSystemMessage_when_message_type_is_not_a_scheduled_task()
        {
            FailedMessageView failure = null;

            await Define <SystemMessageTestContext>(ctx =>
            {
                ctx.MessageId                   = Guid.NewGuid().ToString();
                ctx.EnclosedMessageType         = "SendOnlyError.SendSomeCommand, TestSendOnlyError, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null";
                ctx.IncludeControlMessageHeader = false;
            })
            .WithEndpoint <ServerEndpoint>()
            .Done(async c =>
            {
                var result = await this.TryGetSingle <FailedMessageView>("/api/errors", r => r.MessageId == c.MessageId);
                failure    = result;
                return(result);
            })
            .Run();

            Assert.IsNotNull(failure);
            Assert.IsFalse(failure.IsSystemMessage);
        }
Esempio n. 20
0
        public async Task Should_set_the_IsSystemMessage_for_integration_scenario()
        {
            FailedMessageView failure = null;

            await Define <SystemMessageTestContext>(ctx =>
            {
                ctx.MessageId                   = Guid.NewGuid().ToString();
                ctx.EnclosedMessageType         = null;
                ctx.IncludeControlMessageHeader = false;
            })
            .WithEndpoint <ServerEndpoint>()
            .Done(async c =>
            {
                var result = await this.TryGetSingle <FailedMessageView>("/api/errors", r => r.MessageId == c.MessageId);
                failure    = result;
                return(result);
            })
            .Run();

            Assert.IsNotNull(failure);
            Assert.IsFalse(failure.IsSystemMessage);
        }