testNotValid(); $this->testValid(); } public function testNotValid(): void { $resolver = new OptionsResolver([ Option::mixed('action')->validator(static function ($value) { return filter_var($value, FILTER_VALIDATE_URL) !== false; }), Option::mixed('method')->setOptional('POST'), ]); $this->expectException(\InvalidArgumentException::class, function () use ($resolver) { $resolver->resolve([ 'action' => null, ]); }); } public function testValid(): void { $resolver = new OptionsResolver([ Option::mixed('action')->validator(static function ($value) { return filter_var($value, FILTER_VALIDATE_URL) !== false; }), Option::mixed('method')->setOptional('POST'), ]); $options = $resolver->resolve([ 'action' => 'https://www.depohub.org', ]); $this->assertStrictEquals($options, ['action' => 'https://www.depohub.org', 'method' => 'POST']); } }