Пример #1
0
 /**
  * Validates an object
  *
  * @param stdClass           $element object properties
  * @param AbstractSpecObject $schema  schema this object generated of api specification
  */
 protected function checkObject($element, $schema)
 {
     if (isset($schema->sample)) {
         $this->checkSample($element, $schema->sample);
         return;
     }
     if (isset($schema->discriminator)) {
         $discriminator = $schema->discriminator;
         if (!property_exists($element, $discriminator)) {
             $propName = $schema->getObjectName();
             if (isset(static::$ignoreDiscriminatorValues[$propName]) && $discriminator == static::$ignoreDiscriminatorValues[$propName]) {
                 ApiTest::markTestIncomplete(sprintf('%s unexpected discriminator value', $discriminator));
             } else {
                 $this->appendError($discriminator, ' unexpected discriminator value');
             }
             return;
         }
         $schema = $this->getConcreteTypes($schema, $element->{$discriminator});
         if (!$schema) {
             $this->appendError($element->{$discriminator}, ' unexpected concrete type value');
         }
         unset($schema->discriminator);
         $this->check($element, $schema);
         return;
     }
     $properties = $schema instanceof ApiEntity ? $schema->getProperties() : (array) $schema;
     foreach ($element as $p => $value) {
         if (isset($properties[$p])) {
             $this->check($value, $properties[$p]);
         } else {
             $this->appendError($p, "this property don't exist in Api specifications");
         }
     }
     return;
 }
Пример #2
0
 /**
  * Creates and save RoleImage entity  with data from fixtures
  *
  * @param string $name      Role category data name
  */
 protected function prepareRoleImage($name)
 {
     foreach ($this->sets[$name] as &$roleImageData) {
         if (in_array($roleImageData['platform'], [SERVER_PLATFORMS::GCE, SERVER_PLATFORMS::AZURE])) {
             $roleImageData['cloudLocation'] = '';
         }
         /* @var $image  Entity\Image */
         $image = Entity\Image::findOne([['cloudLocation' => $roleImageData['cloudLocation']], ['platform' => $roleImageData['platform']], ['$or' => [['accountId' => static::$user->getAccountId()], ['accountId' => null]]]]);
         if (empty($image)) {
             ApiTest::markTestIncomplete(sprintf('Image with cloudLocation %s and platform %s not isset', $roleImageData['cloudLocation'], $roleImageData['platform']));
         }
         $roleImageData['imageId'] = $image->id;
         ApiTest::createEntity(new Entity\RoleImage(), $roleImageData);
     }
 }