private function commonQuery()
 {
     $sql = "SELECT COUNT(*) FROM `{$this->table}` WHERE {$this->field} =:v";
     $db = Validator::getPDO();
     $stmt = $db->prepare($sql);
     $stmt->bindParam(':v', $this->value, PDO::PARAM_STR);
     $stmt->execute();
     return $stmt;
 }
 public function testAllNewMessagesMethodsAndMagicFields()
 {
     $v = V::make(['firstName' => 'Armin1', 'lastName' => 'Buuren2', 'userEmail' => 'bob.bob.not-email.com', 'age' => 'sercet!!1', 'valids' => ['YES', 'Yep']], ['firstName, lastName' => 'alpha', 'userEmail' => 'email', 'age' => 'numeric|min:16', 'valids[0], valids[1]' => 'required|alpha'], ['firstName.alpha' => 'non-alpha-1', 'lastName.alpha' => 'non-alpha-2', 'age.numeric' => 'NaN', 'userEmail.email' => 'NaE']);
     //basic test
     $this->assertFalse($v->passes());
     $this->assertEquals($v->first(), 'non-alpha-1');
     $this->assertCount(4, $v->firsts());
     //firsts error messages 4
     $this->assertCount(5, $v->messages());
     // all count of messages 5
     $this->assertCount(4, $v->raw());
     //also has 4 elements for each rule
     //magic test
     $this->assertEquals('non-alpha-1', $v->firstName->first());
     $this->assertEquals('non-alpha-2', $v->lastName->first());
     $this->assertEquals('NaN', $v->age->first());
     $this->assertEquals('NaE', $v->userEmail->first());
     $this->assertContains('non-alpha-2', $v->lastName->messages());
     $this->assertContains('NaN', $v->age->messages());
     $v->add('bob', 'Hello!');
     $this->assertTrue($v->lastName->fails());
     $this->assertFalse($v->lastName->passes());
     $this->assertEquals('Hello!', $v->bob->first());
 }
 public function testIsUniqueEmail()
 {
     $validator = V::make(['email' => '*****@*****.**'], ['email' => 'unique:users'], ['email.unique' => 'nonunique']);
     $this->assertTrue($validator->passes());
     $this->assertEmpty($validator->messages('email'));
 }