Skip to content

Commit f7e1b0d

Browse files
committed
Add findArray and getArray tests
1 parent d1e9001 commit f7e1b0d

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
@@ -115,4 +115,106 @@ public function providerFindString(): array
115115
[['key' => ['key2' => 'value']], 'key.nope', 'default', 'default'],
116116
];
117117
}
118+
119+
/**
120+
* Test.
121+
*
122+
* @dataProvider providerGetArray
123+
*
124+
* @param mixed $data The data
125+
* @param string $key The lookup key
126+
* @param mixed $default The default value
127+
* @param mixed $expected The expected value
128+
*
129+
* @return void
130+
*/
131+
public function testGetArray($data, string $key, $default, $expected)
132+
{
133+
$reader = new ArrayReader($data);
134+
static::assertSame($expected, $reader->getArray($key, $default));
135+
}
136+
137+
/**
138+
* Provider.
139+
*
140+
* @return array[] The test data
141+
*/
142+
public function providerGetArray(): array
143+
{
144+
return [
145+
[[[1, 2, 3, 4], [2, 3, 4, 5, 6]], 0, null, [1, 2, 3, 4]],
146+
[[[1, 2, 3, 4], [2, 3, 4, 5, 6]], 1, null, [2, 3, 4, 5, 6]],
147+
[[['key' => 'value'], ['key2' => 'value2']], 0, null, ['key' => 'value']],
148+
[[['key' => 'value'], ['key2' => 'value2']], 1, null, ['key2' => 'value2']],
149+
];
150+
}
151+
152+
/**
153+
* Test.
154+
*
155+
* @dataProvider providerGetArrayError
156+
*
157+
* @param mixed $data The data
158+
* @param string $key The lookup key
159+
* @param mixed $default The default value
160+
*
161+
* @return void
162+
*/
163+
public function testGetArrayError($data, string $key, $default)
164+
{
165+
$reader = new ArrayReader($data);
166+
167+
$this->expectException(InvalidArgumentException::class);
168+
169+
$reader->getArray($key, $default);
170+
}
171+
172+
/**
173+
* Provider.
174+
*
175+
* @return array[] The test data
176+
*/
177+
public function providerGetArrayError(): array
178+
{
179+
return [
180+
[[[1, 2, 3, 4], [2, 3, 4, 5, 6]], 2, null],
181+
[[['key' => 'value'], ['key2' => 'value2']], 2, null],
182+
];
183+
}
184+
185+
/**
186+
* Test.
187+
*
188+
* @dataProvider providerFindArray
189+
*
190+
* @param mixed $data The data
191+
* @param string $key The lookup key
192+
* @param mixed $default The default value
193+
* @param mixed $expected The expected value
194+
*
195+
* @return void
196+
*/
197+
public function testFindArray($data, string $key, $default, $expected)
198+
{
199+
$reader = new ArrayReader($data);
200+
static::assertSame($expected, $reader->findArray($key, $default));
201+
}
202+
203+
/**
204+
* Provider.
205+
*
206+
* @return array[] The test data
207+
*/
208+
public function providerFindArray(): array
209+
{
210+
return [
211+
[[[1, 2, 3, 4], [2, 3, 4, 5, 6]], 0, null, [1, 2, 3, 4]],
212+
[[[1, 2, 3, 4], [2, 3, 4, 5, 6]], 1, null, [2, 3, 4, 5, 6]],
213+
[[[1, 2, 3, 4], [2, 3, 4, 5, 6]], 2, [], []],
214+
[[[1, 2, 3, 4], [2, 3, 4, 5, 6]], 2, null, null],
215+
[[['key' => 'value'], ['key2' => 'value2']], 0, null, ['key' => 'value']],
216+
[[['key' => 'value'], ['key2' => 'value2']], 1, null, ['key2' => 'value2']],
217+
[[['key' => 'value'], ['key2' => 'value2']], 2, null, null],
218+
];
219+
}
118220
}

0 commit comments

Comments
 (0)