Scalr\Tests\Functional\Api\ApiTestCase::createEntity PHP Метод

createEntity() публичный статический Метод

Creates and save entity to DB, keeps entity to delete after test
public static createEntity ( AbstractEntity $entity, array $data, array $requiredData = null ) : AbstractEntity
$entity Scalr\Model\AbstractEntity Entity instance
$data array Properties to initialize
$requiredData array The list of names properties which should be save and initialize after delete
Результат Scalr\Model\AbstractEntity
    public static function createEntity(AbstractEntity $entity, array $data, array $requiredData = null)
    {
        if (!empty($data)) {
            $it = $entity->getIterator();
            foreach ($data as $prop => $value) {
                if ($it->getField($prop)) {
                    $entity->{$prop} = $value;
                } else {
                    throw new InvalidArgumentException(sprintf("Field %s does not exist in %s entity.", $prop, get_class($entity)));
                }
            }
        }
        $initProperties = [];
        if (!empty($requiredData)) {
            foreach ($requiredData as $prop) {
                if (isset($data[$prop])) {
                    $initProperties[$prop] = $data[$prop];
                } else {
                    throw new InvalidArgumentException(sprintf("Field %s does not exist in data.", $prop));
                }
            }
        }
        $entity->save();
        $key = [];
        foreach ($entity->getIterator()->getPrimaryKey() as $position => $property) {
            $key[$position] = $entity->{$property};
        }
        static::toDelete(get_class($entity), $key, $initProperties);
        return $entity;
    }