@@ -7,9 +7,80 @@ import {
77 DatasetStatus ,
88 DatasetVersion ,
99 MetadataBlockName ,
10- DatasetMetadataBlocks
10+ DatasetMetadataBlocks ,
11+ DatasetPermissions
1112} from '../../../../../src/dataset/domain/models/Dataset'
1213
14+ export class DatasetVersionMother {
15+ static create ( props ?: Partial < DatasetVersion > ) : DatasetVersion {
16+ return new DatasetVersion (
17+ props ?. majorNumber ?? 1 ,
18+ props ?. minorNumber ?? 0 ,
19+ props ?. status ?? DatasetStatus . RELEASED ,
20+ props ?. isLatest ?? false
21+ )
22+ }
23+
24+ static createReleased ( ) : DatasetVersion {
25+ return new DatasetVersion ( 1 , 0 , DatasetStatus . RELEASED , false )
26+ }
27+
28+ static createDeaccessioned ( ) : DatasetVersion {
29+ return new DatasetVersion ( 1 , 0 , DatasetStatus . DEACCESSIONED , false )
30+ }
31+
32+ static createDraftAsLatestVersion ( ) : DatasetVersion {
33+ return new DatasetVersion ( 1 , 0 , DatasetStatus . DRAFT , true )
34+ }
35+
36+ static createDraft ( ) : DatasetVersion {
37+ return new DatasetVersion ( 1 , 0 , DatasetStatus . DRAFT , false )
38+ }
39+ }
40+
41+ export class DatasetPermissionsMother {
42+ static create ( props ?: Partial < DatasetPermissions > ) : DatasetPermissions {
43+ return {
44+ canDownloadFiles : faker . datatype . boolean ( ) ,
45+ canUpdateDataset : faker . datatype . boolean ( ) ,
46+ canPublishDataset : faker . datatype . boolean ( ) ,
47+ ...props
48+ }
49+ }
50+
51+ static createWithFilesDownloadAllowed ( ) : DatasetPermissions {
52+ return this . create ( { canDownloadFiles : true } )
53+ }
54+
55+ static createWithFilesDownloadNotAllowed ( ) : DatasetPermissions {
56+ return this . create ( { canDownloadFiles : false } )
57+ }
58+
59+ static createWithUpdateDatasetAllowed ( ) : DatasetPermissions {
60+ return this . create ( { canUpdateDataset : true } )
61+ }
62+
63+ static createWithUpdateDatasetNotAllowed ( ) : DatasetPermissions {
64+ return this . create ( { canUpdateDataset : false } )
65+ }
66+
67+ static createWithAllAllowed ( ) : DatasetPermissions {
68+ return this . create ( {
69+ canDownloadFiles : true ,
70+ canUpdateDataset : true ,
71+ canPublishDataset : true
72+ } )
73+ }
74+
75+ static createWithPublishingDatasetAllowed ( ) : DatasetPermissions {
76+ return this . create ( { canPublishDataset : true } )
77+ }
78+
79+ static createWithPublishingDatasetNotAllowed ( ) : DatasetPermissions {
80+ return this . create ( { canPublishDataset : false } )
81+ }
82+ }
83+
1384export class DatasetMother {
1485 static createEmpty ( ) : undefined {
1586 return undefined
@@ -19,7 +90,7 @@ export class DatasetMother {
1990 const dataset = {
2091 persistentId : faker . datatype . uuid ( ) ,
2192 title : faker . lorem . sentence ( ) ,
22- version : new DatasetVersion ( 1 , 0 , DatasetStatus . RELEASED ) ,
93+ version : DatasetVersionMother . create ( ) ,
2394 citation :
2495 'Bennet, Elizabeth; Darcy, Fitzwilliam, 2023, "Dataset Title", <a href="https://doi.org/10.5072/FK2/BUDNRV" target="_blank">https://doi.org/10.5072/FK2/BUDNRV</a>, Root, V1' ,
2596 license : {
@@ -100,7 +171,8 @@ export class DatasetMother {
100171 }
101172 }
102173 ] as DatasetMetadataBlocks ,
103- permissions : { canDownloadFiles : false , canUpdateDataset : false } ,
174+ permissions : DatasetPermissionsMother . create ( ) ,
175+ locks : [ ] ,
104176 ...props
105177 }
106178
@@ -111,7 +183,8 @@ export class DatasetMother {
111183 dataset . summaryFields ,
112184 dataset . license ,
113185 dataset . metadataBlocks ,
114- dataset . permissions
186+ dataset . permissions ,
187+ dataset . locks
115188 ) . build ( )
116189 }
117190
0 commit comments