public function testAlternative() { V::validate('foo', V::alternative()->any(V::string()->valid('foo'), V::boolean()), function ($err, $output) { $this->assertNull($err); $this->assertEquals('foo', $output); }); V::validate(true, V::alternative()->any(V::string()->valid('foo'), V::boolean()), function ($err, $output) { $this->assertNull($err); $this->assertTrue(true, $output); }); V::validate(null, V::alternative()->any(V::string()->valid('foo'), V::boolean()), function ($err, $output) { $this->assertEquals('none of the alternatives matched', $err); $this->assertNull($output); }); }
/** * @return AbstractSchema */ public function getOptionsSchema() { return V::arr()->keys(['search' => V::alternative(V::string()->min(1), V::arr()->notEmpty()), 'replace' => V::alternative(V::string(), V::arr()->notEmpty())]); }