Skip to content

Commit dcafc04

Browse files
committed
PDOK-18065 Atom-Operator - validation unit-tests
1 parent 04d846e commit dcafc04

File tree

4 files changed

+84
-2
lines changed

4 files changed

+84
-2
lines changed

internal/webhook/v3/atom_webhook_test.go

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ var _ = Describe("Atom Webhook", func() {
6262
Context("When creating or updating Atom under Validating Webhook", func() {
6363
It("Should create atom without errors or warnings", func() {
6464
By("simulating a valid creation scenario")
65-
input, err := os.ReadFile("test_data/input/1-no-error-no-warning.yaml")
65+
input, err := os.ReadFile("test_data/input/1-create-no-error-no-warning.yaml")
6666
Expect(err).NotTo(HaveOccurred())
6767
atom := &pdoknlv3.Atom{}
6868
err = yaml.Unmarshal(input, atom)
@@ -73,7 +73,7 @@ var _ = Describe("Atom Webhook", func() {
7373
})
7474
It("Should deny creation if no labels are available", func() {
7575
By("simulating an invalid creation scenario")
76-
input, err := os.ReadFile("test_data/input/2-error-no-lables.yaml")
76+
input, err := os.ReadFile("test_data/input/2-create-error-no-lables.yaml")
7777
Expect(err).NotTo(HaveOccurred())
7878
atom := &pdoknlv3.Atom{}
7979
err = yaml.Unmarshal(input, atom)
@@ -84,6 +84,28 @@ var _ = Describe("Atom Webhook", func() {
8484
Expect(len(warnings)).To(Equal(0))
8585
Expect(expectedError.Error()).To(Equal(errors.Error()))
8686
})
87+
88+
It("Should create and update atom without errors or warnings", func() {
89+
By("simulating a valid creation scenario")
90+
input, err := os.ReadFile("test_data/input/1-create-no-error-no-warning.yaml")
91+
Expect(err).NotTo(HaveOccurred())
92+
atomOld := &pdoknlv3.Atom{}
93+
err = yaml.Unmarshal(input, atomOld)
94+
Expect(err).NotTo(HaveOccurred())
95+
warnings, errors := validator.ValidateCreate(ctx, atomOld)
96+
Expect(errors).To(BeNil())
97+
Expect(len(warnings)).To(Equal(0))
98+
99+
By("simulating a valid update scenario")
100+
input, err = os.ReadFile("test_data/input/3-update-no-error-no-warning.yaml")
101+
Expect(err).NotTo(HaveOccurred())
102+
atomNew := &pdoknlv3.Atom{}
103+
err = yaml.Unmarshal(input, atomNew)
104+
Expect(err).NotTo(HaveOccurred())
105+
warnings, errors = validator.ValidateUpdate(ctx, atomOld, atomNew)
106+
Expect(errors).To(BeNil())
107+
Expect(len(warnings)).To(Equal(0))
108+
})
87109
})
88110

89111
})

internal/webhook/v3/test_data/input/1-no-error-no-warning.yaml renamed to internal/webhook/v3/test_data/input/1-create-no-error-no-warning.yaml

File renamed without changes.

internal/webhook/v3/test_data/input/2-error-no-lables.yaml renamed to internal/webhook/v3/test_data/input/2-create-error-no-lables.yaml

File renamed without changes.
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
apiVersion: pdok.nl/v3
2+
kind: Atom
3+
metadata:
4+
annotations:
5+
kangaroo.pdok.nl/lifecycle-phase: prod
6+
kangaroo.pdok.nl/service-bundle-ids: 65daed5f-e9e4-5791-a7c9-7e9effcca520
7+
kangaroo.pdok.nl/readonly: "true"
8+
labels:
9+
pdok.nl/dataset-id: wetlands
10+
pdok.nl/owner-id: rvo
11+
pdok.nl/service-type: atom
12+
name: asis-readonly-prod
13+
namespace: services
14+
spec:
15+
service:
16+
baseUrl: http://localhost:32788/rvo/wetlands/atom
17+
datasetFeeds:
18+
- author:
19+
20+
name: Ministerie van EL&I - GIS Competence Center
21+
datasetMetadataLinks:
22+
metadataIdentifier: 07d73b60-dfd6-4c54-9c82-9fac70c6c48e
23+
templates:
24+
- csw
25+
- html
26+
entries:
27+
- content:
28+
Wetlands zijn de natte natuurgebieden in Nederland (44 gebieden).
29+
Het Wetland verdrag is op 2 februari 1971 te Ramsar in Iran ondertekend.
30+
Nederland was een van de zestien landen die het Verdrag toen ondertekende.
31+
downloadlinks:
32+
- data: public/rvo/wetlands/65daed5f-e9e4-5791-a7c9-7e9effcca520/3/wetlands.gpkg
33+
polygon:
34+
bbox:
35+
maxx: "7.5553527"
36+
maxy: "55.66948"
37+
minx: "2.354173"
38+
miny: "50.71447"
39+
srs:
40+
name: Amersfoort / RD New
41+
uri: https://www.opengis.net/def/crs/EPSG/0/28992
42+
technicalName: wetlands
43+
title: wetlands
44+
updated: "2025-02-28T09:04:17Z"
45+
spatialDatasetIdentifierCode: 07d73b60-dfd6-4c54-9c82-9fac70c6c48e
46+
spatialDatasetIdentifierNamespace: http://www.pdok.nl
47+
subtitle: wetlands
48+
technicalName: wetlands
49+
title: wetlands
50+
lang: nl
51+
ownerInfoRef: pdok
52+
rights: https://creativecommons.org/publicdomain/zero/1.0/deed.nl
53+
serviceMetadataLinks:
54+
metadataIdentifier: 2751ba40-5100-4186-81be-b7fdee95b49c
55+
templates:
56+
- csw
57+
- opensearch
58+
- html
59+
subtitle: Download Service van wetlands new title
60+
title: Wetlands new title

0 commit comments

Comments
 (0)