/** * Sets current model. * * Appends validator data model, runs sometimes closures. * * @param array $data Data model to be validated. * @param bool $isNew Flag that shows of model is new or being updated. * * @return $this */ public function setModel(array $data = [], $isNew = true) { $this->data = $data; $this->validator = new \Illuminate\Validation\Validator($this->translator, $this->data, $this->getRules($isNew), $this->getMessages()); $this->validator->setPresenceVerifier($this->presenceVerifier); $this->sometimes($this->validator, $isNew); return $this; }
public function testValidationExists() { $trans = $this->getRealTranslator(); $v = new Validator($trans, array('email' => 'foo'), array('email' => 'Exists:users')); $mock = m::mock('Illuminate\\Validation\\PresenceVerifierInterface'); $mock->shouldReceive('getCount')->once()->with('users', 'email', 'foo')->andReturn(true); $v->setPresenceVerifier($mock); $this->assertTrue($v->passes()); $v = new Validator($trans, array('email' => 'foo'), array('email' => 'Exists:users,email_addr')); $mock2 = m::mock('Illuminate\\Validation\\PresenceVerifierInterface'); $mock2->shouldReceive('getCount')->once()->with('users', 'email_addr', 'foo')->andReturn(false); $v->setPresenceVerifier($mock2); $this->assertFalse($v->passes()); $v = new Validator($trans, array('email' => array('foo')), array('email' => 'Exists:users,email_addr')); $mock3 = m::mock('Illuminate\\Validation\\PresenceVerifierInterface'); $mock3->shouldReceive('getMultiCount')->once()->with('users', 'email_addr', array('foo'))->andReturn(false); $v->setPresenceVerifier($mock3); $this->assertFalse($v->passes()); }