2222
2323class CastTest extends TestCase
2424{
25- public function testToInt (): void
25+ public function testToInt ()
2626 {
2727 $ this ->assertSame (0 , Cast::toInt (0 ));
2828 $ this ->assertSame (1 , Cast::toInt (1 ));
@@ -35,30 +35,57 @@ public function testToInt(): void
3535 $ this ->assertSame (0 , Cast::toInt (false ));
3636 $ this ->assertSame (1 , Cast::toInt (true ));
3737
38- $ this ->assertTypeError (fn () => Cast::toInt ('' ));
39- $ this ->assertTypeError (fn () => Cast::toInt ('a ' ));
40- $ this ->assertTypeError (fn () => Cast::toInt ('ok ' ));
41- $ this ->assertTypeError (fn () => Cast::toInt ('true ' ));
42- $ this ->assertTypeError (fn () => Cast::toInt ('null ' ));
43- $ this ->assertTypeError (fn () => Cast::toInt (null ));
44- $ this ->assertTypeError (fn () => Cast::toInt ([]));
45- $ this ->assertTypeError (fn () => Cast::toInt ((object )[]));
46- $ this ->assertTypeError (fn () => Cast::toInt (PHP_INT_MAX + 1 ));
47- $ this ->assertTypeError (fn () => Cast::toInt (-9223372036854776833 ));
38+ $ this ->assertTypeError (function () {
39+ return Cast::toInt ('' );
40+ });
41+ $ this ->assertTypeError (function () {
42+ return Cast::toInt ('a ' );
43+ });
44+ $ this ->assertTypeError (function () {
45+ return Cast::toInt ('ok ' );
46+ });
47+ $ this ->assertTypeError (function () {
48+ return Cast::toInt ('true ' );
49+ });
50+ $ this ->assertTypeError (function () {
51+ return Cast::toInt ('null ' );
52+ });
53+ $ this ->assertTypeError (function () {
54+ return Cast::toInt (null );
55+ });
56+ $ this ->assertTypeError (function () {
57+ return Cast::toInt ([]);
58+ });
59+ $ this ->assertTypeError (function () {
60+ return Cast::toInt ((object )[]);
61+ });
62+ $ this ->assertTypeError (function () {
63+ return Cast::toInt (PHP_INT_MAX + 1 );
64+ });
65+ $ this ->assertTypeError (function () {
66+ return Cast::toInt (-9223372036854776833 );
67+ });
4868
4969 try {
5070 Cast::toInt ('123abc ' );
5171 } catch (\Throwable $ e ) {
5272 }
53- $ this ->assertTrue (isset ($ e ));
54- $ this ->assertInstanceOf (TypeError::class, $ e );
55- $ this ->assertInstanceOf (Exception::class, $ e ->getPrevious ());
56- $ this ->assertSame ('A non well formed numeric value encountered ' , $ e ->getPrevious ()->getMessage ());
73+ if (version_compare (PHP_VERSION , '7.1.0 ' ) >= 0 ) {
74+ $ this ->assertTrue (isset ($ e ));
75+ if (version_compare (PHP_VERSION , '7.4.0 ' ) >= 0 ) {
76+ $ this ->assertInstanceOf (TypeError::class, $ e );
77+ $ this ->assertInstanceOf (Exception::class, $ e ->getPrevious ());
78+ $ this ->assertSame ('A non well formed numeric value encountered ' , $ e ->getPrevious ()->getMessage ());
79+ } else {
80+ $ this ->assertInstanceOf (Exception::class, $ e );
81+ $ this ->assertSame ('A non well formed numeric value encountered ' , $ e ->getMessage ());
82+ }
83+ }
5784 $ result = @Cast::toInt ('123abc ' );
5885 $ this ->assertSame (123 , $ result );
5986 }
6087
61- public function testToFloat (): void
88+ public function testToFloat ()
6289 {
6390 $ this ->assertSame (0.0 , Cast::toFloat (0 ));
6491 $ this ->assertSame (1.0 , Cast::toFloat (1 ));
@@ -73,17 +100,33 @@ public function testToFloat(): void
73100 $ this ->assertSame (PHP_INT_MAX + 1 , Cast::toFloat (PHP_INT_MAX + 1 ));
74101 $ this ->assertSame (-9223372036854776833 , Cast::toFloat (-9223372036854776833 ));
75102
76- $ this ->assertTypeError (fn () => Cast::toFloat ('' ));
77- $ this ->assertTypeError (fn () => Cast::toFloat ('a ' ));
78- $ this ->assertTypeError (fn () => Cast::toFloat ('ok ' ));
79- $ this ->assertTypeError (fn () => Cast::toFloat ('true ' ));
80- $ this ->assertTypeError (fn () => Cast::toFloat ('null ' ));
81- $ this ->assertTypeError (fn () => Cast::toFloat (null ));
82- $ this ->assertTypeError (fn () => Cast::toFloat ([]));
83- $ this ->assertTypeError (fn () => Cast::toFloat ((object )[]));
103+ $ this ->assertTypeError (function () {
104+ return Cast::toFloat ('' );
105+ });
106+ $ this ->assertTypeError (function () {
107+ return Cast::toFloat ('a ' );
108+ });
109+ $ this ->assertTypeError (function () {
110+ return Cast::toFloat ('ok ' );
111+ });
112+ $ this ->assertTypeError (function () {
113+ return Cast::toFloat ('true ' );
114+ });
115+ $ this ->assertTypeError (function () {
116+ return Cast::toFloat ('null ' );
117+ });
118+ $ this ->assertTypeError (function () {
119+ return Cast::toFloat (null );
120+ });
121+ $ this ->assertTypeError (function () {
122+ return Cast::toFloat ([]);
123+ });
124+ $ this ->assertTypeError (function () {
125+ return Cast::toFloat ((object )[]);
126+ });
84127 }
85128
86- public function testToString (): void
129+ public function testToString ()
87130 {
88131 $ this ->assertSame ('0 ' , Cast::toString (0 ));
89132 $ this ->assertSame ('1 ' , Cast::toString (1 ));
@@ -106,12 +149,18 @@ public function __toString()
106149 )
107150 );
108151
109- $ this ->assertTypeError (fn () => Cast::toString (null ));
110- $ this ->assertTypeError (fn () => Cast::toString ([]));
111- $ this ->assertTypeError (fn () => Cast::toString ((object )[]));
152+ $ this ->assertTypeError (function () {
153+ return Cast::toString (null );
154+ });
155+ $ this ->assertTypeError (function () {
156+ return Cast::toString ([]);
157+ });
158+ $ this ->assertTypeError (function () {
159+ return Cast::toString ((object )[]);
160+ });
112161 }
113162
114- public function testToBool (): void
163+ public function testToBool ()
115164 {
116165 $ this ->assertFalse (Cast::toBool (0 ));
117166 $ this ->assertTrue (Cast::toBool (1 ));
@@ -130,12 +179,18 @@ public function testToBool(): void
130179 $ this ->assertTrue (Cast::toBool ('true ' ));
131180 $ this ->assertTrue (Cast::toBool ('null ' ));
132181
133- $ this ->assertTypeError (fn () => Cast::toBool (null ));
134- $ this ->assertTypeError (fn () => Cast::toBool ([]));
135- $ this ->assertTypeError (fn () => Cast::toBool ((object )[]));
182+ $ this ->assertTypeError (function () {
183+ return Cast::toBool (null );
184+ });
185+ $ this ->assertTypeError (function () {
186+ return Cast::toBool ([]);
187+ });
188+ $ this ->assertTypeError (function () {
189+ return Cast::toBool ((object )[]);
190+ });
136191 }
137192
138- private function assertTypeError (callable $ func ): void
193+ private function assertTypeError (callable $ func )
139194 {
140195 try {
141196 $ func ();
0 commit comments