generated from mauroservienti/code-repo-template
-
Notifications
You must be signed in to change notification settings - Fork 2
/
TimeoutsRescheduleSnippets.cs
32 lines (30 loc) · 1.17 KB
/
TimeoutsRescheduleSnippets.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using System.Threading.Tasks;
using MyMessages.Messages;
using MyService;
using NServiceBus;
using NServiceBus.AcceptanceTesting;
using NServiceBus.DelayedDelivery;
using NServiceBus.IntegrationTesting;
namespace TimeoutsRescheduleSnippets
{
public class TimeoutsRescheduleSnippets
{
public async Task AReplyMessage_is_received_and_ASaga_is_started()
{
// begin-snippet: timeouts-reschedule
var context = await Scenario.Define<IntegrationScenarioContext>(ctx =>
{
ctx.RegisterTimeoutRescheduleRule<ASaga.MyTimeout>((msg, delay) =>
{
return new DoNotDeliverBefore(DateTime.UtcNow.AddSeconds(5));
});
})
.WithEndpoint<MyServiceEndpoint>(builder => builder.When(session => session.Send("MyService", new StartASaga() { AnIdentifier = Guid.NewGuid() })))
.Done(ctx => ctx.MessageWasProcessedBySaga<ASaga.MyTimeout, ASaga>() || ctx.HasFailedMessages())
.Run();
// end-snippet
}
class MyServiceEndpoint : EndpointConfigurationBuilder{}
}
}