Skip to content

Commit 99db468

Browse files
author
Jani Giannoudis
committed
split PayrunTestRunner into ImportAsync and TestAsync — separate import from test phase
1 parent 2dd468c commit 99db468

3 files changed

Lines changed: 43 additions & 29 deletions

File tree

Client.Test/PayrollEngine.Client.Test.xml

Lines changed: 11 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Client.Test/Payrun/PayrunTestRunner.cs

Lines changed: 30 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -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)

Client.Test/Payrun/PayrunTestSettings.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ public class PayrunTestSettings
2121
public string Owner { get; set; }
2222

2323
/// <summary>
24-
/// Result retry delay in milliseconds (default: 1000 ms)
24+
/// Result retry delay in milliseconds (default: 50 ms)
2525
/// </summary>
26-
public int ResultRetryDelay { get; set; } = 1000;
26+
public int ResultRetryDelay { get; set; } = 50;
2727

2828
/// <summary>
2929
/// Result retry count (default: 50)

0 commit comments

Comments
 (0)