1414 * limitations under the License.
1515 */
1616
17+ using Microsoft . AspNetCore . Mvc . Testing ;
1718using Microsoft . Extensions . Configuration ;
18- using Microsoft . Extensions . Hosting ;
1919using Monai . Deploy . WorkflowManager . TaskManager . IntegrationTests . POCO ;
2020using Monai . Deploy . WorkflowManager . TaskManager . IntegrationTests . Support ;
2121using Polly ;
@@ -42,12 +42,13 @@ public Hooks(IObjectContainer objectContainer)
4242 private static RabbitPublisher ? TaskCallbackPublisher { get ; set ; }
4343 private static RabbitConsumer ? TaskUpdateConsumer { get ; set ; }
4444 public static RabbitConsumer ? ClinicalReviewConsumer { get ; private set ; }
45+ public static RabbitConsumer ? EmailConsumer { get ; private set ; }
4546 private static MinioClientUtil ? MinioClient { get ; set ; }
4647 private static MongoClientUtil ? MongoClient { get ; set ; }
4748 public static AsyncRetryPolicy RetryPolicy { get ; private set ; }
4849 private IObjectContainer ObjectContainer { get ; set ; }
49- private static IHost ? Host { get ; set ; }
5050 private static HttpClient ? HttpClient { get ; set ; }
51+ private static WebApplicationFactory < Program > ? WebApplicationFactory { get ; set ; }
5152
5253 /// <summary>
5354 /// Runs before all tests to create static implementions of Rabbit and Mongo clients as well as starting the WorkflowManager using WebApplicationFactory.
@@ -70,6 +71,7 @@ public static void Init()
7071 TestExecutionConfig . RabbitConfig . TaskCallbackQueue = "md.tasks.callback" ;
7172 TestExecutionConfig . RabbitConfig . TaskUpdateQueue = "md.tasks.update" ;
7273 TestExecutionConfig . RabbitConfig . ClinicalReviewQueue = "aide.clinical_review.request" ;
74+ TestExecutionConfig . RabbitConfig . EmailQueue = "aide.notification_email.request" ;
7375 TestExecutionConfig . RabbitConfig . TaskCancellationQueue = "md.tasks.cancellation" ;
7476
7577 TestExecutionConfig . MongoConfig . ConnectionString = config . GetValue < string > ( "WorkloadManagerDatabase:ConnectionString" ) ;
@@ -87,11 +89,12 @@ public static void Init()
8789
8890 RabbitConnectionFactory . DeleteAllQueues ( ) ;
8991
92+ WebApplicationFactory = WebAppFactory . GetWebApplicationFactory ( ) ;
93+ HttpClient = WebApplicationFactory ? . CreateClient ( ) ;
94+
9095 RetryPolicy = Policy . Handle < Exception > ( ) . WaitAndRetryAsync ( retryCount : 20 , sleepDurationProvider : _ => TimeSpan . FromMilliseconds ( 500 ) ) ;
9196 MongoClient = new MongoClientUtil ( ) ;
92- HttpClient = new HttpClient ( ) ;
9397 MinioClient = new MinioClientUtil ( ) ;
94- Host = TaskManagerStartup . StartTaskManager ( ) ;
9598
9699 RabbitConnectionFactory . SetRabbitConnection ( ) ;
97100 }
@@ -116,7 +119,7 @@ public static async Task CheckTaskManagerConsumersStarted()
116119 {
117120 await RetryPolicy . ExecuteAsync ( async ( ) =>
118121 {
119- var response = await TaskManagerStartup . GetQueueStatus ( HttpClient , TestExecutionConfig . RabbitConfig . VirtualHost , TestExecutionConfig . RabbitConfig . TaskDispatchQueue ) ;
122+ var response = await WebAppFactory . GetQueueStatus ( HttpClient , TestExecutionConfig . RabbitConfig . VirtualHost , TestExecutionConfig . RabbitConfig . TaskDispatchQueue ) ;
120123 var content = response . Content . ReadAsStringAsync ( ) . Result ;
121124
122125 if ( content . Contains ( "error" ) )
@@ -133,6 +136,13 @@ await RetryPolicy.ExecuteAsync(async () =>
133136 TaskCallbackPublisher = new RabbitPublisher ( TestExecutionConfig . RabbitConfig . Exchange , TestExecutionConfig . RabbitConfig . TaskCallbackQueue ) ;
134137 TaskUpdateConsumer = new RabbitConsumer ( TestExecutionConfig . RabbitConfig . Exchange , TestExecutionConfig . RabbitConfig . TaskUpdateQueue ) ;
135138 ClinicalReviewConsumer = new RabbitConsumer ( TestExecutionConfig . RabbitConfig . Exchange , TestExecutionConfig . RabbitConfig . ClinicalReviewQueue ) ;
139+ EmailConsumer = new RabbitConsumer ( TestExecutionConfig . RabbitConfig . Exchange , TestExecutionConfig . RabbitConfig . EmailQueue ) ;
140+ }
141+
142+ [ BeforeTestRun ( Order = 3 ) ]
143+ public static async Task CreateBucket ( )
144+ {
145+ await MinioClient . CreateBucket ( TestExecutionConfig . MinioConfig . Bucket ) ;
136146 }
137147
138148 /// <summary>
@@ -145,6 +155,7 @@ public void SetUp(ScenarioContext scenarioContext, ISpecFlowOutputHelper outputH
145155 ObjectContainer . RegisterInstanceAs ( TaskCallbackPublisher , "TaskCallbackPublisher" ) ;
146156 ObjectContainer . RegisterInstanceAs ( TaskUpdateConsumer , "TaskUpdateConsumer" ) ;
147157 ObjectContainer . RegisterInstanceAs ( ClinicalReviewConsumer , "ClinicalReviewConsumer" ) ;
158+ ObjectContainer . RegisterInstanceAs ( EmailConsumer , "EmailConsumer" ) ;
148159 ObjectContainer . RegisterInstanceAs ( MinioClient ) ;
149160 var dataHelper = new DataHelper ( ObjectContainer ) ;
150161 ObjectContainer . RegisterInstanceAs ( dataHelper ) ;
@@ -162,7 +173,7 @@ public void SetUp(ScenarioContext scenarioContext, ISpecFlowOutputHelper outputH
162173 public static void TearDownRabbit ( )
163174 {
164175 RabbitConnectionFactory . DeleteAllQueues ( ) ;
165- Host ? . StopAsync ( ) ;
176+ WebApplicationFactory ? . Dispose ( ) ;
166177 }
167178 }
168179}
0 commit comments