Skip to content

Commit 21ede8b

Browse files
Added more validator tests (#314)
1 parent 2237795 commit 21ede8b

File tree

3 files changed

+99
-1
lines changed

3 files changed

+99
-1
lines changed

tests/Dotenv/ValidatorBooleanTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public function invalidBooleanValuesDataProvider()
8484

8585
/**
8686
* @dataProvider invalidBooleanValuesDataProvider
87-
* @expectedException Dotenv\Exception\ValidationException
87+
* @expectedException \Dotenv\Exception\ValidationException
8888
* @expectedExceptionMessage One or more environment variables failed assertions: INVALID_
8989
*/
9090
public function testCanInvalidateNonBooleans($boolean)

tests/Dotenv/ValidatorIntegerTest.php

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
<?php
2+
3+
use Dotenv\Dotenv;
4+
use PHPUnit\Framework\TestCase;
5+
6+
class ValidatorIntegerTest extends TestCase
7+
{
8+
/**
9+
* @var string
10+
*/
11+
private $fixturesFolder;
12+
13+
public function setUp()
14+
{
15+
$this->fixturesFolder = dirname(__DIR__).'/fixtures/env';
16+
}
17+
18+
/**
19+
* List of valid integer values in fixtures/env/integers.env.
20+
*
21+
* @return array
22+
*/
23+
public function validIntegerValuesDataProvider()
24+
{
25+
return [
26+
['VALID_ZERO'],
27+
['VALID_ONE'],
28+
['VALID_TWO'],
29+
30+
['VALID_LARGE'],
31+
['VALID_HUGE'],
32+
];
33+
}
34+
35+
/**
36+
* @dataProvider validIntegerValuesDataProvider
37+
*/
38+
public function testCanValidateIntegers($integer)
39+
{
40+
$dotenv = Dotenv::create($this->fixturesFolder, 'integers.env');
41+
$dotenv->load();
42+
43+
$dotenv->required($integer)->isInteger();
44+
45+
$this->assertTrue(true); // anything wrong - an exception will be thrown
46+
}
47+
48+
/**
49+
* List of non-integer values in fixtures/env/integers.env.
50+
*
51+
* @return array
52+
*/
53+
public function invalidIntegerValuesDataProvider()
54+
{
55+
return [
56+
['INVALID_SOMETHING'],
57+
['INVALID_EMPTY'],
58+
['INVALID_EMPTY_STRING'],
59+
['INVALID_NULL'],
60+
['INVALID_NEGATIVE'],
61+
['INVALID_MINUS'],
62+
['INVALID_TILDA'],
63+
['INVALID_EXCLAMATION'],
64+
['INVALID_SPACES'],
65+
['INVALID_COMMAS'],
66+
];
67+
}
68+
69+
/**
70+
* @dataProvider invalidIntegerValuesDataProvider
71+
* @expectedException \Dotenv\Exception\ValidationException
72+
* @expectedExceptionMessage One or more environment variables failed assertions: INVALID_
73+
*/
74+
public function testCanInvalidateNonIntegers($integer)
75+
{
76+
$dotenv = Dotenv::create($this->fixturesFolder, 'integers.env');
77+
$dotenv->load();
78+
79+
$dotenv->required($integer)->isInteger();
80+
}
81+
}

tests/fixtures/env/integers.env

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
VALID_ZERO=0
2+
VALID_ONE=1
3+
VALID_TWO=2
4+
5+
VALID_LARGE=99999999
6+
VALID_HUGE=99999999999999999999999999999999
7+
8+
INVALID_SOMETHING=something
9+
INVALID_EMPTY=
10+
INVALID_EMPTY_STRING=""
11+
INVALID_NULL=null
12+
INVALID_NEGATIVE=-2
13+
INVALID_MINUS=-
14+
INVALID_TILDA=~
15+
INVALID_EXCLAMATION=!
16+
INVALID_SPACES=" 123"
17+
INVALID_COMMAS="123,123"

0 commit comments

Comments
 (0)