Scalr\Tests\Functional\Api\V2\TestData\ApiFixture::loadData PHP Method

loadData() public static method

Generate data for ApiTest
public static loadData ( string $fixtures, string $type ) : array
$fixtures string patch to fixtures directory
$type string api specifications type
return array
    public static function loadData($fixtures, $type)
    {
        // set config
        static::$testUserId = \Scalr::config('scalr.phpunit.apiv2.userid');
        static::$user = User::findPk(static::$testUserId);
        static::$testEnvId = \Scalr::config('scalr.phpunit.apiv2.envid');
        static::$env = Environment::findPk(static::$testEnvId);
        $data = [];
        foreach (new ApiFixtureIterator(new DirectoryIterator($fixtures), $type) as $fileInfo) {
            $class = __NAMESPACE__ . '\\' . ucfirst($fileInfo->getBasename('.yaml'));
            try {
                /* @var $object ApiFixture */
                $object = new $class(Yaml::load($fileInfo->getPathname())->toArray(), $type);
                $object->prepareTestData();
                $pathInfo = $object->preparePathInfo();
            } catch (Exception $e) {
                $pathInfo = [array_merge([$class, $e, null, null, null], static::$defaultOperation)];
            }
            $data = array_merge($data, $pathInfo);
        }
        return $data;
    }

Usage Example

示例#1
0
文件: ApiTest.php 项目: scalr/scalr
 /**
  * Data provider for testApi()
  *
  * @return array
  */
 public function dataApiProvider()
 {
     if (Scalr::getContainer()->config->defined('scalr.phpunit.apiv2')) {
         $userData = ApiFixture::loadData($this->getFixturesDirectory() . 'Paths/User', 'user');
         $accountData = ApiFixture::loadData($this->getFixturesDirectory() . 'Paths/Account', 'account');
         $data = array_merge($userData, $accountData);
         if (empty($data)) {
             $this->markTestIncomplete('No test data');
         }
         return $data;
     }
     $this->markTestIncomplete('phpunit apiv2 configurations is invalid');
 }