private function assertDirtifies($method)
 {
     $model = new Author();
     $datetime = new DateTime();
     $datetime->attributeOf($model, 'some_date');
     $args = func_get_args();
     array_shift($args);
     call_user_func_array(array($datetime, $method), $args);
     $this->assertHasKeys('some_date', $model->dirtyAttributes());
 }
Example #2
0
 private function assertDirtifies($method)
 {
     try {
         $model = new Author();
     } catch (ExceptionDatabase $e) {
         $this->markTestSkipped('failed to connect. ' . $e->getMessage());
     }
     $datetime = new DateTime();
     $datetime->attributeOf($model, 'some_date');
     $args = \func_get_args();
     \array_shift($args);
     \call_user_func_array(array($datetime, $method), $args);
     $this->assertArrayHasKeys('some_date', $model->dirtyAttributes());
 }
Example #3
0
 /**
  * Assign a value to an attribute.
  *
  * @param string $name Name of the attribute
  * @param mixed &$value Value of the attribute
  * @return mixed the attribute value
  */
 public function assignAttribute($name, $value)
 {
     $table = static::table();
     if (!\is_object($value)) {
         if (\array_key_exists($name, $table->columns)) {
             $value = $table->columns[$name]->cast($value, static::connection());
         } else {
             $col = $table->getColumnByInflectedName($name);
             if (!\is_null($col)) {
                 $value = $col->cast($value, static::connection());
             }
         }
     }
     // convert php's \DateTime to ours
     if ($value instanceof \DateTime) {
         $value = new DateTime($value->format('Y-m-d H:i:s T'), $value->getTimezone());
     }
     // make sure DateTime values know what model they belong to so
     // dirty stuff works when calling set methods on the DateTime object
     if ($value instanceof DateTime) {
         $value->attributeOf($this, $name);
     }
     $this->attributes[$name] = $value;
     $this->flagDirty($name);
     return $value;
 }