Skip to content

Commit dc32292

Browse files
Merge pull request #54 from PDOK/jd/validation-test-refactor
Validation test setup
2 parents 6335cfe + f805b39 commit dc32292

23 files changed

+443
-1252
lines changed

api/v3/atom_validation.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,33 @@ func ValidateOwnerInfo(c client.Client, atom *Atom, allErrs *field.ErrorList) {
8787

8888
if ownerInfo.Spec.Atom == nil {
8989
*allErrs = append(*allErrs, field.Required(fieldPath, "spec.Atom missing in "+ownerInfo.Name))
90+
} else {
91+
validateMetadataTemplates(atom, ownerInfo, allErrs)
92+
}
93+
}
94+
95+
func validateMetadataTemplates(atom *Atom, ownerInfo *smoothoperatorv1.OwnerInfo, allErrs *field.ErrorList) {
96+
var metadataTemplates []string
97+
if atom.Spec.Service.ServiceMetadataLinks != nil {
98+
metadataTemplates = atom.Spec.Service.ServiceMetadataLinks.Templates
99+
}
100+
for _, feed := range atom.Spec.Service.DatasetFeeds {
101+
if feed.DatasetMetadataLinks != nil {
102+
metadataTemplates = append(metadataTemplates, feed.DatasetMetadataLinks.Templates...)
103+
}
104+
}
105+
106+
if len(metadataTemplates) > 0 {
107+
fieldPath := field.NewPath("spec").Child("service").Child("ownerInfoRef")
108+
if slices.Contains(metadataTemplates, "csw") && (ownerInfo.Spec.MetadataUrls == nil || ownerInfo.Spec.MetadataUrls.CSW == nil) {
109+
*allErrs = append(*allErrs, field.Required(fieldPath, "spec.metadataUrls.csw missing in "+ownerInfo.Name))
110+
}
111+
if slices.Contains(metadataTemplates, "html") && (ownerInfo.Spec.MetadataUrls == nil || ownerInfo.Spec.MetadataUrls.HTML == nil) {
112+
*allErrs = append(*allErrs, field.Required(fieldPath, "spec.metadataUrls.html missing in "+ownerInfo.Name))
113+
}
114+
if slices.Contains(metadataTemplates, "opensearch") && (ownerInfo.Spec.MetadataUrls == nil || ownerInfo.Spec.MetadataUrls.OpenSearch == nil) {
115+
*allErrs = append(*allErrs, field.Required(fieldPath, "spec.metadataUrls.opensearch missing in "+ownerInfo.Name))
116+
}
90117
}
91118
}
92119

api/v3/atom_validation_test.go

Lines changed: 0 additions & 105 deletions
This file was deleted.

api/v3/test_data/input/1-no-error-no-warning.yaml

Lines changed: 0 additions & 60 deletions
This file was deleted.

api/v3/test_data/input/2-warning-atom-name.yaml

Lines changed: 0 additions & 60 deletions
This file was deleted.

api/v3/test_data/input/3-error-dataset-metadata-id.yaml

Lines changed: 0 additions & 60 deletions
This file was deleted.

api/v3/test_data/input/4-spatialDatasetIdentifierCode-missing-error.yaml

Lines changed: 0 additions & 60 deletions
This file was deleted.

0 commit comments

Comments
 (0)