Skip to content

Commit 51d9c09

Browse files
Merge pull request #89 from TransactionProcessing/bug/#86_lastsettlement_failure
Bug/#86 lastsettlement failure
2 parents e8e1ffb + 3cd3212 commit 51d9c09

File tree

2 files changed

+41
-9
lines changed

2 files changed

+41
-9
lines changed

EstateReportingAPI.IntegrationTests/FactSettlementsControllerTests.cs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,35 @@ public async Task FactSettlementsController_LastSettlement_SettlementReturned(Cl
233233
lastSettlement.SalesValue.ShouldBe(completeTotalsList.Sum(c => c.settledTransactions));
234234
}
235235

236+
[Theory]
237+
[InlineData(ClientType.Api)]
238+
[InlineData(ClientType.Direct)]
239+
public async Task FactSettlementsController_LastSettlement_NoSettlementRecords_SettlementReturned(ClientType clientType)
240+
{
241+
EstateManagementGenericContext context = new EstateManagementSqlServerContext(GetLocalConnectionString($"EstateReportingReadModel{TestId.ToString()}"));
242+
243+
DatabaseHelper helper = new DatabaseHelper(context);
244+
245+
await helper.RunSettlementSummaryProcessing(DateTime.Now.AddDays(-1));
246+
247+
Func<Task<LastSettlement>> asyncFunction = async () =>
248+
{
249+
LastSettlement result = clientType switch
250+
{
251+
ClientType.Api => await ApiClient.GetLastSettlement(string.Empty, Guid.NewGuid(), CancellationToken.None),
252+
_ => await CreateAndSendHttpRequestMessage<LastSettlement>($"api/facts/settlements/lastsettlement", CancellationToken.None)
253+
};
254+
return result;
255+
};
256+
257+
LastSettlement lastSettlement = await ExecuteAsyncFunction(asyncFunction);
258+
259+
lastSettlement.ShouldNotBeNull();
260+
lastSettlement.FeesValue.ShouldBe(0);
261+
lastSettlement.SalesCount.ShouldBe(0);
262+
lastSettlement.SalesValue.ShouldBe(0);
263+
}
264+
236265

237266
[Theory(Skip = "To be fixed")]
238267
[InlineData(ClientType.Api)]

EstateReportingAPI/Controllers/FactSettlementController.cs

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -59,17 +59,20 @@ public async Task<IActionResult> TodaysSettlement([FromHeader] Guid estateId, [F
5959

6060
[HttpGet]
6161
[Route("lastsettlement")]
62-
public async Task<IActionResult> LastSettlement([FromHeader] Guid estateId, CancellationToken cancellationToken)
63-
{
62+
public async Task<IActionResult> LastSettlement([FromHeader] Guid estateId,
63+
CancellationToken cancellationToken) {
6464
LastSettlement model = await this.ReportingManager.GetLastSettlement(estateId, cancellationToken);
6565

66-
LastSettlement response = new LastSettlement()
67-
{
68-
SalesCount = model.SalesCount,
69-
FeesValue = model.FeesValue,
70-
SalesValue = model.SalesValue,
71-
SettlementDate = model.SettlementDate,
72-
};
66+
if (model == null) {
67+
return this.Ok(new LastSettlement());
68+
}
69+
70+
LastSettlement response = new LastSettlement() {
71+
SalesCount = model.SalesCount,
72+
FeesValue = model.FeesValue,
73+
SalesValue = model.SalesValue,
74+
SettlementDate = model.SettlementDate,
75+
};
7376

7477
return this.Ok(response);
7578
}

0 commit comments

Comments
 (0)