TypesTest   A
last analyzed

Complexity

Total Complexity 9

Size/Duplication

Total Lines 116
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 9
eloc 71
dl 0
loc 116
rs 10
c 2
b 0
f 0

9 Methods

Rating   Name   Duplication   Size   Complexity  
A testString() 0 11 1
A testNumeric() 0 11 1
A testObject() 0 11 1
A testCallable() 0 11 1
A testArray() 0 11 1
A testInstanceOf() 0 9 1
A testFloat() 0 11 1
A testInt() 0 11 1
A testBool() 0 12 1
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\Types;
10
use PHPUnit\Framework\TestCase;
11
12
class TypesTest extends TestCase
13
{
14
	public function testInt()
15
	{
16
		$closure = Types::int();
17
18
		self::assertTrue($closure(10));
19
		self::assertFalse($closure('test'));
20
		self::assertFalse($closure(1.2));
21
		self::assertFalse($closure(false));
22
		self::assertFalse($closure([ ]));
23
		self::assertFalse($closure('in_array'));
24
		self::assertFalse($closure(new stdClass()));
25
	}
26
27
	public function testString()
28
	{
29
		$closure = Types::string();
30
31
		self::assertFalse($closure(10));
32
		self::assertTrue($closure('test'));
33
		self::assertFalse($closure(1.2));
34
		self::assertFalse($closure(false));
35
		self::assertFalse($closure([ ]));
36
		self::assertTrue($closure('in_array'));
37
		self::assertFalse($closure(new stdClass()));
38
	}
39
40
	public function testFloat()
41
	{
42
		$closure = Types::float();
43
44
		self::assertFalse($closure(10));
45
		self::assertFalse($closure('test'));
46
		self::assertTrue($closure(1.2));
47
		self::assertFalse($closure(false));
48
		self::assertFalse($closure([ ]));
49
		self::assertFalse($closure('in_array'));
50
		self::assertFalse($closure(new stdClass()));
51
	}
52
53
	public function testBool()
54
	{
55
		$closure = Types::boolean();
56
57
		self::assertFalse($closure(10));
58
		self::assertFalse($closure('test'));
59
		self::assertFalse($closure(1.2));
60
		self::assertTrue($closure(false));
61
		self::assertTrue($closure(true));
62
		self::assertFalse($closure([ ]));
63
		self::assertFalse($closure('in_array'));
64
		self::assertFalse($closure(new stdClass()));
65
	}
66
67
	public function testArray()
68
	{
69
		$closure = Types::array();
70
71
		self::assertFalse($closure(10));
72
		self::assertFalse($closure('test'));
73
		self::assertFalse($closure(1.2));
74
		self::assertFalse($closure(false));
75
		self::assertTrue($closure([ ]));
76
		self::assertFalse($closure('in_array'));
77
		self::assertFalse($closure(new stdClass()));
78
	}
79
80
	public function testCallable()
81
	{
82
		$closure = Types::callable();
83
84
		self::assertFalse($closure(10));
85
		self::assertFalse($closure('test'));
86
		self::assertFalse($closure(1.2));
87
		self::assertFalse($closure(false));
88
		self::assertFalse($closure([ ]));
89
		self::assertTrue($closure('in_array'));
90
		self::assertFalse($closure(new stdClass()));
91
	}
92
93
	public function testObject()
94
	{
95
		$closure = Types::object();
96
97
		self::assertFalse($closure(10));
98
		self::assertFalse($closure('test'));
99
		self::assertFalse($closure(1.2));
100
		self::assertFalse($closure(false));
101
		self::assertFalse($closure([ ]));
102
		self::assertFalse($closure('in_array'));
103
		self::assertTrue($closure(new stdClass()));
104
	}
105
106
    public function testNumeric()
107
    {
108
        $closure = Types::numeric();
109
110
        self::assertTrue($closure(10));
111
        self::assertFalse($closure('test'));
112
        self::assertTrue($closure(1.2));
113
        self::assertFalse($closure(false));
114
        self::assertFalse($closure([ ]));
115
        self::assertFalse($closure('in_array'));
116
        self::assertFalse($closure(new stdClass()));
117
	}
118
119
	public function testInstanceOf()
120
	{
121
		$closure = Types::instanceof(Types::class);
122
123
		$stdClass = new stdClass();
124
		self::assertFalse($closure($stdClass));
125
126
		$types = new Types();
127
		self::assertTrue($closure($types));
128
	}
129
}
130