@@ -41,47 +41,45 @@ public PayrunTestRunner(PayrollHttpClient httpClient,
4141 RunMode = runMode ;
4242 }
4343
44- /// <summary>Start the test </summary>
45- /// <returns>A list of payrun job results</returns >
46- public override async Task < Dictionary < Tenant , List < PayrollTestResult > > > TestAllAsync ( Model . Exchange exchange )
44+ /// <summary>Import exchange data without running tests </summary>
45+ /// <param name="exchange">The test exchange</param >
46+ public async Task ImportAsync ( Model . Exchange exchange )
4747 {
4848 // apply owner
4949 ApplyOwner ( exchange , Settings . Owner ) ;
5050
51- var results = new Dictionary < Tenant , List < PayrollTestResult > > ( ) ;
52- try
51+ // validate tenants
52+ foreach ( var tenant in exchange . Tenants )
5353 {
54- // start cleanup
55- await CleanupTenants ( exchange , results ) ;
54+ ValidateTenant ( tenant ) ;
55+ }
5656
57- // validate tenants
58- foreach ( var tenant in exchange . Tenants )
59- {
60- // tenant validation: missing results
61- ValidateTenant ( tenant ) ;
62- }
57+ // cleanup existing tenants before import
58+ var emptyResults = new Dictionary < Tenant , List < PayrollTestResult > > ( ) ;
59+ await CleanupTenants ( exchange , emptyResults ) ;
6360
64- // validate tenants and regulation permissions
65- // create new tenant including all payrolls, payrun and payrun job
66- var import = new ExchangeImport ( HttpClient , exchange , ScriptParser , importMode : ImportMode ) ;
67- await import . ImportAsync ( ) ;
61+ // create new tenant including all payrolls, payrun and payrun job
62+ var import = new ExchangeImport ( HttpClient , exchange , ScriptParser , importMode : ImportMode ) ;
63+ await import . ImportAsync ( ) ;
64+ }
6865
66+ /// <summary>Run payrun tests on already-imported exchange data</summary>
67+ /// <param name="exchange">The test exchange (must have been imported via <see cref="ImportAsync"/>)</param>
68+ /// <returns>A list of payrun job results</returns>
69+ public async Task < Dictionary < Tenant , List < PayrollTestResult > > > TestAsync ( Model . Exchange exchange )
70+ {
71+ var results = new Dictionary < Tenant , List < PayrollTestResult > > ( ) ;
72+ try
73+ {
6974 // not test skip
7075 if ( RunMode == TestRunMode . RunTests )
7176 {
72- // test tenants
7377 foreach ( var tenant in exchange . Tenants )
7478 {
75- // no test
7679 if ( tenant . PayrollResults == null || ! tenant . PayrollResults . Any ( ) )
7780 {
7881 continue ;
7982 }
80-
81- // wait for completed payrun jobs
82- // await WaitForCompletedPayrunJobsAsync(tenant, JobResultMode.Single);
83-
84- // test results
8583 var payrunJobResult = await TestPayrunJobAsync ( tenant , JobResultMode . Single ) ;
8684 results . Add ( tenant , payrunJobResult . ToList ( ) ) ;
8785 }
@@ -91,10 +89,17 @@ public override async Task<Dictionary<Tenant, List<PayrollTestResult>>> TestAllA
9189 {
9290 await CleanupTenants ( exchange , results ) ;
9391 }
94-
9592 return results ;
9693 }
9794
95+ /// <summary>Start the test (import + test in one step)</summary>
96+ /// <returns>A list of payrun job results</returns>
97+ public override async Task < Dictionary < Tenant , List < PayrollTestResult > > > TestAllAsync ( Model . Exchange exchange )
98+ {
99+ await ImportAsync ( exchange ) ;
100+ return await TestAsync ( exchange ) ;
101+ }
102+
98103 /// <summary>Validate the tenant</summary>
99104 /// <param name="tenant">The tenant</param>
100105 protected virtual void ValidateTenant ( ExchangeTenant tenant )
0 commit comments