1 | <?php |
||
12 | class RangesTest extends TestCase |
||
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::assertTrue($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 |