| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- <?php
- namespace Test\Michel\Resolver;
- use Michel\Resolver\Option;
- use Michel\Resolver\OptionsResolver;
- use Michel\UniTester\TestCase;
- class ValidateOptionsTest extends TestCase
- {
- protected function setUp(): void
- {
- // TODO: Implement setUp() method.
- }
- protected function tearDown(): void
- {
- // TODO: Implement tearDown() method.
- }
- protected function execute(): void
- {
- $this->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']);
- }
- }
|