static async Task ExecuteWhens(EndpointRunner endpoint, CancellationTokenSource cts) { var token = cts.Token; try { await endpoint.Whens(token).ConfigureAwait(false); } catch (Exception) { cts.Cancel(); Console.WriteLine($"Whens for endpoint {endpoint.Name()} failed to execute."); throw; } }
static async Task StartEndpoint(EndpointRunner endpoint, CancellationTokenSource cts) { var token = cts.Token; try { await endpoint.Start(token).ConfigureAwait(false); } catch (Exception) { cts.Cancel(); Console.WriteLine($"Endpoint {endpoint.Name()} failed to start."); throw; } }
static async Task <EndpointRunner[]> InitializeRunners(RunDescriptor runDescriptor, List <EndpointBehavior> endpointBehaviors) { var runnerInitializations = endpointBehaviors.Select(async endpointBehavior => { var endpointName = Conventions.EndpointNamingConvention(endpointBehavior.EndpointBuilderType); if (endpointName.Length > 77) { throw new Exception($"Endpoint name '{endpointName}' is larger than 77 characters and will cause issues with MSMQ queue names. Rename the test class or endpoint."); } var runner = new EndpointRunner(); try { await runner.Initialize(runDescriptor, endpointBehavior, endpointName).ConfigureAwait(false); } catch (Exception) { Console.WriteLine($"Endpoint {runner.Name()} failed to initialize"); throw; } return(runner); }); try { var x = await Task.WhenAll(runnerInitializations).ConfigureAwait(false); return(x); } catch (Exception e) { Console.WriteLine(e); throw; } }