Skip to content

Commit d3df951

Browse files
committed
Added tests
1 parent 8f1765b commit d3df951

File tree

2 files changed

+67
-1
lines changed

2 files changed

+67
-1
lines changed

OpenAPI/LearningHub.Nhs.OpenApi.Tests/Services/Services/ResourceServiceTests.cs

Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@ namespace LearningHub.Nhs.OpenApi.Tests.Services.Services
22
{
33
using System;
44
using System.Collections.Generic;
5+
using System.Linq;
56
using System.Net;
67
using System.Threading.Tasks;
78
using FizzWare.NBuilder;
89
using FluentAssertions;
10+
using LearningHub.Nhs.Models.Entities.Activity;
911
using LearningHub.Nhs.Models.Entities.Resource;
1012
using LearningHub.Nhs.Models.Enums;
1113
using LearningHub.Nhs.OpenApi.Models.Exceptions;
@@ -33,7 +35,14 @@ public ResourceServiceTests()
3335
this.resourceRepository = new Mock<IResourceRepository>();
3436
this.resourceService = new ResourceService(this.learningHubService.Object, this.resourceRepository.Object, new NullLogger<ResourceService>());
3537
}
36-
38+
private List<ResourceActivityDTO> ResourceActivityDTOList => new List<ResourceActivityDTO>()
39+
{
40+
new ResourceActivityDTO{ ResourceId = 1, ActivityStatusId = 5, MajorVersion = 5 },
41+
new ResourceActivityDTO{ ResourceId = 1, ActivityStatusId = 7, MajorVersion = 4 },
42+
new ResourceActivityDTO{ ResourceId = 1, ActivityStatusId = 3, MajorVersion = 3 },
43+
new ResourceActivityDTO{ ResourceId = 1, ActivityStatusId = 7, MajorVersion = 2 },
44+
new ResourceActivityDTO{ ResourceId = 1, ActivityStatusId = 3, MajorVersion = 1 },
45+
};
3746
private List<Resource> ResourceList => new List<Resource>()
3847
{
3948
ResourceTestHelper.CreateResourceWithDetails(id: 1, title: "title1", description: "description1", rating: 3m, resourceType: ResourceTypeEnum.Article),
@@ -332,5 +341,53 @@ public async Task ResourceServiceReturnsThatAnUnrestrictedCatalogueIsUnrestricte
332341
// Then
333342
x.Catalogue.IsRestricted.Should().BeFalse();
334343
}
344+
345+
[Fact]
346+
public async Task SingleResourceEndpointReturnsActivitySummaryWhenCurrentUserIdProvided()
347+
{
348+
// Given
349+
this.resourceRepository.Setup(rr => rr.GetResourceReferencesByOriginalResourceReferenceIds(new List<int>() { 1 }))
350+
.ReturnsAsync(this.ResourceReferenceList.GetRange(0, 1));
351+
352+
this.resourceRepository.Setup(rr => rr.GetResourceActivityPerResourceMajorVersion(new List<int>() { 1 }, new List<int>() { currentUserId }))
353+
.ReturnsAsync(this.ResourceActivityDTOList.ToList());
354+
355+
// When
356+
var x = await this.resourceService.GetResourceReferenceByOriginalId(1, currentUserId);
357+
358+
// Then
359+
x.UserSummaryActivityStatuses.Should().NotBeNull();
360+
x.UserSummaryActivityStatuses[0].MajorVersionId.Should().Be(5);
361+
x.UserSummaryActivityStatuses[1].MajorVersionId.Should().Be(4);
362+
x.UserSummaryActivityStatuses[2].MajorVersionId.Should().Be(3);
363+
x.UserSummaryActivityStatuses[3].MajorVersionId.Should().Be(2);
364+
x.UserSummaryActivityStatuses[4].MajorVersionId.Should().Be(1);
365+
366+
x.UserSummaryActivityStatuses[0].ActivityStatusDescription.Should().Be("Passed");
367+
x.UserSummaryActivityStatuses[1].ActivityStatusDescription.Should().Be("In progress");
368+
x.UserSummaryActivityStatuses[2].ActivityStatusDescription.Should().Be("Viewed");
369+
x.UserSummaryActivityStatuses[3].ActivityStatusDescription.Should().Be("In progress");
370+
x.UserSummaryActivityStatuses[4].ActivityStatusDescription.Should().Be("Viewed");
371+
372+
}
373+
374+
[Fact]
375+
public async Task SingleResourceEndpointReturnsEmptyActivitySummaryWhenNoCurrentUserIdProvided()
376+
{
377+
// Given
378+
this.resourceRepository.Setup(rr => rr.GetResourceReferencesByOriginalResourceReferenceIds(new List<int>() { 1 }))
379+
.ReturnsAsync(this.ResourceReferenceList.GetRange(0, 1));
380+
381+
// This should not be hit
382+
this.resourceRepository.Setup(rr => rr.GetResourceActivityPerResourceMajorVersion(new List<int>() { 1 }, new List<int>() { currentUserId }))
383+
.ReturnsAsync(this.ResourceActivityDTOList.ToList());
384+
385+
// When
386+
var x = await this.resourceService.GetResourceReferenceByOriginalId(1, null);
387+
388+
// Then
389+
x.UserSummaryActivityStatuses.Should().BeEmpty();
390+
391+
}
335392
}
336393
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
4+
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
5+
</PropertyGroup>
6+
<PropertyGroup>
7+
<ActiveDebugProfile>IIS Local</ActiveDebugProfile>
8+
</PropertyGroup>
9+
</Project>

0 commit comments

Comments
 (0)