File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 33namespace Vector \Data \Maybe ;
44
55use Vector \Core \Module ;
6+ use Vector \Typeclass \MonadInterface ;
67use Vector \Typeclass \SimpleApplicativeDefault ;
78use Vector \Typeclass \SimpleFunctorDefault ;
89use Vector \Typeclass \SimpleMonadDefault ;
9- use Vector \Typeclass \MonadInterface ;
1010
1111/**
1212 * @method static callable just($value)
Original file line number Diff line number Diff line change 44
55use Exception ;
66use Vector \Core \Module ;
7+ use Vector \Typeclass \MonadInterface ;
78use Vector \Typeclass \SimpleApplicativeDefault ;
89use Vector \Typeclass \SimpleFunctorDefault ;
910use Vector \Typeclass \SimpleMonadDefault ;
10- use Vector \Typeclass \MonadInterface ;
1111
1212/**
1313 * @method static callable ok($value)
Original file line number Diff line number Diff line change @@ -178,6 +178,25 @@ public function it_can_match_arity_on_custom_objects()
178178 $ this ->assertEquals ('ok ' , $ match (new TestObject (), new TestObject ()));
179179 }
180180
181+ /** @test */
182+ public function it_uses_first_match_arity_on_optional_params ()
183+ {
184+ $ matchTest1 = Pattern::match ([
185+ fn (TestObject $ object ) => 'first ' ,
186+ fn (TestObject $ object , ?TestObject $ object2 ) => 'second ' ,
187+ fn (TestObject $ object , TestObject $ object2 = null ) => 'third ' ,
188+ ]);
189+
190+ $ matchTest2 = Pattern::match ([
191+ fn (TestObject $ object ) => 'first ' ,
192+ fn (TestObject $ object , TestObject $ object2 = null ) => 'second ' ,
193+ fn (TestObject $ object , TestObject $ object2 ) => 'third ' ,
194+ ]);
195+
196+ $ this ->assertEquals ('second ' , $ matchTest1 (new TestObject (), new TestObject ()));
197+ $ this ->assertEquals ('second ' , $ matchTest2 (new TestObject (), new TestObject ()));
198+ }
199+
181200 /** @test */
182201 function throws_on_no_matching_pattern ()
183202 {
Original file line number Diff line number Diff line change 33namespace Vector \Test \Core ;
44
55use PHPUnit \Framework \TestCase ;
6- use Vector \Core \Module ;
76use Vector \Core \Exception \FunctionNotFoundException ;
7+ use Vector \Core \Module ;
88use Vector \Test \Core \Stub \TestFunctions ;
99
1010class ModuleTest extends TestCase
Original file line number Diff line number Diff line change 33namespace Vector \Test \Lib ;
44
55use PHPUnit \Framework \TestCase ;
6+ use Vector \Core \Exception \ElementNotFoundException ;
67use Vector \Core \Exception \EmptyListException ;
78use Vector \Core \Exception \IndexOutOfBoundsException ;
8- use Vector \Core \Exception \ElementNotFoundException ;
99use Vector \Lib \Arrays ;
1010
1111class ArraysTest extends TestCase
You can’t perform that action at this time.
0 commit comments