Test Failed
Push — master ( 3c6fc5...755ce0 )
by Rick
02:12
created

RangesTest::testEnum()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 12
rs 9.4285
cc 1
eloc 9
nc 1
nop 0
1
<?php
2
/**
3
 * Copyright 2017 NanoSector
4
 *
5
 * You should have received a copy of the MIT license with the project.
6
 * See the LICENSE file for more information.
7
 */
8
9
use ValidationClosures\Ranges;
10
use PHPUnit\Framework\TestCase;
11
12
class RangesTest extends TestCase
0 ignored issues
show
Coding Style Compatibility introduced by
PSR1 recommends that each class must be in a namespace of at least one level to avoid collisions.

You can fix this by adding a namespace to your class:

namespace YourVendor;

class YourClass { }

When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.

Loading history...
13
{
14
	public function testStringWithLengthBetween()
15
	{
16
		$this->expectException(InvalidArgumentException::class);
17
		Ranges::stringWithLengthBetween(-1, 0);
18
19
		$this->expectException(InvalidArgumentException::class);
20
		Ranges::stringWithLengthBetween(0, 0);
21
22
		$closure = Ranges::stringWithLengthBetween(0, 1);
23
		self::assertTrue($closure('a'));
24
		self::assertFalse($closure('aaa'));
25
		self::assertFalse($closure('aaaaa'));
26
27
		$closure = Ranges::stringWithLengthBetween(0, 5);
28
		self::assertTrue($closure('a'));
29
		self::assertTrue($closure('aaa'));
30
		self::assertTrue($closure('aaaaa'));
31
32
		$closure = Ranges::stringWithLengthBetween(2, 4);
33
		self::assertFalse($closure('a'));
34
		self::assertTrue($closure('aaa'));
35
		self::assertFalse($closure('aaaaa'));
36
	}
37
38
	public function testIntBetween()
39
	{
40
		$closure = Ranges::intBetween(0, 3);
41
		self::assertFalse($closure(-3));
42
		self::assertFalse($closure(-2));
43
		self::assertFalse($closure(-1));
44
		self::assertTrue($closure(0));
45
		self::assertTrue($closure(1));
46
		self::assertTrue($closure(2));
47
		self::assertTrue($closure(3));
48
		self::assertFalse($closure(4));
49
		self::assertFalse($closure(5));
50
51
		$closure = Ranges::intBetween(-2, 2);
52
		self::assertFalse($closure(-3));
53
		self::assertTrue($closure(-2));
54
		self::assertTrue($closure(-1));
55
		self::assertTrue($closure(0));
56
		self::assertTrue($closure(1));
57
		self::assertTrue($closure(2));
58
		self::assertFalse($closure(3));
59
		self::assertFalse($closure(4));
60
		self::assertFalse($closure(5));
61
	}
62
63
	public function testEnum()
64
	{
65
		$closure = Ranges::enum(['string', 'double']);
66
67
		self::assertFalse($closure(10));
68
		self::assertTrue($closure('test'));
69
		self::assertTrue($closure(1.2));
70
		self::assertFalse($closure(false));
71
		self::assertFalse($closure([ ]));
72
		self::assertFalse($closure('in_array'));
73
		self::assertFalse($closure(new stdClass()));
74
	}
75
76
	public function testStringOneOf()
77
	{
78
		$closure = Ranges::stringOneOf(['test', 'ing']);
79
80
		self::assertTrue($closure('test'));
81
		self::assertTrue($closure('ing'));
82
		self::assertFalse($closure('something else'));
83
		self::assertFalse($closure(' '));
84
	}
85
}
86