public function testMakeMethodCreatesValidValidator() { $translator = m::mock('Symfony\\Component\\Translation\\TranslatorInterface'); $factory = new Factory($translator); $validator = $factory->make(array('foo' => 'bar'), array('baz' => 'boom')); $this->assertEquals($translator, $validator->getTranslator()); $this->assertEquals(array('foo' => 'bar'), $validator->getData()); $this->assertEquals(array('baz' => array('boom')), $validator->getRules()); $presence = m::mock('Illuminate\\Validation\\PresenceVerifierInterface'); $noop1 = function () { }; $noop2 = function () { }; $noop3 = function () { }; $factory->extend('foo', $noop1); $factory->extendImplicit('implicit', $noop2); $factory->replacer('replacer', $noop3); $factory->setPresenceVerifier($presence); $validator = $factory->make(array(), array()); $this->assertEquals(array('foo' => $noop1, 'implicit' => $noop2), $validator->getExtensions()); $this->assertEquals(array('replacer' => $noop3), $validator->getReplacers()); $this->assertEquals($presence, $validator->getPresenceVerifier()); $presence = m::mock('Illuminate\\Validation\\PresenceVerifierInterface'); $factory->extend('foo', $noop1, 'foo!'); $factory->extendImplicit('implicit', $noop2, 'implicit!'); $factory->setPresenceVerifier($presence); $validator = $factory->make(array(), array()); $this->assertEquals(array('foo' => $noop1, 'implicit' => $noop2), $validator->getExtensions()); $this->assertEquals(array('foo' => 'foo!', 'implicit' => 'implicit!'), $validator->getFallbackMessages()); $this->assertEquals($presence, $validator->getPresenceVerifier()); }
/** * Register the validation factory. * * @return void */ protected function registerValidationFactory() { $this->app->singleton('validator', function ($app) { $validator = new Factory($app['translator'], $app); // The validation presence verifier is responsible for determining the existence // of values in a given data collection, typically a relational database or // other persistent data stores. And it is used to check for uniqueness. if (isset($app['validation.presence'])) { $validator->setPresenceVerifier($app['validation.presence']); } return $validator; }); }