@@ -103,15 +103,23 @@ public function testClassBasename()
103
103
public function testWhen ()
104
104
{
105
105
$ this ->assertEquals ('Hello ' , when (true , 'Hello ' ));
106
- $ this ->assertEquals ( null , when (false , 'Hello ' ));
106
+ $ this ->assertNull ( when (false , 'Hello ' ));
107
107
$ this ->assertEquals ('There ' , when (1 === 1 , 'There ' )); // strict types
108
108
$ this ->assertEquals ('There ' , when (1 == '1 ' , 'There ' )); // loose types
109
- $ this ->assertEquals ( null , when (1 == 2 , 'There ' ));
110
- $ this ->assertEquals ( null , when ('1 ' , fn () => null ));
111
- $ this ->assertEquals ( null , when (0 , fn () => null ));
109
+ $ this ->assertNull ( when (1 == 2 , 'There ' ));
110
+ $ this ->assertNull ( when ('1 ' , fn () => null ));
111
+ $ this ->assertNull ( when (0 , fn () => null ));
112
112
$ this ->assertEquals ('True ' , when ([1 , 2 , 3 , 4 ], 'True ' )); // Array
113
- $ this ->assertEquals ( null , when ([], 'True ' )); // Empty Array = Falsy
113
+ $ this ->assertNull ( when ([], 'True ' )); // Empty Array = Falsy
114
114
$ this ->assertEquals ('True ' , when (new StdClass , fn () => 'True ' )); // Object
115
+ $ this ->assertEquals ('World ' , when (false , 'Hello ' , 'World ' ));
116
+ $ this ->assertEquals ('World ' , when (1 === 0 , 'Hello ' , 'World ' )); // strict types
117
+ $ this ->assertEquals ('World ' , when (1 == '0 ' , 'Hello ' , 'World ' )); // loose types
118
+ $ this ->assertNull (when ('' , fn () => 'There ' , fn () => null ));
119
+ $ this ->assertNull (when (0 , fn () => 'There ' , fn () => null ));
120
+ $ this ->assertEquals ('False ' , when ([], 'True ' , 'False ' )); // Empty Array = Falsy
121
+ $ this ->assertTrue (when (true , fn ($ value ) => $ value , fn ($ value ) => ! $ value )); // lazy evaluation
122
+ $ this ->assertTrue (when (false , fn ($ value ) => $ value , fn ($ value ) => ! $ value )); // lazy evaluation
115
123
}
116
124
117
125
public function testFilled ()
0 commit comments