Skip to content

Commit 653b562

Browse files
committed
chore: Moved MultiMapToHighNeeds function to its own Mapper class
1 parent e314a35 commit 653b562

File tree

5 files changed

+103
-87
lines changed

5 files changed

+103
-87
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
using Platform.Api.LocalAuthorityFinances.Features.HighNeeds.Models;
2+
3+
namespace Platform.Api.LocalAuthorityFinances.Features.HighNeeds;
4+
5+
public static class Mapper
6+
{
7+
public static LocalAuthority<Models.HighNeeds> MultiMapToHighNeeds(object[] objects)
8+
{
9+
var localAuthority = objects[0] as LocalAuthorityBase;
10+
var outturn = objects[1] as HighNeedsBase;
11+
var outturnHighNeedsAmount = objects[2] as HighNeedsAmount;
12+
var outturnTopFundingMaintained = objects[3] as TopFunding;
13+
var outturnTopFundingNonMaintained = objects[4] as TopFunding;
14+
var outturnPlaceFunding = objects[5] as PlaceFunding;
15+
var budget = objects[6] as HighNeedsBase;
16+
var budgetHighNeedsAmount = objects[7] as HighNeedsAmount;
17+
var budgetTopFundingMaintained = objects[8] as TopFunding;
18+
var budgetTopFundingNonMaintained = objects[9] as TopFunding;
19+
var budgetPlaceFunding = objects[10] as PlaceFunding;
20+
21+
return new LocalAuthority<Models.HighNeeds>
22+
{
23+
Code = localAuthority?.Code,
24+
Name = localAuthority?.Name,
25+
Outturn = new Models.HighNeeds
26+
{
27+
Total = outturn?.Total,
28+
HighNeedsAmount = outturnHighNeedsAmount,
29+
Maintained = outturnTopFundingMaintained,
30+
NonMaintained = outturnTopFundingNonMaintained,
31+
PlaceFunding = outturnPlaceFunding
32+
},
33+
Budget = new Models.HighNeeds
34+
{
35+
Total = budget?.Total,
36+
HighNeedsAmount = budgetHighNeedsAmount,
37+
Maintained = budgetTopFundingMaintained,
38+
NonMaintained = budgetTopFundingNonMaintained,
39+
PlaceFunding = budgetPlaceFunding
40+
}
41+
};
42+
}
43+
}

platform/src/apis/Platform.Api.LocalAuthorityFinances/Features/HighNeeds/Services/HighNeedsService.cs

+1-38
Original file line numberDiff line numberDiff line change
@@ -120,44 +120,7 @@ public class HighNeedsService(IDatabaseFactory dbFactory) : HighNeedsStubService
120120
var laBuilder = new LocalAuthorityCurrentFinancialQuery(dimension, fields)
121121
.WhereLaCodesIn(codes);
122122

123-
var results = await conn.QueryAsync(laBuilder, types, MultiMapToHighNeeds, splitOn);
123+
var results = await conn.QueryAsync(laBuilder, types, Mapper.MultiMapToHighNeeds, splitOn);
124124
return results.ToArray();
125125
}
126-
127-
internal static LocalAuthority<Models.HighNeeds> MultiMapToHighNeeds(object[] objects)
128-
{
129-
var localAuthority = objects[0] as LocalAuthorityBase;
130-
var outturn = objects[1] as HighNeedsBase;
131-
var outturnHighNeedsAmount = objects[2] as HighNeedsAmount;
132-
var outturnTopFundingMaintained = objects[3] as TopFunding;
133-
var outturnTopFundingNonMaintained = objects[4] as TopFunding;
134-
var outturnPlaceFunding = objects[5] as PlaceFunding;
135-
var budget = objects[6] as HighNeedsBase;
136-
var budgetHighNeedsAmount = objects[7] as HighNeedsAmount;
137-
var budgetTopFundingMaintained = objects[8] as TopFunding;
138-
var budgetTopFundingNonMaintained = objects[9] as TopFunding;
139-
var budgetPlaceFunding = objects[10] as PlaceFunding;
140-
141-
return new LocalAuthority<Models.HighNeeds>
142-
{
143-
Code = localAuthority?.Code,
144-
Name = localAuthority?.Name,
145-
Outturn = new Models.HighNeeds
146-
{
147-
Total = outturn?.Total,
148-
HighNeedsAmount = outturnHighNeedsAmount,
149-
Maintained = outturnTopFundingMaintained,
150-
NonMaintained = outturnTopFundingNonMaintained,
151-
PlaceFunding = outturnPlaceFunding
152-
},
153-
Budget = new Models.HighNeeds
154-
{
155-
Total = budget?.Total,
156-
HighNeedsAmount = budgetHighNeedsAmount,
157-
Maintained = budgetTopFundingMaintained,
158-
NonMaintained = budgetTopFundingNonMaintained,
159-
PlaceFunding = budgetPlaceFunding
160-
}
161-
};
162-
}
163126
}

platform/src/apis/Platform.Api.LocalAuthorityFinances/Program.cs

-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
using System.Diagnostics.CodeAnalysis;
2-
using System.Runtime.CompilerServices;
32
using Microsoft.Azure.Functions.Worker.Extensions.OpenApi.Extensions;
43
using Microsoft.Extensions.Hosting;
54
using Platform.Api.LocalAuthorityFinances.Configuration;
65

7-
[assembly: InternalsVisibleTo("Platform.LocalAuthorityFinances.Tests")]
86
var hostBuilder = new HostBuilder()
97
.ConfigureFunctionsWorkerDefaults(Worker.Configure, Worker.Options)
108
.ConfigureServices(Services.Configure)

platform/tests/Platform.LocalAuthorityFinances.Tests/HighNeeds/Services/WhenHighNeedsServiceQueriesAsync.cs

-47
Original file line numberDiff line numberDiff line change
@@ -61,51 +61,4 @@ public async Task ShouldQueryAndMultiMapWhenGetWithValidDimension()
6161
Assert.Equal(expectedTypes, actualTypes);
6262
Assert.Equal(expectedSplitOn, actualSplitOn);
6363
}
64-
65-
[Fact]
66-
public void ShouldMapWhenMultiMapToHighNeeds()
67-
{
68-
var localAuthority = _fixture.Create<LocalAuthorityBase>();
69-
var outturn = _fixture.Create<HighNeedsBase>();
70-
var outturnHighNeedsAmount = _fixture.Create<HighNeedsAmount>();
71-
var outturnTopFundingMaintained = _fixture.Create<TopFunding>();
72-
var outturnTopFundingNonMaintained = _fixture.Create<TopFunding>();
73-
var outturnPlaceFunding = _fixture.Create<PlaceFunding>();
74-
var budget = _fixture.Create<HighNeedsBase>();
75-
var budgetHighNeedsAmount = _fixture.Create<HighNeedsAmount>();
76-
var budgetTopFundingMaintained = _fixture.Create<TopFunding>();
77-
var budgetTopFundingNonMaintained = _fixture.Create<TopFunding>();
78-
var budgetPlaceFunding = _fixture.Create<PlaceFunding>();
79-
object[] objects =
80-
[
81-
localAuthority,
82-
outturn,
83-
outturnHighNeedsAmount,
84-
outturnTopFundingMaintained,
85-
outturnTopFundingNonMaintained,
86-
outturnPlaceFunding,
87-
budget,
88-
budgetHighNeedsAmount,
89-
budgetTopFundingMaintained,
90-
budgetTopFundingNonMaintained,
91-
budgetPlaceFunding
92-
];
93-
94-
// act
95-
var actual = HighNeedsService.MultiMapToHighNeeds(objects);
96-
97-
// assert
98-
Assert.Equal(localAuthority.Code, actual.Code);
99-
Assert.Equal(localAuthority.Name, actual.Name);
100-
Assert.Equal(outturn.Total, actual.Outturn?.Total);
101-
Assert.Equal(outturnHighNeedsAmount, actual.Outturn?.HighNeedsAmount);
102-
Assert.Equal(outturnTopFundingMaintained, actual.Outturn?.Maintained);
103-
Assert.Equal(outturnTopFundingNonMaintained, actual.Outturn?.NonMaintained);
104-
Assert.Equal(outturnPlaceFunding, actual.Outturn?.PlaceFunding);
105-
Assert.Equal(budget.Total, actual.Budget?.Total);
106-
Assert.Equal(budgetHighNeedsAmount, actual.Budget?.HighNeedsAmount);
107-
Assert.Equal(budgetTopFundingMaintained, actual.Budget?.Maintained);
108-
Assert.Equal(budgetTopFundingNonMaintained, actual.Budget?.NonMaintained);
109-
Assert.Equal(budgetPlaceFunding, actual.Budget?.PlaceFunding);
110-
}
11164
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
using AutoFixture;
2+
using Platform.Api.LocalAuthorityFinances.Features.HighNeeds;
3+
using Platform.Api.LocalAuthorityFinances.Features.HighNeeds.Models;
4+
using Xunit;
5+
6+
namespace Platform.LocalAuthorityFinances.Tests.HighNeeds;
7+
8+
public class WhenHighNeedsMapperMaps
9+
{
10+
private readonly Fixture _fixture = new();
11+
12+
[Fact]
13+
public void ShouldMapWhenMultiMapToHighNeeds()
14+
{
15+
// arrange
16+
var localAuthority = _fixture.Create<LocalAuthorityBase>();
17+
var outturn = _fixture.Create<HighNeedsBase>();
18+
var outturnHighNeedsAmount = _fixture.Create<HighNeedsAmount>();
19+
var outturnTopFundingMaintained = _fixture.Create<TopFunding>();
20+
var outturnTopFundingNonMaintained = _fixture.Create<TopFunding>();
21+
var outturnPlaceFunding = _fixture.Create<PlaceFunding>();
22+
var budget = _fixture.Create<HighNeedsBase>();
23+
var budgetHighNeedsAmount = _fixture.Create<HighNeedsAmount>();
24+
var budgetTopFundingMaintained = _fixture.Create<TopFunding>();
25+
var budgetTopFundingNonMaintained = _fixture.Create<TopFunding>();
26+
var budgetPlaceFunding = _fixture.Create<PlaceFunding>();
27+
object[] objects =
28+
[
29+
localAuthority,
30+
outturn,
31+
outturnHighNeedsAmount,
32+
outturnTopFundingMaintained,
33+
outturnTopFundingNonMaintained,
34+
outturnPlaceFunding,
35+
budget,
36+
budgetHighNeedsAmount,
37+
budgetTopFundingMaintained,
38+
budgetTopFundingNonMaintained,
39+
budgetPlaceFunding
40+
];
41+
42+
// act
43+
var actual = Mapper.MultiMapToHighNeeds(objects);
44+
45+
// assert
46+
Assert.Equal(localAuthority.Code, actual.Code);
47+
Assert.Equal(localAuthority.Name, actual.Name);
48+
Assert.Equal(outturn.Total, actual.Outturn?.Total);
49+
Assert.Equal(outturnHighNeedsAmount, actual.Outturn?.HighNeedsAmount);
50+
Assert.Equal(outturnTopFundingMaintained, actual.Outturn?.Maintained);
51+
Assert.Equal(outturnTopFundingNonMaintained, actual.Outturn?.NonMaintained);
52+
Assert.Equal(outturnPlaceFunding, actual.Outturn?.PlaceFunding);
53+
Assert.Equal(budget.Total, actual.Budget?.Total);
54+
Assert.Equal(budgetHighNeedsAmount, actual.Budget?.HighNeedsAmount);
55+
Assert.Equal(budgetTopFundingMaintained, actual.Budget?.Maintained);
56+
Assert.Equal(budgetTopFundingNonMaintained, actual.Budget?.NonMaintained);
57+
Assert.Equal(budgetPlaceFunding, actual.Budget?.PlaceFunding);
58+
}
59+
}

0 commit comments

Comments
 (0)