Skip to content

Commit a6ccbda

Browse files
committed
ECV-551 resolve issue with moving function into api -removes service bus and run uses BackgroundService
1 parent 256a53e commit a6ccbda

77 files changed

Lines changed: 751 additions & 1750 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/EPR.Calculator.API.UnitTests/Controllers/BaseControllerTest.cs

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
namespace EPR.Calculator.API.UnitTests.Controllers
44
{
5-
using Azure.Messaging.ServiceBus;
65
using EPR.Calculator.API.Controllers;
76
using EPR.Calculator.API.Data.DataModels;
87
using EPR.Calculator.API.Data.Models;
@@ -39,21 +38,14 @@ public BaseControllerTest()
3938

4039
this.Wrapper = new Mock<IOrgAndPomWrapper>().Object;
4140
var mockStorageService = new Mock<IStorageService>();
42-
var mockServiceBusService = new Mock<IServiceBusService>();
43-
var mockFactory = new Mock<IAzureClientFactory<ServiceBusClient>>();
44-
var mockClient = new Mock<ServiceBusClient>();
45-
var mockServiceBusSender = new Mock<ServiceBusSender>();
41+
var mockBackgroundTaskQueue = new Mock<IBackgroundTaskQueue>();
4642
var mockValidator = new Mock<ICalcRelativeYearRequestDtoDataValidator>();
47-
mockServiceBusSender.Setup(msbs => msbs.SendMessageAsync(It.IsAny<ServiceBusMessage>(), default)).Returns(Task.CompletedTask);
48-
mockClient.Setup(mc => mc.CreateSender(It.IsAny<string>())).Returns(mockServiceBusSender.Object);
49-
50-
mockFactory.Setup(m => m.CreateClient(It.IsAny<string>())).Returns(mockClient.Object);
5143

5244
this.CalculatorController = new CalculatorController(
5345
this.DbContext,
5446
ConfigurationItems.GetConfigurationValues(),
5547
mockStorageService.Object,
56-
mockServiceBusService.Object,
48+
mockBackgroundTaskQueue.Object,
5749
mockValidator.Object,
5850
Mock.Of<IAvailableClassificationsService>(),
5951
Mock.Of<ICalculationRunService>(),

src/EPR.Calculator.API.UnitTests/Controllers/BillingFileNewControllerTests.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,8 @@
66
using EPR.Calculator.API.Enums;
77
using EPR.Calculator.API.Services;
88
using EPR.Calculator.API.Services.Abstractions;
9-
using FluentAssertions;
10-
using FluentAssertions.Execution;
119
using Microsoft.AspNetCore.Http;
1210
using Microsoft.AspNetCore.Mvc;
13-
using Microsoft.Azure.Amqp.Transaction;
14-
using Microsoft.VisualStudio.TestTools.UnitTesting;
15-
using Moq;
1611

1712
namespace EPR.Calculator.API.UnitTests.Controllers
1813
{

src/EPR.Calculator.API.UnitTests/Controllers/CalculatorControllerTests.cs

Lines changed: 4 additions & 145 deletions
Original file line numberDiff line numberDiff line change
@@ -193,147 +193,6 @@ public async Task Create_Calculator_Run_Return_404_If_No_Lapcap_Data()
193193
Assert.AreEqual("Lapcap data not available for the relative year 2027.", actionResult.Value);
194194
}
195195

196-
[TestMethod]
197-
public async Task Create_Calculator_Run_Return_500_If_ConnectionString_Configuration_Is_Empty()
198-
{
199-
var createCalculatorRunDto = new CreateCalculatorRunDto
200-
{
201-
CalculatorRunName = "Test calculator run",
202-
RelativeYear = new RelativeYear(2024),
203-
};
204-
205-
DbContext.DefaultParameterSettings.Add(new DefaultParameterSettingMaster
206-
{
207-
Id = 1,
208-
RelativeYear = new RelativeYear(2024),
209-
CreatedBy = "Testuser",
210-
CreatedAt = DateTime.UtcNow,
211-
EffectiveFrom = DateTime.UtcNow,
212-
EffectiveTo = null,
213-
});
214-
DbContext.SaveChanges();
215-
216-
DbContext.LapcapDataMaster.Add(new LapcapDataMaster
217-
{
218-
Id = 1,
219-
RelativeYear = new RelativeYear(2024),
220-
CreatedBy = "Testuser",
221-
CreatedAt = DateTime.UtcNow,
222-
EffectiveFrom = DateTime.UtcNow,
223-
EffectiveTo = null,
224-
});
225-
DbContext.SaveChanges();
226-
227-
var configs = ConfigurationItems.GetConfigurationValues();
228-
configs.GetSection("ServiceBus").GetSection("ConnectionString").Value = string.Empty;
229-
230-
var mockServiceBusService = new Mock<IServiceBusService>();
231-
var mockStorageService = new Mock<IStorageService>();
232-
var mockValidator = new Mock<ICalcRelativeYearRequestDtoDataValidator>();
233-
234-
CalculatorController =
235-
new CalculatorController(
236-
DbContext,
237-
configs,
238-
mockStorageService.Object,
239-
mockServiceBusService.Object,
240-
mockValidator.Object,
241-
Mock.Of<IAvailableClassificationsService>(),
242-
Mock.Of<ICalculationRunService>(),
243-
Mock.Of<IBillingFileService>());
244-
245-
var identity = new GenericIdentity("TestUser");
246-
identity.AddClaim(new Claim("name", "TestUser"));
247-
var principal = new ClaimsPrincipal(identity);
248-
249-
var context = new DefaultHttpContext()
250-
{
251-
User = principal,
252-
};
253-
254-
CalculatorController.ControllerContext = new ControllerContext
255-
{
256-
HttpContext = context,
257-
};
258-
259-
var actionResult = await CalculatorController.Create(createCalculatorRunDto) as ObjectResult;
260-
var actionResultValue = actionResult?.Value as System.Configuration.ConfigurationErrorsException;
261-
262-
Assert.IsNotNull(actionResult);
263-
Assert.AreEqual(500, actionResult.StatusCode);
264-
Assert.AreEqual("Configuration item not found: ServiceBus__ConnectionString", actionResultValue?.Message);
265-
}
266-
267-
[TestMethod]
268-
public async Task Create_Calculator_Run_Return_500_If_QueueName_Configuration_Is_Empty()
269-
{
270-
var createCalculatorRunDto = new CreateCalculatorRunDto
271-
{
272-
CalculatorRunName = "Test calculator run",
273-
RelativeYear = new RelativeYear(2024),
274-
};
275-
276-
DbContext.DefaultParameterSettings.Add(new DefaultParameterSettingMaster
277-
{
278-
Id = 1,
279-
RelativeYear = new RelativeYear(2024),
280-
CreatedBy = "Testuser",
281-
CreatedAt = DateTime.UtcNow,
282-
EffectiveFrom = DateTime.UtcNow,
283-
EffectiveTo = null,
284-
});
285-
DbContext.SaveChanges();
286-
287-
DbContext.LapcapDataMaster.Add(new LapcapDataMaster
288-
{
289-
Id = 1,
290-
RelativeYear = new RelativeYear(2024),
291-
CreatedBy = "Testuser",
292-
CreatedAt = DateTime.UtcNow,
293-
EffectiveFrom = DateTime.UtcNow,
294-
EffectiveTo = null,
295-
});
296-
DbContext.SaveChanges();
297-
298-
var configs = ConfigurationItems.GetConfigurationValues();
299-
configs.GetSection("ServiceBus").GetSection("QueueName").Value = string.Empty;
300-
301-
var mockServiceBusService = new Mock<IServiceBusService>();
302-
var mockStorageService = new Mock<IStorageService>();
303-
var mockValidator = new Mock<ICalcRelativeYearRequestDtoDataValidator>();
304-
CalculatorController =
305-
new CalculatorController(
306-
DbContext,
307-
configs,
308-
mockStorageService.Object,
309-
mockServiceBusService.Object,
310-
mockValidator.Object,
311-
Mock.Of<IAvailableClassificationsService>(),
312-
Mock.Of<ICalculationRunService>(),
313-
Mock.Of<IBillingFileService>());
314-
315-
var identity = new GenericIdentity("TestUser");
316-
identity.AddClaim(new Claim("name", "TestUser"));
317-
var principal = new ClaimsPrincipal(identity);
318-
319-
var context = new DefaultHttpContext()
320-
{
321-
User = principal,
322-
};
323-
324-
CalculatorController.ControllerContext = new ControllerContext
325-
{
326-
HttpContext = context,
327-
};
328-
329-
var actionResult = await CalculatorController.Create(createCalculatorRunDto) as ObjectResult;
330-
var actionResultValue = actionResult?.Value as System.Configuration.ConfigurationErrorsException;
331-
332-
Assert.IsNotNull(actionResult);
333-
Assert.AreEqual(500, actionResult.StatusCode);
334-
Assert.AreEqual("Configuration item not found: ServiceBus__QueueName", actionResultValue?.Message);
335-
}
336-
337196
[TestMethod]
338197
public async Task Create_Calculator_Run_Return_400_If_RelativeYear_Invalid()
339198
{
@@ -508,7 +367,7 @@ public async Task ClassificationByRelativeYear_Returns_Options_For_Valid_Relativ
508367
mockDbContext.Object,
509368
ConfigurationItems.GetConfigurationValues(),
510369
Mock.Of<IStorageService>(),
511-
Mock.Of<IServiceBusService>(),
370+
Mock.Of<IBackgroundTaskQueue>(),
512371
mockValidator.Object,
513372
mockAvailableClassificationsService.Object,
514373
Mock.Of<ICalculationRunService>(),
@@ -555,7 +414,7 @@ public async Task ClassificationByRelativeYear_Returns_BadRequest_For_Invalid_Re
555414
DbContext,
556415
ConfigurationItems.GetConfigurationValues(),
557416
Mock.Of<IStorageService>(),
558-
Mock.Of<IServiceBusService>(),
417+
Mock.Of<IBackgroundTaskQueue>(),
559418
mockValidator.Object,
560419
Mock.Of<IAvailableClassificationsService>(),
561420
Mock.Of<ICalculationRunService>(),
@@ -593,7 +452,7 @@ public async Task ClassificationByRelativeYear_Returns_NotFound_When_No_Classifi
593452
DbContext,
594453
ConfigurationItems.GetConfigurationValues(),
595454
Mock.Of<IStorageService>(),
596-
Mock.Of<IServiceBusService>(),
455+
Mock.Of<IBackgroundTaskQueue>(),
597456
mockValidator.Object,
598457
mockAvailableClassificationsService.Object,
599458
Mock.Of<ICalculationRunService>(),
@@ -624,7 +483,7 @@ public async Task ClassificationByRelativeYear_Returns_InternalServerError_On_Ex
624483
DbContext,
625484
ConfigurationItems.GetConfigurationValues(),
626485
Mock.Of<IStorageService>(),
627-
Mock.Of<IServiceBusService>(),
486+
Mock.Of<IBackgroundTaskQueue>(),
628487
mockValidator.Object,
629488
Mock.Of<IAvailableClassificationsService>(),
630489
Mock.Of<ICalculationRunService>(),

src/EPR.Calculator.API.UnitTests/Controllers/DownloadResultFileTest.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ public class DownloadResultFileTest
2121
private readonly ApplicationDBContext context;
2222
private readonly Mock<IConfiguration> mockConfig;
2323
private readonly Mock<IStorageService> mockStorageService;
24-
private readonly Mock<IServiceBusService> mockServiceBusService;
24+
private readonly Mock<IBackgroundTaskQueue> mockBackgroundTaskQueue;
2525
private readonly Mock<ICalcRelativeYearRequestDtoDataValidator> mockValidator;
2626

2727
public DownloadResultFileTest()
2828
{
2929
this.mockStorageService = new Mock<IStorageService>();
30-
this.mockServiceBusService = new Mock<IServiceBusService>();
30+
this.mockBackgroundTaskQueue = new Mock<IBackgroundTaskQueue>();
3131
this.mockValidator = new Mock<ICalcRelativeYearRequestDtoDataValidator>();
3232
this.mockConfig = new Mock<IConfiguration>();
3333
var dbContextOptions = new DbContextOptionsBuilder<ApplicationDBContext>()
@@ -84,7 +84,7 @@ public async Task DownloadResultFile_ShouldReturnFileResult_WhenFileExists()
8484
this.context,
8585
this.mockConfig.Object,
8686
this.mockStorageService.Object,
87-
this.mockServiceBusService.Object,
87+
this.mockBackgroundTaskQueue.Object,
8888
this.mockValidator.Object,
8989
Mock.Of<IAvailableClassificationsService>(),
9090
Mock.Of<ICalculationRunService>(),
@@ -134,7 +134,7 @@ public async Task DownloadResultFile_ShouldReturnNotFound_WhenFileDoesNotExist()
134134
this.context,
135135
this.mockConfig.Object,
136136
this.mockStorageService.Object,
137-
this.mockServiceBusService.Object,
137+
this.mockBackgroundTaskQueue.Object,
138138
this.mockValidator.Object,
139139
Mock.Of<IAvailableClassificationsService>(),
140140
Mock.Of<ICalculationRunService>(),

src/EPR.Calculator.API.UnitTests/Controllers/GetCalculatorRunTest.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ public class GetCalculatorRunTest
2020
private readonly ApplicationDBContext context;
2121
private readonly Mock<IConfiguration> mockConfig;
2222
private readonly Mock<IStorageService> mockStorageService;
23-
private readonly Mock<IServiceBusService> mockServiceBusService;
23+
private readonly Mock<IBackgroundTaskQueue> mockBackgroundTaskQueue;
2424
private readonly Mock<ICalcRelativeYearRequestDtoDataValidator> mockValidator;
2525

2626
public GetCalculatorRunTest()
2727
{
2828
this.mockStorageService = new Mock<IStorageService>();
2929
this.mockConfig = new Mock<IConfiguration>();
30-
this.mockServiceBusService = new Mock<IServiceBusService>();
30+
this.mockBackgroundTaskQueue = new Mock<IBackgroundTaskQueue>();
3131
this.mockValidator = new Mock<ICalcRelativeYearRequestDtoDataValidator>();
3232
var dbContextOptions = new DbContextOptionsBuilder<ApplicationDBContext>()
3333
.UseInMemoryDatabase(databaseName: "PayCal")
@@ -71,7 +71,7 @@ public async Task GetCalculatorRunTest_Get_Valid_Run()
7171
this.context,
7272
this.mockConfig.Object,
7373
this.mockStorageService.Object,
74-
this.mockServiceBusService.Object,
74+
this.mockBackgroundTaskQueue.Object,
7575
this.mockValidator.Object,
7676
Mock.Of<IAvailableClassificationsService>(),
7777
Mock.Of<ICalculationRunService>(),
@@ -100,7 +100,7 @@ public async Task GetCalculatorRunTest_Get_Invalid_Run()
100100
this.context,
101101
this.mockConfig.Object,
102102
this.mockStorageService.Object,
103-
this.mockServiceBusService.Object,
103+
this.mockBackgroundTaskQueue.Object,
104104
this.mockValidator.Object,
105105
Mock.Of<IAvailableClassificationsService>(),
106106
Mock.Of<ICalculationRunService>(),

src/EPR.Calculator.API.UnitTests/Controllers/ProducerBillingFileControllerTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,16 @@ public class ProducerBillingFileControllerTests
2222

2323
private readonly Mock<IBillingFileService> billingFileServiceMock;
2424

25-
private readonly Mock<IServiceBusService> serviceBusServiceMock;
25+
private readonly Mock<IBackgroundTaskQueue> backgroundTaskQueueMock;
2626

2727
private readonly Mock<IConfiguration> configMock;
2828

2929
public ProducerBillingFileControllerTests()
3030
{
3131
this.billingFileServiceMock = new Mock<IBillingFileService>();
32-
this.serviceBusServiceMock = new Mock<IServiceBusService>();
32+
this.backgroundTaskQueueMock = new Mock<IBackgroundTaskQueue>();
3333
this.configMock = new Mock<IConfiguration>();
34-
this.producerFileControllerTest = new ProducerBillingFileController(this.billingFileServiceMock.Object, this.serviceBusServiceMock.Object, this.configMock.Object);
34+
this.producerFileControllerTest = new ProducerBillingFileController(this.billingFileServiceMock.Object, this.backgroundTaskQueueMock.Object);
3535

3636
// Mock User Claims
3737
// Set up authorisation.
@@ -54,7 +54,7 @@ public async Task ProducerBillingInstructions_ShouldReturn202Accepted_WhenUpdate
5454
this.billingFileServiceMock.Setup(s => s.StartGeneratingBillingFileAsync(It.IsAny<int>(), It.IsAny<string>(), It.IsAny<CancellationToken>()))
5555
.ReturnsAsync(new ServiceProcessResponseDto { StatusCode = (HttpStatusCode)httpStatusCode });
5656

57-
this.serviceBusServiceMock.Setup(s => s.SendMessage(It.IsAny<string>(), It.IsAny<BillingFileGenerationMessage>()));
57+
this.backgroundTaskQueueMock.Setup(s => s.QueueAsync(It.IsAny<BillingFileGenerationMessage>(), It.IsAny<CancellationToken>()));
5858
this.configMock.Setup(s => s.GetSection(It.IsAny<string>()).GetSection(It.IsAny<string>()).Value).Returns("test");
5959

6060
// Act

src/EPR.Calculator.API.UnitTests/Controllers/PutCalculatorRunStatusTest.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,14 @@ public class PutCalculatorRunStatusTest
2424
private readonly ApplicationDBContext context;
2525
private readonly Mock<IConfiguration> mockConfig;
2626
private readonly Mock<IStorageService> mockStorageService;
27-
private readonly Mock<IServiceBusService> mockServiceBusService;
27+
private readonly Mock<IBackgroundTaskQueue> mockBackgroundTaskQueue;
2828
private readonly Mock<ICalcRelativeYearRequestDtoDataValidator> mockValidator;
2929

3030
public PutCalculatorRunStatusTest()
3131
{
3232
this.mockStorageService = new Mock<IStorageService>();
3333
this.mockConfig = new Mock<IConfiguration>();
34-
this.mockServiceBusService = new Mock<IServiceBusService>();
34+
this.mockBackgroundTaskQueue = new Mock<IBackgroundTaskQueue>();
3535
this.mockValidator = new Mock<ICalcRelativeYearRequestDtoDataValidator>();
3636
var dbContextOptions = new DbContextOptionsBuilder<ApplicationDBContext>()
3737
.UseInMemoryDatabase(databaseName: "PayCal")
@@ -73,7 +73,7 @@ public void PutCalculatorRunStatusTest_422()
7373
this.context,
7474
this.mockConfig.Object,
7575
this.mockStorageService.Object,
76-
this.mockServiceBusService.Object,
76+
this.mockBackgroundTaskQueue.Object,
7777
this.mockValidator.Object,
7878
Mock.Of<IAvailableClassificationsService>(),
7979
Mock.Of<ICalculationRunService>(),
@@ -116,7 +116,7 @@ public void PutCalculatorRunStatusTest_Invalid_Classification_Id()
116116
this.context,
117117
this.mockConfig.Object,
118118
this.mockStorageService.Object,
119-
this.mockServiceBusService.Object,
119+
this.mockBackgroundTaskQueue.Object,
120120
this.mockValidator.Object,
121121
Mock.Of<IAvailableClassificationsService>(),
122122
Mock.Of<ICalculationRunService>(),
@@ -168,7 +168,7 @@ public void PutCalculatorRunStatusTest_Valid_Run_Classification_Id()
168168
this.context,
169169
this.mockConfig.Object,
170170
this.mockStorageService.Object,
171-
this.mockServiceBusService.Object,
171+
this.mockBackgroundTaskQueue.Object,
172172
this.mockValidator.Object,
173173
Mock.Of<IAvailableClassificationsService>(),
174174
Mock.Of<ICalculationRunService>(),
@@ -223,7 +223,7 @@ public async Task PutCalculatorRunStatusTest_Unable_To_Change_Classification_Id(
223223
this.context,
224224
this.mockConfig.Object,
225225
this.mockStorageService.Object,
226-
this.mockServiceBusService.Object,
226+
this.mockBackgroundTaskQueue.Object,
227227
this.mockValidator.Object,
228228
Mock.Of<IAvailableClassificationsService>(),
229229
Mock.Of<ICalculationRunService>(),

0 commit comments

Comments
 (0)