Skip to content

Commit 261c0f2

Browse files
authored
Merge pull request #4 from open-source-contributions/array_tests
Add findArray and getArray tests
2 parents c52d5db + f7e1b0d commit 261c0f2

1 file changed

Lines changed: 102 additions & 0 deletions

File tree

tests/ArrayReaderTest.php

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,4 +218,106 @@ public function providerFindString(): array
218218
[['key' => ['key2' => 'value']], 'key.nope', 'default', 'default'],
219219
];
220220
}
221+
222+
/**
223+
* Test.
224+
*
225+
* @dataProvider providerGetArray
226+
*
227+
* @param mixed $data The data
228+
* @param string $key The lookup key
229+
* @param mixed $default The default value
230+
* @param mixed $expected The expected value
231+
*
232+
* @return void
233+
*/
234+
public function testGetArray($data, string $key, $default, $expected)
235+
{
236+
$reader = new ArrayReader($data);
237+
static::assertSame($expected, $reader->getArray($key, $default));
238+
}
239+
240+
/**
241+
* Provider.
242+
*
243+
* @return array[] The test data
244+
*/
245+
public function providerGetArray(): array
246+
{
247+
return [
248+
[[[1, 2, 3, 4], [2, 3, 4, 5, 6]], 0, null, [1, 2, 3, 4]],
249+
[[[1, 2, 3, 4], [2, 3, 4, 5, 6]], 1, null, [2, 3, 4, 5, 6]],
250+
[[['key' => 'value'], ['key2' => 'value2']], 0, null, ['key' => 'value']],
251+
[[['key' => 'value'], ['key2' => 'value2']], 1, null, ['key2' => 'value2']],
252+
];
253+
}
254+
255+
/**
256+
* Test.
257+
*
258+
* @dataProvider providerGetArrayError
259+
*
260+
* @param mixed $data The data
261+
* @param string $key The lookup key
262+
* @param mixed $default The default value
263+
*
264+
* @return void
265+
*/
266+
public function testGetArrayError($data, string $key, $default)
267+
{
268+
$reader = new ArrayReader($data);
269+
270+
$this->expectException(InvalidArgumentException::class);
271+
272+
$reader->getArray($key, $default);
273+
}
274+
275+
/**
276+
* Provider.
277+
*
278+
* @return array[] The test data
279+
*/
280+
public function providerGetArrayError(): array
281+
{
282+
return [
283+
[[[1, 2, 3, 4], [2, 3, 4, 5, 6]], 2, null],
284+
[[['key' => 'value'], ['key2' => 'value2']], 2, null],
285+
];
286+
}
287+
288+
/**
289+
* Test.
290+
*
291+
* @dataProvider providerFindArray
292+
*
293+
* @param mixed $data The data
294+
* @param string $key The lookup key
295+
* @param mixed $default The default value
296+
* @param mixed $expected The expected value
297+
*
298+
* @return void
299+
*/
300+
public function testFindArray($data, string $key, $default, $expected)
301+
{
302+
$reader = new ArrayReader($data);
303+
static::assertSame($expected, $reader->findArray($key, $default));
304+
}
305+
306+
/**
307+
* Provider.
308+
*
309+
* @return array[] The test data
310+
*/
311+
public function providerFindArray(): array
312+
{
313+
return [
314+
[[[1, 2, 3, 4], [2, 3, 4, 5, 6]], 0, null, [1, 2, 3, 4]],
315+
[[[1, 2, 3, 4], [2, 3, 4, 5, 6]], 1, null, [2, 3, 4, 5, 6]],
316+
[[[1, 2, 3, 4], [2, 3, 4, 5, 6]], 2, [], []],
317+
[[[1, 2, 3, 4], [2, 3, 4, 5, 6]], 2, null, null],
318+
[[['key' => 'value'], ['key2' => 'value2']], 0, null, ['key' => 'value']],
319+
[[['key' => 'value'], ['key2' => 'value2']], 1, null, ['key2' => 'value2']],
320+
[[['key' => 'value'], ['key2' => 'value2']], 2, null, null],
321+
];
322+
}
221323
}

0 commit comments

Comments
 (0)