11namespace ServiceControl . AcceptanceTests . Recoverability . ExternalIntegration
22{
3+ using System . Collections . Generic ;
34 using System . Linq ;
45 using System . Threading . Tasks ;
56 using AcceptanceTesting ;
@@ -119,12 +120,16 @@ public async Task Should_publish_notification()
119120
120121 Assert . Multiple ( ( ) =>
121122 {
122- Assert . That ( context . FirstMessageFailedFailedMessageId , Is . EqualTo ( context . OriginalMessageFailureId ) ) ;
123+ Assert . That ( context . FailedMessageFailedMessageIds . Count , Is . EqualTo ( 2 ) ) ;
124+ Assert . That ( context . FailedMessageFailedMessageIds , Is . Unique ) ;
125+ Assert . That ( context . FailedMessageFailedMessageIds , Has . Some . EqualTo ( context . OriginalMessageFailureId ) ) ;
123126 Assert . That ( context . EditedMessageEditOf1 , Is . EqualTo ( context . OriginalMessageFailureId ) ) ;
124- Assert . That ( context . SecondMessageFailedEditOf , Is . EqualTo ( context . OriginalMessageFailureId ) ) ;
125- Assert . That ( context . FirstRetryFailedMessageId , Is . EqualTo ( context . OriginalMessageFailureId ) ) ;
127+ Assert . That ( context . FailedMessageFailedMessageIds , Has . Some . EqualTo ( context . OriginalMessageFailureId ) ) ;
128+ Assert . That ( context . RetryFailedMessageIds . Count , Is . EqualTo ( 2 ) ) ;
129+ Assert . That ( context . RetryFailedMessageIds , Is . Unique ) ;
130+ Assert . That ( context . RetryFailedMessageIds , Has . Some . EqualTo ( context . OriginalMessageFailureId ) ) ;
126131 Assert . That ( context . EditedMessageEditOf2 , Is . EqualTo ( context . SecondMessageFailureId ) ) ;
127- Assert . That ( context . SecondRetryFailedMessageId , Is . EqualTo ( context . SecondMessageFailureId ) ) ;
132+ Assert . That ( context . RetryFailedMessageIds , Has . Some . EqualTo ( context . SecondMessageFailureId ) ) ;
128133 } ) ;
129134 }
130135
@@ -142,11 +147,9 @@ public class EditMessageResolutionContext : ScenarioContext
142147 public string EditedMessageEditOf2 { get ; set ; }
143148 public string EditedMessageEditOf1 { get ; set ; }
144149 public bool ExternalProcessorSubscribed { get ; set ; }
145- public string FirstMessageFailedFailedMessageId { get ; set ; }
146- public string SecondMessageFailedEditOf { get ; set ; }
147- public string FirstRetryFailedMessageId { get ; set ; }
148- public string SecondRetryFailedMessageId { get ; set ; }
149150 public bool EditAndRetryHandled { get ; set ; }
151+ public List < string > RetryFailedMessageIds { get ; } = [ ] ;
152+ public List < string > FailedMessageFailedMessageIds { get ; } = [ ] ;
150153 }
151154
152155 public class MessageReceiver : EndpointConfigurationBuilder
@@ -179,27 +182,20 @@ public Task Handle(EditResolutionMessage message, IMessageHandlerContext context
179182
180183 public Task Handle ( MessageFailed message , IMessageHandlerContext context )
181184 {
182- if ( testContext . FirstMessageFailedFailedMessageId == null )
185+ testContext . FailedMessageFailedMessageIds . Add ( message . FailedMessageId ) ;
186+ if ( testContext . FailedMessageFailedMessageIds . Count == 2 )
183187 {
184- testContext . FirstMessageFailedFailedMessageId = message . FailedMessageId ;
185- }
186- else
187- {
188- testContext . SecondMessageFailedEditOf = message . MessageDetails . Headers [ "ServiceControl.EditOf" ] ;
189188 testContext . MessageResolved = true ;
190189 }
191190 return Task . CompletedTask ;
192191 }
193192
194193 public Task Handle ( MessageEditedAndRetried message , IMessageHandlerContext context )
195194 {
196- if ( testContext . FirstRetryFailedMessageId == null )
197- {
198- testContext . FirstRetryFailedMessageId = message . FailedMessageId ;
199- }
200- else
195+
196+ testContext . RetryFailedMessageIds . Add ( message . FailedMessageId ) ;
197+ if ( testContext . RetryFailedMessageIds . Count == 2 )
201198 {
202- testContext . SecondRetryFailedMessageId = message . FailedMessageId ;
203199 testContext . EditAndRetryHandled = true ;
204200 }
205201 return Task . CompletedTask ;
0 commit comments