diff options
| author | Loic GUEGAN <loic@Manzerbredes.home> | 2016-04-16 19:10:27 +0200 |
|---|---|---|
| committer | Loic GUEGAN <loic@Manzerbredes.home> | 2016-04-16 19:10:27 +0200 |
| commit | a3ff4d243e2ac37d4516ae56ff86985eadc00eb8 (patch) | |
| tree | 32e71c42855cc46d95d9c6b74ad2c145eb9ec7eb /server/vendor/php-opencloud/common/tests/unit/Common/Resource/AbstractResourceTest.php | |
| parent | 396c90f921c30de2d15d2ce52d5d1beabf8eb52d (diff) | |
| parent | 31d2d0c158ad4daa3dde7a905f3c2e312c194f2e (diff) | |
Test
Diffstat (limited to 'server/vendor/php-opencloud/common/tests/unit/Common/Resource/AbstractResourceTest.php')
| -rwxr-xr-x | server/vendor/php-opencloud/common/tests/unit/Common/Resource/AbstractResourceTest.php | 161 |
1 files changed, 0 insertions, 161 deletions
diff --git a/server/vendor/php-opencloud/common/tests/unit/Common/Resource/AbstractResourceTest.php b/server/vendor/php-opencloud/common/tests/unit/Common/Resource/AbstractResourceTest.php deleted file mode 100755 index f334292..0000000 --- a/server/vendor/php-opencloud/common/tests/unit/Common/Resource/AbstractResourceTest.php +++ /dev/null @@ -1,161 +0,0 @@ -<?php - -namespace OpenCloud\Test\Common\Resource; - -use function GuzzleHttp\Psr7\stream_for; -use GuzzleHttp\Psr7\Response; -use OpenCloud\Common\Resource\AbstractResource; -use OpenCloud\Common\Resource\Generator; -use OpenCloud\Test\Fixtures\ComputeV2Api; -use OpenCloud\Test\TestCase; -use Prophecy\Argument; - -class AbstractResourceTest extends TestCase -{ - private $resource; - - public function setUp() - { - parent::setUp(); - - $this->rootFixturesDir = __DIR__; - $this->resource = new TestResource($this->client->reveal(), new ComputeV2Api()); - } - - public function test_it_populates_from_response() - { - $response = new Response(200, ['Content-Type' => 'application/json'], stream_for( - json_encode(['foo' => ['bar' => '1']]) - )); - - $this->resource->populateFromResponse($response); - - $this->assertEquals('1', $this->resource->bar); - } - - public function test_it_populates_datetimes_from_arrays() - { - $dt = new \DateTimeImmutable('2015'); - - $this->resource->populateFromArray(['created' => '2015']); - - $this->assertEquals($this->resource->created, $dt); - } - - public function test_it_populates_arrays_from_arrays() - { - $this->resource->populateFromArray(['children' => [$this->resource, $this->resource]]); - - $this->assertInstanceOf(TestResource::class, $this->resource->children[0]); - } - - public function test_it_gets_attrs() - { - $this->resource->bar = 'foo'; - - $this->assertEquals(['bar' => 'foo'], $this->resource->getAttrs(['bar'])); - } - - public function test_it_executes_with_state() - { - $this->resource->id = 'foo'; - $this->resource->bar = 'bar'; - - $expectedJson = ['id' => 'foo', 'bar' => 'bar']; - - $this->setupMock('GET', 'foo', $expectedJson, [], new Response(204)); - - $this->resource->executeWithState((new ComputeV2Api())->test()); - } - - public function test_it_executes_operations_until_a_204_is_received() - { - $this->client - ->request('GET', 'servers', ['headers' => []]) - ->shouldBeCalled() - ->willReturn($this->getFixture('servers-page1')); - - $this->client - ->request('GET', 'servers', ['query' => ['marker' => '5'], 'headers' => []]) - ->shouldBeCalled() - ->willReturn(new Response(204)); - - $count = 0; - - $api = new ComputeV2Api(); - - foreach ($this->resource->enumerate($api->getServers()) as $item) { - $count++; - $this->assertInstanceOf(TestResource::class, $item); - } - - $this->assertEquals(5, $count); - } - - public function test_it_invokes_function_if_provided() - { - $this->client - ->request('GET', 'servers', ['headers' => []]) - ->shouldBeCalled() - ->willReturn($this->getFixture('servers-page1')); - - $this->client - ->request('GET', 'servers', ['query' => ['marker' => '5'], 'headers' => []]) - ->shouldBeCalled() - ->willReturn(new Response(204)); - - $api = new ComputeV2Api(); - - $count = 0; - - $fn = function () use (&$count) { - $count++; - }; - - foreach ($this->resource->enumerate($api->getServers(), [], $fn) as $item) { - } - - $this->assertEquals(5, $count); - } - - public function test_it_halts_when_user_provided_limit_is_reached() - { - $this->client - ->request('GET', 'servers', ['query' => ['limit' => 2], 'headers' => []]) - ->shouldBeCalled() - ->willReturn($this->getFixture('servers-page1')); - - $count = 0; - - $api = new ComputeV2Api(); - - foreach ($this->resource->enumerate($api->getServers(), ['limit' => 2]) as $item) { - $count++; - } - - $this->assertEquals(2, $count); - } -} - -class TestResource extends AbstractResource -{ - protected $resourceKey = 'foo'; - protected $resourcesKey = 'servers'; - protected $markerKey = 'id'; - - /** @var string */ - public $bar; - - public $id; - - /** @var \DateTimeImmutable */ - public $created; - - /** @var []TestResource */ - public $children; - - public function getAttrs(array $keys) - { - return parent::getAttrs($keys); - } -} |
