PHP Class Scalr\Tests\Functional\Api\V2\ApiTest

Since: 5.11 (03.12.2015)
Author: Andrii Penchuk ([email protected])
Show file Open project: scalr/scalr Class Usage Examples

Protected Properties

Property Type Description
$accountSpec Scalr\Tests\Functional\Api\V2\SpecSchema\SpecManager Object generated of Account Api specifications
$adapters Scalr\Api\DataType\ApiEntityAdapter[] List of adapters using in test
$checkScope array Object where should check scope
$data array Test data container for testGetEndpoint()
$dbObjectMapping array Mapping api object name and specific which gives an entity this object Key is object name Value is functions name
$defaultAcl Scalr\Acl\Acl Default test Acl
$filterPropertyMap array Map filterable properties key based on object name in Api definitions
$fullAccessAcl Scalr\Tests\Fixtures\Api\V2\Acl\ApiTestAcl
$ignoreCheckRules array List of objects where should ignore check filterable properties
$maxResults false | integer Max response results
$noAccessAcl PHPUnit_Framework_MockObject_MockObject
$paramMap array Mapping params in path definitions and response objects
$pathMap array Map save structure if object need other data structure key based on object name in Api definitions
$propertyAssertMap array Mapping specifics assert for properties Key is property name Value is functions name
$readOnlyAccessAcl Scalr\Tests\Fixtures\Api\V2\Acl\ApiTestAcl
$simpleFilterRules
$testData array Ids of data generated during the test Destructor clean up data by these ids
$testUserType string Default user type
$userSpec Scalr\Tests\Functional\Api\V2\SpecSchema\SpecManager Object generated of User Api specifications

Public Methods

Method Description
__construct ( $name = null, $data = [], $dataName = null )
assertBuiltinAutomation ( array $filterValue, array $property, string $message ) Custom assert BuiltinAutomation property
assertFilterableProperties ( string $url, ListResponse $apiResp, string $saveDataPath = null ) Assert and check unique filterable properties from requested url
assertGetEndpoint ( string $uri, ListResponse $apiResp, array $filters = [], boolean $collect = true, null | integer $maxResults = null ) : array Return list of Objects available in this account or environment
assertTeams ( object $team, object[] $teams, string $message ) Reports an error if specified team is not present in the list of teams of the Farm obtained by filtration
checkAdapterRules ( ObjectEntity $objectEntity, array $rules ) Check adapter rules
dataApiProvider ( ) : array Data provider for testApi()
dataGetEndpointProvider ( ) : array[] Data provider for testGetEndpoint()
getAdapter ( string $class, ApiController $controller = null ) : ApiEntityAdapter Gets API entity adapter
getEnvironmentEntity ( integer $envId ) : Environment Gets Environment entity
getFilter ( string $class = null, string $property = null, array $values = [] ) : FilterRule Makes the filtering rule for the specified properties of an object
getFixturesDirectory ( )
getGlobalVariable ( string $criteria, array $params ) : array Get GV
setUpBeforeClass ( ) Add test environment, test Acl, setups test user, environment and API key
tearDownAfterClass ( ) Removes API key generated for test
testApi ( string $path, string | Exceptio\Exception $type, string $adapter, string $aclType, string $userType, string $method, integer $responseCode, array $params, array $filterable, array $body ) Test for Api endpoints Data provider prepares data for Api request SpecFile get responses definition from api specifications for each endpoint ResponseBodyConstraint compares Api definition with request
testGetEndpoint ( string $path, string $type ) Test for base user and account Api GET endpoints

Protected Methods

Method Description
getDbObject ( string $objectName, string $criteria, string $entityClass, array $params ) : mixed Get db object
getEnvironmentTeam ( string $criteria, array $params ) : TeamEnvs Gets TeamEnvs entity
getFarmRoleScalingMetrics ( string $criteria, array $params = [] ) : FarmRoleScalingMetric Get FarmRoleScalingMetric entity
getScalingMetric ( string $criteria ) : ScalingMetric Get ScalingMetric entity
getScriptVersion ( string $criteria, array $params ) : Scalr\Model\Entity\ScriptVersion Gets ScriptVersion entity
mapApiResponsePk ( string $path, string $objectName ) : string On the based api endpoint and name api object return primary key If pk don't exist in paramMath throw fail
mapPath ( string $path, string $type ) : Generator Generate url with api endpoint and saved data
matchApiUrl ( string $path, array $params = [] ) : string Match API url params
saveUrlData ( string $url, stdClass $object, string $nameEntity ) Save data for x-usedIn endpoints
setTestAcl ( string $acl ) Set mock acl for test
setUp ( )
setUserType ( string $type ) Set user types for test Some endpoints need extra credentials
tearDown ( )

Method Details

__construct() public method

See also: ApiTestCase::setUpBeforeClass()
public __construct ( $name = null, $data = [], $dataName = null )

assertBuiltinAutomation() public method

Custom assert BuiltinAutomation property
public assertBuiltinAutomation ( array $filterValue, array $property, string $message )
$filterValue array Filter value property
$property array Object property
$message string Assert message

assertFilterableProperties() public method

Assert and check unique filterable properties from requested url
public assertFilterableProperties ( string $url, ListResponse $apiResp, string $saveDataPath = null )
$url string Request uri
$apiResp Scalr\Tests\Functional\Api\V2\SpecSchema\DataTypes\ListResponse Schema current object generated of api specification
$saveDataPath string Save url for child endpoints

assertGetEndpoint() public method

Return list of Objects available in this account or environment
public assertGetEndpoint ( string $uri, ListResponse $apiResp, array $filters = [], boolean $collect = true, null | integer $maxResults = null ) : array
$uri string Request uri
$apiResp Scalr\Tests\Functional\Api\V2\SpecSchema\DataTypes\ListResponse schema current object generated of api specification
$filters array optional Filterable properties
$collect boolean optional Collect response data
$maxResults null | integer optional max list results
return array

assertTeams() public method

Reports an error if specified team is not present in the list of teams of the Farm obtained by filtration
public assertTeams ( object $team, object[] $teams, string $message )
$team object Filter value
$teams object[] Filtering property of the object obtained by filtration
$message string optional Message in case of error

checkAdapterRules() public method

Check adapter rules
public checkAdapterRules ( ObjectEntity $objectEntity, array $rules )
$objectEntity Scalr\Tests\Functional\Api\V2\SpecSchema\DataTypes\ObjectEntity api object entity generated form specs
$rules array list of rules

dataApiProvider() public method

Data provider for testApi()
public dataApiProvider ( ) : array
return array

dataGetEndpointProvider() public method

Data provider for testGetEndpoint()
public dataGetEndpointProvider ( ) : array[]
return array[]

getAdapter() public method

Gets API entity adapter
public getAdapter ( string $class, ApiController $controller = null ) : ApiEntityAdapter
$class string Adapter class
$controller Scalr\Api\Rest\Controller\ApiController optional API Controller
return Scalr\Api\DataType\ApiEntityAdapter

getDbObject() protected method

Get db object
protected getDbObject ( string $objectName, string $criteria, string $entityClass, array $params ) : mixed
$objectName string api object name
$criteria string search criteria
$entityClass string
$params array array params
return mixed

getEnvironmentEntity() public method

Gets Environment entity
public getEnvironmentEntity ( integer $envId ) : Environment
$envId integer environment identifier
return Scalr\Model\Entity\Account\Environment

getEnvironmentTeam() protected method

Gets TeamEnvs entity
protected getEnvironmentTeam ( string $criteria, array $params ) : TeamEnvs
$criteria string search criteria
$params array query params
return Scalr\Model\Entity\Account\TeamEnvs

getFarmRoleScalingMetrics() protected method

Get FarmRoleScalingMetric entity
protected getFarmRoleScalingMetrics ( string $criteria, array $params = [] ) : FarmRoleScalingMetric
$criteria string search criteria
$params array optional query params
return Scalr\Model\Entity\FarmRoleScalingMetric

getFilter() public method

Makes the filtering rule for the specified properties of an object
public getFilter ( string $class = null, string $property = null, array $values = [] ) : FilterRule
$class string optional The object name
$property string optional The property name
$values array optional The array of filter values
return Scalr\Tests\Functional\Api\V2\Iterator\FilterRule

getFixturesDirectory() public method

See also: TestCase::getFixturesDirectory()

getGlobalVariable() public method

Get GV
public getGlobalVariable ( string $criteria, array $params ) : array
$criteria string search criteria
$params array query params
return array

getScalingMetric() protected method

Get ScalingMetric entity
protected getScalingMetric ( string $criteria ) : ScalingMetric
$criteria string search criteria
return Scalr\Model\Entity\ScalingMetric

getScriptVersion() protected method

Gets ScriptVersion entity
protected getScriptVersion ( string $criteria, array $params ) : Scalr\Model\Entity\ScriptVersion
$criteria string search criteria
$params array query params
return Scalr\Model\Entity\ScriptVersion

mapApiResponsePk() protected method

On the based api endpoint and name api object return primary key If pk don't exist in paramMath throw fail
protected mapApiResponsePk ( string $path, string $objectName ) : string
$path string Api endpoint
$objectName string Name object entity from specification
return string

mapPath() protected method

Generate url with api endpoint and saved data
protected mapPath ( string $path, string $type ) : Generator
$path string api endpoint
$type string api specifications type
return Generator

matchApiUrl() protected method

Match API url params
protected matchApiUrl ( string $path, array $params = [] ) : string
$path string Api endpoint
$params array path parameters
return string

saveUrlData() protected method

Save data for x-usedIn endpoints
protected saveUrlData ( string $url, stdClass $object, string $nameEntity )
$url string api url
$object stdClass api object
$nameEntity string name api entity

setTestAcl() protected method

Set mock acl for test
protected setTestAcl ( string $acl )
$acl string Acl type for tests

setUp() protected method

See also: ApiTestCase::setUp()
protected setUp ( )

setUpBeforeClass() public static method

Add test environment, test Acl, setups test user, environment and API key
public static setUpBeforeClass ( )

setUserType() protected method

Set user types for test Some endpoints need extra credentials
protected setUserType ( string $type )
$type string User type

tearDown() protected method

See also: ApiTestCase::tearDown()
protected tearDown ( )

tearDownAfterClass() public static method

Removes API key generated for test
public static tearDownAfterClass ( )

testApi() public method

Test for Api endpoints Data provider prepares data for Api request SpecFile get responses definition from api specifications for each endpoint ResponseBodyConstraint compares Api definition with request
public testApi ( string $path, string | Exceptio\Exception $type, string $adapter, string $aclType, string $userType, string $method, integer $responseCode, array $params, array $filterable, array $body )
$path string Api endpoint
$type string | Exceptio\Exception Api specifications type
$adapter string Adapter name
$aclType string Acl type for test
$userType string UserType for test
$method string HTTP method
$responseCode integer HTTP code
$params array Array of path parameters
$filterable array Array of GET parameters
$body array Array of POST parameters

testGetEndpoint() public method

Test for base user and account Api GET endpoints
public testGetEndpoint ( string $path, string $type )
$path string path from api specifications
$type string api specifications type

Property Details

$accountSpec protected static property

Object generated of Account Api specifications
protected static SpecManager,Scalr\Tests\Functional\Api\V2\SpecSchema $accountSpec
return Scalr\Tests\Functional\Api\V2\SpecSchema\SpecManager

$adapters protected static property

List of adapters using in test
protected static ApiEntityAdapter[],Scalr\Api\DataType $adapters
return Scalr\Api\DataType\ApiEntityAdapter[]

$checkScope protected property

Object where should check scope
protected array $checkScope
return array

$data protected static property

Test data container for testGetEndpoint()
protected static array $data
return array

$dbObjectMapping protected property

Mapping api object name and specific which gives an entity this object Key is object name Value is functions name
protected array $dbObjectMapping
return array

$defaultAcl protected static property

Default test Acl
protected static Acl,Scalr\Acl $defaultAcl
return Scalr\Acl\Acl

$filterPropertyMap protected property

Map filterable properties key based on object name in Api definitions
protected array $filterPropertyMap
return array

$fullAccessAcl protected static property

protected static ApiTestAcl,Scalr\Tests\Fixtures\Api\V2\Acl $fullAccessAcl
return Scalr\Tests\Fixtures\Api\V2\Acl\ApiTestAcl

$ignoreCheckRules protected property

List of objects where should ignore check filterable properties
protected array $ignoreCheckRules
return array

$maxResults protected static property

Max response results
protected static false|int $maxResults
return false | integer

$noAccessAcl protected static property

protected static PHPUnit_Framework_MockObject_MockObject $noAccessAcl
return PHPUnit_Framework_MockObject_MockObject

$paramMap protected property

Mapping params in path definitions and response objects
protected array $paramMap
return array

$pathMap protected property

Map save structure if object need other data structure key based on object name in Api definitions
protected array $pathMap
return array

$propertyAssertMap protected property

Mapping specifics assert for properties Key is property name Value is functions name
protected array $propertyAssertMap
return array

$readOnlyAccessAcl protected static property

protected static ApiTestAcl,Scalr\Tests\Fixtures\Api\V2\Acl $readOnlyAccessAcl
return Scalr\Tests\Fixtures\Api\V2\Acl\ApiTestAcl

$simpleFilterRules protected property

protected $simpleFilterRules

$testData protected static property

Ids of data generated during the test Destructor clean up data by these ids
protected static array $testData
return array

$testUserType protected static property

Default user type
protected static string $testUserType
return string

$userSpec protected static property

Object generated of User Api specifications
protected static SpecManager,Scalr\Tests\Functional\Api\V2\SpecSchema $userSpec
return Scalr\Tests\Functional\Api\V2\SpecSchema\SpecManager