Example #1
0
 /**
  * check validation rules when add data to collection on object creation
  *
  * @requires _exampleCollectionObject
  */
 public function testCreateCollectionWithValidation()
 {
     $data = $this->_exampleCollection();
     $validationRules = ['rule_1' => function ($index, $value) {
         if (is_string($value)) {
             return $value === 'lorem ipsum';
         }
         return true;
     }, 'rule_2' => function ($index, $value) {
         if (is_array($value) || is_object($value)) {
             return isset($value['data_second']);
         }
         return true;
     }];
     $collection = new Collection(['data' => $data, 'validation' => $validationRules]);
     $this->assertFalse($collection->checkErrors());
     $this->assertEmpty($collection->returnObjectError());
     $validationRules = ['rule_1' => function ($index, $value) {
         if (is_string($value)) {
             return $value === 'lorem ipsum dolor';
         }
         return true;
     }];
     $collection = new Collection(['data' => $data, 'validation' => $validationRules]);
     $this->assertTrue($collection->checkErrors());
     $this->assertNull($collection->returnObjectError()[0]['index']);
     $this->assertEquals('validation_mismatch', $collection->returnObjectError()[0]['message']);
 }