Example #1
0
 /**
  * check data validation
  */
 public function testDataValidation()
 {
     $object = new Object();
     $data = ['data_first' => 'first data', 'data_second' => 'second data', 'data_third' => 'third data', 'data_fourth' => null];
     $object->putValidationRule('#data_first#', '#^[\\d]+$#');
     $object->putValidationRule('#data_second#', '#[\\w]*#');
     $object->putValidationRule('#data_(third|fourth)#', function ($key, $data) {
         if (is_null($data)) {
             return true;
         }
         return false;
     });
     $this->assertEquals('#^[\\d]+$#', $object->returnValidationRule('#data_first#'));
     $this->assertNull($object->returnValidationRule('none_existing_rule'));
     $object->stopValidation();
     $object->set($data);
     $this->assertFalse($object->checkErrors());
     $object->startValidation();
     $object->set($data);
     $this->assertTrue($object->checkErrors());
     $this->assertEquals($object->returnObjectError()[0], ["message" => "validation_mismatch", "key" => "data_first", "data" => "first data", "rule" => "#^[\\d]+\$#"]);
     $this->assertEquals($object->returnObjectError()[1]['message'], 'validation_mismatch');
     $this->assertEquals($object->returnObjectError()[1]['key'], 'data_third');
     $this->assertEquals($object->returnObjectError()[1]['data'], 'third data');
     $this->assertCount(2, $object->returnObjectError());
     $object->removeValidationRule();
     $this->assertNull($object->returnValidationRule('#data_first#'));
 }