@@ -121,18 +121,83 @@ public function testHeaderParameterRequired(): void
121
121
}
122
122
123
123
#[DataProvider('provideHeaderValues ' )]
124
- public function testHeaderParameterInteger (string $ value , int $ expectedStatusCode ): void
124
+ public function testHeaderParameter (string $ url , array $ headers , int $ expectedStatusCode ): void
125
125
{
126
- self ::createClient ()->request ('GET ' , ' header_integer ' , ['headers ' => [ ' Foo ' => $ value ] ]);
126
+ self ::createClient ()->request ('GET ' , $ url , ['headers ' => $ headers ]);
127
127
$ this ->assertResponseStatusCodeSame ($ expectedStatusCode );
128
128
}
129
129
130
130
public static function provideHeaderValues (): iterable
131
131
{
132
- yield 'valid integer ' => ['3 ' , 200 ];
133
- yield 'too high ' => ['6 ' , 422 ];
134
- yield 'too low ' => ['0 ' , 422 ];
135
- yield 'invalid integer ' => ['string ' , 422 ];
132
+ // header_integer
133
+ yield 'missing header header_integer ' => ['header_integer ' , [], 200 ];
134
+ yield 'valid integer header_integer ' => ['header_integer ' , ['Foo ' => '3 ' ], 200 ];
135
+ yield 'too high header_integer ' => ['header_integer ' , ['Foo ' => '6 ' ], 422 ];
136
+ yield 'too low header_integer ' => ['header_integer ' , ['Foo ' => '0 ' ], 422 ];
137
+ yield 'invalid integer header_integer ' => ['header_integer ' , ['Foo ' => 'string ' ], 422 ];
138
+
139
+ // header_float
140
+ yield 'missing header header_float ' => ['header_float ' , [], 200 ];
141
+ yield 'valid float header_float ' => ['header_float ' , ['Bar ' => '3.5 ' ], 200 ];
142
+ yield 'valid integer header_float ' => ['header_float ' , ['Bar ' => '3 ' ], 200 ];
143
+ yield 'too high header_float ' => ['header_float ' , ['Bar ' => '600 ' ], 422 ];
144
+ yield 'too low header_float ' => ['header_float ' , ['Bar ' => '0 ' ], 422 ];
145
+ yield 'invalid number header_float ' => ['header_float ' , ['Bar ' => 'string ' ], 422 ];
146
+
147
+ // header_boolean
148
+ yield 'missing header header_boolean ' => ['header_boolean ' , [], 200 ];
149
+ yield 'valid boolean false header_boolean ' => ['header_boolean ' , ['Lorem ' => 'false ' ], 200 ];
150
+ yield 'valid boolean true header_boolean ' => ['header_boolean ' , ['Lorem ' => 'true ' ], 200 ];
151
+ yield 'valid boolean 0 header_boolean ' => ['header_boolean ' , ['Lorem ' => 0 ], 200 ];
152
+ yield 'valid boolean 0 string header_boolean ' => ['header_boolean ' , ['Lorem ' => '0 ' ], 200 ];
153
+ yield 'valid boolean 1 header_boolean ' => ['header_boolean ' , ['Lorem ' => 1 ], 200 ];
154
+ yield 'valid boolean 1 string header_boolean ' => ['header_boolean ' , ['Lorem ' => '1 ' ], 200 ];
155
+ yield 'invalid boolean header_boolean ' => ['header_boolean ' , ['Lorem ' => 'string ' ], 422 ];
156
+
157
+ // header_null
158
+ yield 'missing header header_null ' => ['header_null ' , [], 200 ];
159
+ yield 'valid null header_null ' => ['header_null ' , ['Ipsum ' => null ], 200 ];
160
+ yield 'valid null string header_null ' => ['header_null ' , ['Ipsum ' => 'null ' ], 200 ];
161
+ yield 'invalid null header_null ' => ['header_null ' , ['Ipsum ' => 'string ' ], 422 ];
162
+ }
163
+
164
+ #[DataProvider('provideQueryValues ' )]
165
+ public function testQueryParameter (string $ url , array $ query , int $ expectedStatusCode ): void
166
+ {
167
+ self ::createClient ()->request ('GET ' , $ url , ['query ' => $ query ]);
168
+ $ this ->assertResponseStatusCodeSame ($ expectedStatusCode );
169
+ }
170
+
171
+ public static function provideQueryValues (): iterable
172
+ {
173
+ // query_integer
174
+ yield 'valid integer query_integer ' => ['query_integer ' , ['Foo ' => '3 ' ], 200 ];
175
+ yield 'too high query_integer ' => ['query_integer ' , ['Foo ' => '6 ' ], 422 ];
176
+ yield 'too low query_integer ' => ['query_integer ' , ['Foo ' => '0 ' ], 422 ];
177
+ yield 'invalid integer query_integer ' => ['query_integer ' , ['Foo ' => 'string ' ], 422 ];
178
+
179
+ // query_float
180
+ yield 'valid float query_float ' => ['query_float ' , ['Bar ' => '3.5 ' ], 200 ];
181
+ yield 'valid integer query_float ' => ['query_float ' , ['Bar ' => '3 ' ], 200 ];
182
+ yield 'too high query_float ' => ['query_float ' , ['Bar ' => '600 ' ], 422 ];
183
+ yield 'too low query_float ' => ['query_float ' , ['Bar ' => '0 ' ], 422 ];
184
+ yield 'invalid number query_float ' => ['query_float ' , ['Bar ' => 'string ' ], 422 ];
185
+
186
+ // query_boolean
187
+ yield 'valid boolean false query_boolean ' => ['query_boolean ' , ['Lorem ' => false ], 200 ];
188
+ yield 'valid boolean false string query_boolean ' => ['query_boolean ' , ['Lorem ' => 'false ' ], 200 ];
189
+ yield 'valid boolean true query_boolean ' => ['query_boolean ' , ['Lorem ' => true ], 200 ];
190
+ yield 'valid boolean true string query_boolean ' => ['query_boolean ' , ['Lorem ' => 'true ' ], 200 ];
191
+ yield 'valid boolean 0 query_boolean ' => ['query_boolean ' , ['Lorem ' => 0 ], 200 ];
192
+ yield 'valid boolean 0 string query_boolean ' => ['query_boolean ' , ['Lorem ' => '0 ' ], 200 ];
193
+ yield 'valid boolean 1 query_boolean ' => ['query_boolean ' , ['Lorem ' => 1 ], 200 ];
194
+ yield 'valid boolean 1 string query_boolean ' => ['query_boolean ' , ['Lorem ' => '1 ' ], 200 ];
195
+ yield 'invalid boolean query_boolean ' => ['query_boolean ' , ['Lorem ' => 'string ' ], 422 ];
196
+
197
+ // query_null
198
+ yield 'valid null query_null ' => ['query_null ' , ['Ipsum ' => null ], 200 ];
199
+ yield 'valid null string query_null ' => ['query_null ' , ['Ipsum ' => 'null ' ], 200 ];
200
+ yield 'invalid null query_null ' => ['query_null ' , ['Ipsum ' => 'string ' ], 422 ];
136
201
}
137
202
138
203
#[DataProvider('provideCountryValues ' )]
0 commit comments