1---
2name: fail-unique-1
3desc: "NOTE: The reverse unique do not currently work proper # This will test the unique constraint but should fail"
4data:
5  - name: foo
6    email: admin@mail.com
7    groups:
8      - foo
9      - users
10      - admin
11      - foo
12  - name: bar
13    email: admin@mail.com
14    groups:
15      - admin
16      - users
17  - name: bar
18    email: baz@mail.com
19    groups:
20      - users
21schema:
22  type: seq
23  sequence:
24    - type: map
25      required: True
26      mapping:
27        name:
28          type: str
29          required: True
30          unique: True
31        email:
32          type: str
33        groups:
34          type: seq
35          sequence:
36            - type: str
37              unique: True
38errors:
39  - "Value 'bar' is not unique. Previous path: '/1/name'. Path: '/2/name'"
40  - "Value 'foo' is not unique. Previous path: '/0/groups/0'. Path: '/0/groups/3'"
41---
42name: fail-unique-2
43desc: unique constraint test with map
44schema:
45  type: seq
46  sequence:
47    - type: map
48      mapping:
49       "name":
50          unique: true
51       "age":
52          type: int
53data:
54  - name: foo
55    age:  10
56  - name: bar
57    age:  10
58  - age:  10
59    name: bar
60errors:
61  - "Value 'bar' is not unique. Previous path: '/1/name'. Path: '/2/name'"
62  ## Kwalify errors
63  # :value_notunique    : 6:3:[/2/name] 'bar': is already used at '/1/name'.
64---
65name: fail-unique-3
66desc: unique constraint test with seq
67schema:
68  type: seq
69  sequence:
70    - type: str
71      unique: true
72data:
73  - foo
74  - ~
75  - bar
76  - ~
77  - bar
78errors:
79  - "Value 'bar' is not unique. Previous path: '/2'. Path: '/4'"
80  ## Kwalify errors
81  # :value_notunique    : 5:1:[/4] 'bar': is already used at '/2'.
82---
83name: fail-unique-4
84desc: unique constraint and '<<' (merge)
85schema:
86    type: seq
87    sequence:
88      - type: map
89        mapping:
90         "name":
91           type: str
92           required: true
93           unique: true
94         "value":
95           type: any
96           required: true
97data:
98  - &a1
99    name:  x1
100    value: 10
101  - <<: *a1
102  - <<: *a1         # wrong validation error
103    name:  x3
104errors:
105  - "Value 'x1' is not unique. Previous path: '/0/name'. Path: '/1/name'"
106  # TODO: Possibly missing one error here...
107  ## Kwalify errors
108  # :value_notunique    : 4:3:[/1/name] 'x1': is already used at '/0/name'.
109  # :value_notunique    : 5:3:[/2/name] 'x1': is already used at '/0/name'.
110