/** * Test __invoke method. */ public function testInvoke() { $this->given($closure = function ($value = null) { return $value; })->when($delegate = Delegate::fromClosure($closure))->then()->variable($delegate(5))->isEqualTo(5)->given($delegate = Delegate::fromMethod($this, 'sampleMethod'))->then()->variable($delegate('text'))->isEqualTo('text-sufix')->given($delegate = Delegate::fromStaticMethod(self::class, 'sampleStaticMethod'))->then()->variable($delegate('text'))->isEqualTo('text-sufix')->given($delegate = Delegate::fromFunction('array_filter'))->then()->array($delegate(['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5], function ($value) { return $value % 2 === 0; }))->isEqualTo(['b' => 2, 'd' => 4]); }