forked from nette/tester
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEnvironment.loadData.phpt
41 lines (27 loc) · 1.16 KB
/
Environment.loadData.phpt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
declare(strict_types=1);
use Tester\Assert;
use Tester\Environment;
require __DIR__ . '/../bootstrap.php';
$key = count($_SERVER['argv']);
$file = realpath(__DIR__ . '/fixtures/dataprovider.ini');
test('', function () use ($key, $file) {
$_SERVER['argv'][$key] = "--dataprovider=0|$file";
Assert::same(['dataset-0'], Environment::loadData());
$_SERVER['argv'][$key] = "--dataprovider=1|$file";
Assert::same(['dataset-1'], Environment::loadData());
$_SERVER['argv'][$key] = "--dataprovider=foo|$file";
Assert::same(['dataset-foo'], Environment::loadData());
$_SERVER['argv'][$key] = "--dataprovider=bar 1|$file";
Assert::same(['dataset-bar-1'], Environment::loadData());
$_SERVER['argv'][$key] = "--dataprovider=bar 2|$file";
Assert::same(['dataset-bar-2'], Environment::loadData());
});
testException('', function () use ($key, $file) {
$_SERVER['argv'][$key] = "--dataprovider=bar|$file";
Environment::loadData();
}, Exception::class, "Missing dataset 'bar' from data provider '%a%'.");
testException('', function () use ($key, $file) {
unset($_SERVER['argv'][$key]);
Environment::loadData();
}, Exception::class, 'Missing annotation @dataProvider.');