Skip to content

Commit f8cd514

Browse files
committed
fixup! EES-5800 Update DataGuidanceFileWriter.DoWrite to use Release
1 parent 2504722 commit f8cd514

File tree

4 files changed

+69
-102
lines changed

4 files changed

+69
-102
lines changed

src/GovUk.Education.ExploreEducationStatistics.Admin/Services/ReleaseFileService.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ public async Task<Either<ActionResult, Unit>> ZipFilesToStream(
202202
return await _contentDbContext.ReleaseVersions
203203
.Include(rv => rv.Release)
204204
.ThenInclude(r => r.Publication)
205-
.SingleOrNotFoundAsync(cancellationToken: cancellationToken)
205+
.SingleOrNotFoundAsync(rv => rv.Id == releaseVersionId, cancellationToken: cancellationToken)
206206
.OnSuccess(_userService.CheckCanViewReleaseVersion)
207207
.OnSuccessVoid(
208208
async releaseVersion =>

src/GovUk.Education.ExploreEducationStatistics.Content.Services.Tests/ReleaseFileServicePermissionTests.cs

+25-9
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,26 @@
33
using System.Threading.Tasks;
44
using GovUk.Education.ExploreEducationStatistics.Common.Services.Interfaces;
55
using GovUk.Education.ExploreEducationStatistics.Common.Services.Interfaces.Security;
6+
using GovUk.Education.ExploreEducationStatistics.Common.Tests.Fixtures;
67
using GovUk.Education.ExploreEducationStatistics.Common.Utils;
78
using GovUk.Education.ExploreEducationStatistics.Content.Model;
89
using GovUk.Education.ExploreEducationStatistics.Content.Model.Database;
10+
using GovUk.Education.ExploreEducationStatistics.Content.Model.Tests.Fixtures;
911
using GovUk.Education.ExploreEducationStatistics.Content.Security;
1012
using GovUk.Education.ExploreEducationStatistics.Content.Services.Interfaces;
1113
using Moq;
1214
using Xunit;
13-
using static GovUk.Education.ExploreEducationStatistics.Common.Services.CollectionUtils;
1415
using static GovUk.Education.ExploreEducationStatistics.Common.Tests.Utils.MockUtils;
1516
using static GovUk.Education.ExploreEducationStatistics.Common.Tests.Utils.PermissionTestUtils;
17+
using static GovUk.Education.ExploreEducationStatistics.Content.Model.Tests.Utils.ContentDbUtils;
1618
using File = GovUk.Education.ExploreEducationStatistics.Content.Model.File;
1719

1820
namespace GovUk.Education.ExploreEducationStatistics.Content.Services.Tests
1921
{
2022
public class ReleaseFileServicePermissionTests
2123
{
24+
private readonly DataFixture _dataFixture = new();
25+
2226
private static readonly ReleaseVersion ReleaseVersion = new()
2327
{
2428
Id = Guid.NewGuid()
@@ -41,7 +45,7 @@ await PolicyCheckBuilder<ContentSecurityPolicies>()
4145
var persistenceHelper =
4246
MockPersistenceHelper<ContentDbContext, ReleaseFile>(ReleaseFile);
4347

44-
var service = BuildReleaseFileService(
48+
var service = BuildService(
4549
userService: userService.Object,
4650
persistenceHelper: persistenceHelper.Object
4751
);
@@ -54,22 +58,34 @@ await PolicyCheckBuilder<ContentSecurityPolicies>()
5458
[Fact]
5559
public async Task ZipFilesToStream()
5660
{
61+
ReleaseVersion releaseVersion = _dataFixture.DefaultReleaseVersion()
62+
.WithRelease(_dataFixture.DefaultRelease()
63+
.WithPublication(_dataFixture.DefaultPublication()));
64+
5765
await PolicyCheckBuilder<ContentSecurityPolicies>()
58-
.SetupResourceCheckToFail(ReleaseVersion, ContentSecurityPolicies.CanViewSpecificRelease)
66+
.SetupResourceCheckToFailWithMatcher<ReleaseVersion>(rv => rv.Id == releaseVersion.Id,
67+
ContentSecurityPolicies.CanViewSpecificRelease)
5968
.AssertForbidden(
60-
userService =>
69+
async userService =>
6170
{
62-
var service = BuildReleaseFileService(userService: userService.Object);
63-
return service.ZipFilesToStream(
64-
releaseVersionId: ReleaseVersion.Id,
71+
await using var contextDbContext = InMemoryContentDbContext();
72+
contextDbContext.ReleaseVersions.Add(releaseVersion);
73+
await contextDbContext.SaveChangesAsync();
74+
75+
var service = BuildService(
76+
contentDbContext: contextDbContext,
77+
userService: userService.Object);
78+
79+
return await service.ZipFilesToStream(
80+
releaseVersionId: releaseVersion.Id,
6581
outputStream: Stream.Null,
66-
fileIds: ListOf(Guid.NewGuid())
82+
fileIds: [Guid.NewGuid()]
6783
);
6884
}
6985
);
7086
}
7187

72-
private ReleaseFileService BuildReleaseFileService(
88+
private ReleaseFileService BuildService(
7389
ContentDbContext? contentDbContext = null,
7490
IPersistenceHelper<ContentDbContext>? persistenceHelper = null,
7591
IPublicBlobStorageService? publicBlobStorageService = null,

src/GovUk.Education.ExploreEducationStatistics.Content.Services.Tests/ReleaseFileServiceTests.cs

+39-88
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@
1111
using GovUk.Education.ExploreEducationStatistics.Common.Services.Interfaces;
1212
using GovUk.Education.ExploreEducationStatistics.Common.Services.Interfaces.Security;
1313
using GovUk.Education.ExploreEducationStatistics.Common.Tests.Extensions;
14+
using GovUk.Education.ExploreEducationStatistics.Common.Tests.Fixtures;
1415
using GovUk.Education.ExploreEducationStatistics.Common.Tests.Utils;
1516
using GovUk.Education.ExploreEducationStatistics.Common.Utils;
1617
using GovUk.Education.ExploreEducationStatistics.Content.Model;
1718
using GovUk.Education.ExploreEducationStatistics.Content.Model.Database;
1819
using GovUk.Education.ExploreEducationStatistics.Content.Model.Extensions;
20+
using GovUk.Education.ExploreEducationStatistics.Content.Model.Tests.Fixtures;
1921
using GovUk.Education.ExploreEducationStatistics.Content.Services.Interfaces;
2022
using Moq;
2123
using Xunit;
@@ -29,6 +31,7 @@ namespace GovUk.Education.ExploreEducationStatistics.Content.Services.Tests
2931
{
3032
public class ReleaseFileServiceTests : IDisposable
3133
{
34+
private readonly DataFixture _dataFixture = new();
3235
private readonly List<string> _filePaths = new();
3336

3437
public void Dispose()
@@ -203,14 +206,9 @@ public async Task StreamFile_BlobDoesNotExist()
203206
[Fact]
204207
public async Task ZipFilesToStream_ValidFileTypes()
205208
{
206-
var releaseVersion = new ReleaseVersion
207-
{
208-
Publication = new Publication
209-
{
210-
Slug = "publication-slug"
211-
},
212-
Slug = "release-slug"
213-
};
209+
ReleaseVersion releaseVersion = _dataFixture.DefaultReleaseVersion()
210+
.WithRelease(_dataFixture.DefaultRelease()
211+
.WithPublication(_dataFixture.DefaultPublication()));
214212

215213
var releaseFile1 = new ReleaseFile
216214
{
@@ -309,14 +307,9 @@ public async Task ZipFilesToStream_ValidFileTypes()
309307
[Fact]
310308
public async Task ZipFilesToStream_DataGuidanceForMultipleDataFiles()
311309
{
312-
var releaseVersion = new ReleaseVersion
313-
{
314-
Publication = new Publication
315-
{
316-
Slug = "publication-slug"
317-
},
318-
Slug = "release-slug"
319-
};
310+
ReleaseVersion releaseVersion = _dataFixture.DefaultReleaseVersion()
311+
.WithRelease(_dataFixture.DefaultRelease()
312+
.WithPublication(_dataFixture.DefaultPublication()));
320313

321314
var releaseFile1 = new ReleaseFile
322315
{
@@ -415,14 +408,9 @@ public async Task ZipFilesToStream_DataGuidanceForMultipleDataFiles()
415408
[Fact]
416409
public async Task ZipFilesToStream_OrderedAlphabetically()
417410
{
418-
var releaseVersion = new ReleaseVersion
419-
{
420-
Publication = new Publication
421-
{
422-
Slug = "publication-slug"
423-
},
424-
Slug = "release-slug"
425-
};
411+
ReleaseVersion releaseVersion = _dataFixture.DefaultReleaseVersion()
412+
.WithRelease(_dataFixture.DefaultRelease()
413+
.WithPublication(_dataFixture.DefaultPublication()));
426414

427415
var releaseFile1 = new ReleaseFile
428416
{
@@ -519,14 +507,9 @@ public async Task ZipFilesToStream_OrderedAlphabetically()
519507
[Fact]
520508
public async Task ZipFilesToStream_FiltersInvalidFileTypes()
521509
{
522-
var releaseVersion = new ReleaseVersion
523-
{
524-
Publication = new Publication
525-
{
526-
Slug = "publication-slug"
527-
},
528-
Slug = "release-slug"
529-
};
510+
ReleaseVersion releaseVersion = _dataFixture.DefaultReleaseVersion()
511+
.WithRelease(_dataFixture.DefaultRelease()
512+
.WithPublication(_dataFixture.DefaultPublication()));
530513

531514
var releaseFile1 = new ReleaseFile
532515
{
@@ -612,14 +595,9 @@ public async Task ZipFilesToStream_FiltersInvalidFileTypes()
612595
[Fact]
613596
public async Task ZipFilesToStream_FiltersFilesNotInBlobStorage()
614597
{
615-
var releaseVersion = new ReleaseVersion
616-
{
617-
Publication = new Publication
618-
{
619-
Slug = "publication-slug"
620-
},
621-
Slug = "release-slug"
622-
};
598+
ReleaseVersion releaseVersion = _dataFixture.DefaultReleaseVersion()
599+
.WithRelease(_dataFixture.DefaultRelease()
600+
.WithPublication(_dataFixture.DefaultPublication()));
623601

624602
var releaseFile1 = new ReleaseFile
625603
{
@@ -689,14 +667,9 @@ public async Task ZipFilesToStream_FiltersFilesNotInBlobStorage()
689667
[Fact]
690668
public async Task ZipFilesToStream_FiltersFilesForOtherReleases()
691669
{
692-
var releaseVersion = new ReleaseVersion
693-
{
694-
Publication = new Publication
695-
{
696-
Slug = "publication-slug"
697-
},
698-
Slug = "release-slug"
699-
};
670+
ReleaseVersion releaseVersion = _dataFixture.DefaultReleaseVersion()
671+
.WithRelease(_dataFixture.DefaultRelease()
672+
.WithPublication(_dataFixture.DefaultPublication()));
700673

701674
// Files are for other releases
702675
var releaseFile1 = new ReleaseFile
@@ -763,14 +736,9 @@ public async Task ZipFilesToStream_FiltersFilesForOtherReleases()
763736
[Fact]
764737
public async Task ZipFilesToStream_Empty()
765738
{
766-
var releaseVersion = new ReleaseVersion
767-
{
768-
Publication = new Publication
769-
{
770-
Slug = "publication-slug"
771-
},
772-
Slug = "release-slug"
773-
};
739+
ReleaseVersion releaseVersion = _dataFixture.DefaultReleaseVersion()
740+
.WithRelease(_dataFixture.DefaultRelease()
741+
.WithPublication(_dataFixture.DefaultPublication()));
774742

775743
var contentDbContextId = Guid.NewGuid().ToString();
776744

@@ -808,14 +776,9 @@ public async Task ZipFilesToStream_Empty()
808776
[Fact]
809777
public async Task ZipFilesToStream_Cancelled()
810778
{
811-
var releaseVersion = new ReleaseVersion
812-
{
813-
Publication = new Publication
814-
{
815-
Slug = "publication-slug"
816-
},
817-
Slug = "release-slug"
818-
};
779+
ReleaseVersion releaseVersion = _dataFixture.DefaultReleaseVersion()
780+
.WithRelease(_dataFixture.DefaultRelease()
781+
.WithPublication(_dataFixture.DefaultPublication()));
819782

820783
var releaseFile1 = new ReleaseFile
821784
{
@@ -900,14 +863,10 @@ public async Task ZipFilesToStream_Cancelled()
900863
[Fact]
901864
public async Task ZipFilesToStream_NoFileIds_NoCachedAllFilesZip()
902865
{
903-
var releaseVersion = new ReleaseVersion
904-
{
905-
Publication = new Publication
906-
{
907-
Slug = "publication-slug"
908-
},
909-
Slug = "release-slug"
910-
};
866+
ReleaseVersion releaseVersion = _dataFixture.DefaultReleaseVersion()
867+
.WithRelease(_dataFixture.DefaultRelease()
868+
.WithPublication(_dataFixture.DefaultPublication()
869+
.WithSlug("publication-slug")));
911870

912871
var releaseFile1 = new ReleaseFile
913872
{
@@ -1024,14 +983,10 @@ public async Task ZipFilesToStream_NoFileIds_NoCachedAllFilesZip()
1024983
[Fact]
1025984
public async Task ZipFilesToStream_NoFileIds_CachedAllFilesZip()
1026985
{
1027-
var releaseVersion = new ReleaseVersion
1028-
{
1029-
Publication = new Publication
1030-
{
1031-
Slug = "publication-slug"
1032-
},
1033-
Slug = "release-slug"
1034-
};
986+
ReleaseVersion releaseVersion = _dataFixture.DefaultReleaseVersion()
987+
.WithRelease(_dataFixture.DefaultRelease()
988+
.WithPublication(_dataFixture.DefaultPublication()
989+
.WithSlug("publication-slug")));
1035990

1036991
var contentDbContextId = Guid.NewGuid().ToString();
1037992

@@ -1087,14 +1042,10 @@ public async Task ZipFilesToStream_NoFileIds_CachedAllFilesZip()
10871042
[Fact]
10881043
public async Task ZipFilesToStream_NoFileIds_StaleCachedAllFilesZip()
10891044
{
1090-
var releaseVersion = new ReleaseVersion
1091-
{
1092-
Publication = new Publication
1093-
{
1094-
Slug = "publication-slug"
1095-
},
1096-
Slug = "release-slug"
1097-
};
1045+
ReleaseVersion releaseVersion = _dataFixture.DefaultReleaseVersion()
1046+
.WithRelease(_dataFixture.DefaultRelease()
1047+
.WithPublication(_dataFixture.DefaultPublication()
1048+
.WithSlug("publication-slug")));
10981049

10991050
var releaseFile1 = new ReleaseFile
11001051
{

src/GovUk.Education.ExploreEducationStatistics.Content.Services/ReleaseFileService.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,10 @@ public async Task<Either<ActionResult, Unit>> ZipFilesToStream(
123123
IEnumerable<Guid>? fileIds = null,
124124
CancellationToken cancellationToken = default)
125125
{
126-
return await persistenceHelper.CheckEntityExists<ReleaseVersion>(
127-
releaseVersionId,
128-
q => q.Include(rv => rv.Publication)
129-
)
126+
return await contentDbContext.ReleaseVersions
127+
.Include(rv => rv.Release)
128+
.ThenInclude(r => r.Publication)
129+
.SingleOrNotFoundAsync(rv => rv.Id == releaseVersionId, cancellationToken: cancellationToken)
130130
.OnSuccess(userService.CheckCanViewReleaseVersion)
131131
.OnSuccessVoid(
132132
async release =>

0 commit comments

Comments
 (0)