77using IndicoV2 . IntegrationTests . Utils . DataHelpers ;
88using IndicoV2 . IntegrationTests . Utils . Configs ;
99using IndicoV2 . Reviews ;
10+ using IndicoV2 . Submissions . Models ;
1011using Newtonsoft . Json . Linq ;
1112using NUnit . Framework ;
1213using Unity ;
14+ using System . Text . Json ;
15+ using IndicoV2 . Submissions ;
16+ using System . Linq ;
17+ using System . Collections . Generic ;
1318
1419namespace IndicoV2 . IntegrationTests . Reviews
1520{
@@ -46,10 +51,10 @@ public async Task SetUp()
4651 }
4752
4853 [ Test ]
49- public async Task SubmitReviewAsync_ShouldSucceed ( )
54+ public async Task SubmitReviewAsyncV1Result_ShouldSucceed ( )
5055 {
5156 // Arrange
52- var submission = await _dataHelper . Submissions ( ) . GetAnyAsync ( _workflowId ) ;
57+ var submission = await _dataHelper . Submissions ( ) . Get ( _workflowId , resultsFileVersion : SubmissionResultsFileVersion . One ) ;
5358 var result = await _submissionResultAwaiter . WaitReady ( submission . Id ) ;
5459 var changes = ( JObject ) result [ "results" ] [ "document" ] [ "results" ] ;
5560
@@ -62,5 +67,37 @@ public async Task SubmitReviewAsync_ShouldSucceed()
6267 jobResult . Value < string > ( "submission_status" ) . Should ( ) . Be ( "pending_review" ) ;
6368 jobResult . Value < bool > ( "success" ) . Should ( ) . Be ( true ) ;
6469 }
70+
71+
72+ [ Test ]
73+ public async Task SubmitReviewAsyncV3Result_ShouldSucceed ( )
74+ {
75+ // Arrange
76+ var submission = await _dataHelper . Submissions ( ) . Get ( _workflowId , resultsFileVersion : SubmissionResultsFileVersion . Three ) ;
77+ var result = await _submissionResultAwaiter . WaitReady ( submission . Id ) ;
78+ submission = ( await _dataHelper . Submissions ( ) . ListAsync ( submissionIds : new List < int > ( ) { submission . Id } ) ) . First ( ) ;
79+ if ( submission . Status . ToString ( ) == "PENDING_AUTO_REVIEW" )
80+ {
81+ var changes = result [ "submission_results" ] ;
82+ foreach ( JObject change in changes )
83+ {
84+ change [ "model_results" ] = change [ "model_results" ] [ "ORIGINAL" ] ;
85+ change [ "component_results" ] = change [ "component_results" ] [ "ORIGINAL" ] ;
86+ }
87+ // Act
88+ var submitReviewJobId = await _reviewsClient . SubmitReviewAsync ( submission . Id , ( JArray ) changes ) ;
89+ var jobResult = await _jobAwaiter . WaitReadyAsync < JObject > ( submitReviewJobId , TimeSpan . FromSeconds ( 1 ) ) ;
90+
91+ // Assert
92+ jobResult . Should ( ) . NotBeNull ( ) ;
93+ jobResult . Value < string > ( "submission_status" ) . Should ( ) . Be ( "pending_review" ) ;
94+ jobResult . Value < bool > ( "success" ) . Should ( ) . Be ( true ) ;
95+ }
96+ else
97+ {
98+ // multi-file submissions are not enabled and submission status should default to complete
99+ submission . Status . ToString ( ) . Should ( ) . Be ( "COMPLETE" ) ;
100+ }
101+ }
65102 }
66103}
0 commit comments