@@ -113,4 +113,43 @@ public function testConstraintHasDefaultGroupWithOptionalValues()
113
113
$ this ->assertEquals (['Default ' ], $ constraint ->fields ['foo ' ]->groups );
114
114
$ this ->assertEquals (['Default ' ], $ constraint ->fields ['bar ' ]->groups );
115
115
}
116
+
117
+ public function testOnlySomeKeysAreKnowOptions ()
118
+ {
119
+ $ constraint = new Collection ([
120
+ 'fields ' => [new Required ()],
121
+ 'properties ' => [new Required ()],
122
+ 'catalog ' => [new Optional ()],
123
+ ]);
124
+
125
+ $ this ->assertArrayHasKey ('fields ' , $ constraint ->fields );
126
+ $ this ->assertInstanceOf (Required::class, $ constraint ->fields ['fields ' ]);
127
+ $ this ->assertArrayHasKey ('properties ' , $ constraint ->fields );
128
+ $ this ->assertInstanceOf (Required::class, $ constraint ->fields ['properties ' ]);
129
+ $ this ->assertArrayHasKey ('catalog ' , $ constraint ->fields );
130
+ $ this ->assertInstanceOf (Optional::class, $ constraint ->fields ['catalog ' ]);
131
+ }
132
+
133
+ public function testAllKeysAreKnowOptions ()
134
+ {
135
+ $ constraint = new Collection ([
136
+ 'fields ' => [
137
+ 'fields ' => [new Required ()],
138
+ 'properties ' => [new Required ()],
139
+ 'catalog ' => [new Optional ()],
140
+ ],
141
+ 'allowExtraFields ' => true ,
142
+ 'extraFieldsMessage ' => 'foo bar baz ' ,
143
+ ]);
144
+
145
+ $ this ->assertArrayHasKey ('fields ' , $ constraint ->fields );
146
+ $ this ->assertInstanceOf (Required::class, $ constraint ->fields ['fields ' ]);
147
+ $ this ->assertArrayHasKey ('properties ' , $ constraint ->fields );
148
+ $ this ->assertInstanceOf (Required::class, $ constraint ->fields ['properties ' ]);
149
+ $ this ->assertArrayHasKey ('catalog ' , $ constraint ->fields );
150
+ $ this ->assertInstanceOf (Optional::class, $ constraint ->fields ['catalog ' ]);
151
+
152
+ $ this ->assertTrue ($ constraint ->allowExtraFields );
153
+ $ this ->assertSame ('foo bar baz ' , $ constraint ->extraFieldsMessage );
154
+ }
116
155
}
0 commit comments