Test enhancement

This commit is contained in:
peter279k
2019-11-04 03:05:26 +08:00
parent e4c7d1660a
commit 2c2bf9ad2f
10 changed files with 117 additions and 116 deletions
+39 -39
View File
@@ -6,7 +6,7 @@ use Tests\E2E\Client;
class ProjectDatabaseTest extends BaseProjects
{
public function testRegisterSuccess()
public function testRegisterSuccess(): array
{
return $this->initProject(['collections.read', 'collections.write', 'documents.read', 'documents.write',]);
}
@@ -14,7 +14,7 @@ class ProjectDatabaseTest extends BaseProjects
/**
* @depends testRegisterSuccess
*/
public function testCollectionCreateSuccess($data)
public function testCollectionCreateSuccess(array $data): array
{
$actors = $this->client->call(Client::METHOD_POST, '/database', [
'content-type' => 'application/json',
@@ -50,9 +50,9 @@ class ProjectDatabaseTest extends BaseProjects
$this->assertIsArray($actors['body']['$permissions']);
$this->assertIsArray($actors['body']['$permissions']['read']);
$this->assertIsArray($actors['body']['$permissions']['write']);
$this->assertEquals(count($actors['body']['$permissions']['read']), 1);
$this->assertEquals(count($actors['body']['$permissions']['write']), 2);
$this->assertCount(1, $actors['body']['$permissions']['read']);
$this->assertCount(2, $actors['body']['$permissions']['write']);
$movies = $this->client->call(Client::METHOD_POST, '/database', [
'content-type' => 'application/json',
'x-appwrite-project' => $data['projectUid'],
@@ -96,8 +96,8 @@ class ProjectDatabaseTest extends BaseProjects
$this->assertIsArray($movies['body']['$permissions']);
$this->assertIsArray($movies['body']['$permissions']['read']);
$this->assertIsArray($movies['body']['$permissions']['write']);
$this->assertEquals(count($movies['body']['$permissions']['read']), 1);
$this->assertEquals(count($movies['body']['$permissions']['write']), 2);
$this->assertCount(1, $movies['body']['$permissions']['read']);
$this->assertCount(2, $movies['body']['$permissions']['write']);
return array_merge($data, ['moviesId' => $movies['body']['$uid'], 'actorsId' => $actors['body']['$uid']]);
}
@@ -105,7 +105,7 @@ class ProjectDatabaseTest extends BaseProjects
/**
* @depends testCollectionCreateSuccess
*/
public function testDocumentCreateSuccess($data)
public function testDocumentCreateSuccess(array $data): array
{
$document1 = $this->client->call(Client::METHOD_POST, '/database/' . $data['moviesId'] . '/documents', [
'content-type' => 'application/json',
@@ -205,10 +205,10 @@ class ProjectDatabaseTest extends BaseProjects
$this->assertIsArray($document1['body']['$permissions']);
$this->assertIsArray($document1['body']['$permissions']['read']);
$this->assertIsArray($document1['body']['$permissions']['write']);
$this->assertEquals(count($document1['body']['$permissions']['read']), 0);
$this->assertEquals(count($document1['body']['$permissions']['write']), 0);
$this->assertEquals(count($document1['body']['actors']), 2);
$this->assertCount(0, $document1['body']['$permissions']['read']);
$this->assertCount(0, $document1['body']['$permissions']['write']);
$this->assertCount(2, $document1['body']['actors']);
$this->assertEquals($document2['headers']['status-code'], 201);
$this->assertEquals($document2['body']['$collection'], $data['moviesId']);
$this->assertEquals($document2['body']['name'], 'Spider-Man: Far From Home');
@@ -216,16 +216,16 @@ class ProjectDatabaseTest extends BaseProjects
$this->assertIsArray($document2['body']['$permissions']);
$this->assertIsArray($document2['body']['$permissions']['read']);
$this->assertIsArray($document2['body']['$permissions']['write']);
$this->assertEquals(count($document2['body']['$permissions']['read']), 0);
$this->assertEquals(count($document2['body']['$permissions']['write']), 0);
$this->assertEquals(count($document2['body']['actors']), 3);
$this->assertCount(0, $document2['body']['$permissions']['read']);
$this->assertCount(0, $document2['body']['$permissions']['write']);
$this->assertCount(3, $document2['body']['actors']);
$this->assertEquals($document2['body']['actors'][0]['firstName'], 'Tom');
$this->assertEquals($document2['body']['actors'][0]['lastName'], 'Holland');
$this->assertEquals($document2['body']['actors'][1]['firstName'], 'Zendaya');
$this->assertEquals($document2['body']['actors'][1]['lastName'], 'Maree Stoermer');
$this->assertEquals($document2['body']['actors'][2]['firstName'], 'Samuel');
$this->assertEquals($document2['body']['actors'][2]['lastName'], 'Jackson');
$this->assertEquals($document3['headers']['status-code'], 201);
$this->assertEquals($document3['body']['$collection'], $data['moviesId']);
$this->assertEquals($document3['body']['name'], 'Spider-Man: Homecoming');
@@ -233,23 +233,23 @@ class ProjectDatabaseTest extends BaseProjects
$this->assertIsArray($document3['body']['$permissions']);
$this->assertIsArray($document3['body']['$permissions']['read']);
$this->assertIsArray($document3['body']['$permissions']['write']);
$this->assertEquals(count($document3['body']['$permissions']['read']), 0);
$this->assertEquals(count($document3['body']['$permissions']['write']), 0);
$this->assertEquals(count($document3['body']['actors']), 2);
$this->assertCount(0, $document3['body']['$permissions']['read']);
$this->assertCount(0, $document3['body']['$permissions']['write']);
$this->assertCount(2, $document3['body']['actors']);
$this->assertEquals($document3['body']['actors'][0]['firstName'], 'Tom');
$this->assertEquals($document3['body']['actors'][0]['lastName'], 'Holland');
$this->assertEquals($document3['body']['actors'][1]['firstName'], 'Zendaya');
$this->assertEquals($document3['body']['actors'][1]['lastName'], 'Maree Stoermer');
$this->assertEquals($document4['headers']['status-code'], 400);
return $data;
}
/**
* @depends testDocumentCreateSuccess
*/
public function testDocumentsListSuccessOrderAndCasting($data)
public function testDocumentsListSuccessOrderAndCasting(array $data): void
{
$documents = $this->client->call(Client::METHOD_GET, '/database/' . $data['moviesId'] . '/documents', [
'content-type' => 'application/json',
@@ -260,7 +260,7 @@ class ProjectDatabaseTest extends BaseProjects
'order-type' => 'ASC',
'order-cast' => 'int',
]);
$this->assertEquals(1944, $documents['body']['documents'][0]['releaseYear']);
$this->assertEquals(2017, $documents['body']['documents'][1]['releaseYear']);
$this->assertEquals(2019, $documents['body']['documents'][2]['releaseYear']);
@@ -275,7 +275,7 @@ class ProjectDatabaseTest extends BaseProjects
'order-type' => 'DESC',
'order-cast' => 'int',
]);
$this->assertEquals(1944, $documents['body']['documents'][2]['releaseYear']);
$this->assertEquals(2017, $documents['body']['documents'][1]['releaseYear']);
$this->assertEquals(2019, $documents['body']['documents'][0]['releaseYear']);
@@ -285,7 +285,7 @@ class ProjectDatabaseTest extends BaseProjects
/**
* @depends testDocumentCreateSuccess
*/
public function testDocumentsListSuccessLimitAndOffset($data)
public function testDocumentsListSuccessLimitAndOffset(array $data): void
{
$documents = $this->client->call(Client::METHOD_GET, '/database/' . $data['moviesId'] . '/documents', [
'content-type' => 'application/json',
@@ -297,7 +297,7 @@ class ProjectDatabaseTest extends BaseProjects
'order-type' => 'ASC',
'order-cast' => 'int',
]);
$this->assertEquals(1944, $documents['body']['documents'][0]['releaseYear']);
$this->assertCount(1, $documents['body']['documents']);
@@ -312,7 +312,7 @@ class ProjectDatabaseTest extends BaseProjects
'order-type' => 'ASC',
'order-cast' => 'int',
]);
$this->assertEquals(2017, $documents['body']['documents'][0]['releaseYear']);
$this->assertEquals(2019, $documents['body']['documents'][1]['releaseYear']);
$this->assertCount(2, $documents['body']['documents']);
@@ -321,7 +321,7 @@ class ProjectDatabaseTest extends BaseProjects
/**
* @depends testDocumentCreateSuccess
*/
public function testDocumentsListSuccessFirstAndLast($data)
public function testDocumentsListSuccessFirstAndLast(array $data): void
{
$documents = $this->client->call(Client::METHOD_GET, '/database/' . $data['moviesId'] . '/documents', [
'content-type' => 'application/json',
@@ -334,7 +334,7 @@ class ProjectDatabaseTest extends BaseProjects
'order-cast' => 'int',
'first' => true,
]);
$this->assertEquals(1944, $documents['body']['releaseYear']);
$documents = $this->client->call(Client::METHOD_GET, '/database/' . $data['moviesId'] . '/documents', [
@@ -349,14 +349,14 @@ class ProjectDatabaseTest extends BaseProjects
'order-cast' => 'int',
'last' => true,
]);
$this->assertEquals(2019, $documents['body']['releaseYear']);
}
/**
* @depends testDocumentCreateSuccess
*/
public function testDocumentsListSuccessSerach($data)
public function testDocumentsListSuccessSearch(array $data): void
{
$documents = $this->client->call(Client::METHOD_GET, '/database/' . $data['moviesId'] . '/documents', [
'content-type' => 'application/json',
@@ -396,7 +396,7 @@ class ProjectDatabaseTest extends BaseProjects
/**
* @depends testDocumentCreateSuccess
*/
public function testDocumentsListSuccessFilters($data)
public function testDocumentsListSuccessFilters(array $data): void
{
$documents = $this->client->call(Client::METHOD_GET, '/database/' . $data['moviesId'] . '/documents', [
'content-type' => 'application/json',
@@ -443,7 +443,7 @@ class ProjectDatabaseTest extends BaseProjects
/**
* @depends testDocumentCreateSuccess
*/
public function testDocumentsUpdateSuccess($data)
public function testDocumentsUpdateSuccess(array $data): void
{
$document = $this->client->call(Client::METHOD_POST, '/database/' . $data['moviesId'] . '/documents', [
'content-type' => 'application/json',
@@ -462,7 +462,7 @@ class ProjectDatabaseTest extends BaseProjects
$this->assertEquals($document['headers']['status-code'], 201);
$this->assertEquals($document['body']['name'], 'Thor: Ragnaroc');
$this->assertEquals($document['body']['releaseYear'], 2017);
$document = $this->client->call(Client::METHOD_PATCH, '/database/' . $collection . '/documents/' . $id, [
'content-type' => 'application/json',
'x-appwrite-project' => $data['projectUid'],
@@ -476,7 +476,7 @@ class ProjectDatabaseTest extends BaseProjects
$this->assertEquals($document['headers']['status-code'], 200);
$this->assertEquals($document['body']['name'], 'Thor: Ragnarok');
$this->assertEquals($document['body']['releaseYear'], 2017);
$document = $this->client->call(Client::METHOD_GET, '/database/' . $collection . '/documents/' . $id, [
'content-type' => 'application/json',
'x-appwrite-project' => $data['projectUid'],
@@ -489,13 +489,13 @@ class ProjectDatabaseTest extends BaseProjects
$this->assertEquals($document['headers']['status-code'], 200);
$this->assertEquals($document['body']['name'], 'Thor: Ragnarok');
$this->assertEquals($document['body']['releaseYear'], 2017);
}
/**
* @depends testDocumentCreateSuccess
*/
public function testDocumentsDeleteSuccess($data)
public function testDocumentsDeleteSuccess(array $data): void
{
$document = $this->client->call(Client::METHOD_POST, '/database/' . $data['moviesId'] . '/documents', [
'content-type' => 'application/json',
@@ -512,7 +512,7 @@ class ProjectDatabaseTest extends BaseProjects
$collection = $document['body']['$collection'];
$this->assertEquals($document['headers']['status-code'], 201);
$document = $this->client->call(Client::METHOD_GET, '/database/' . $collection . '/documents/' . $id, [
'content-type' => 'application/json',
'x-appwrite-project' => $data['projectUid'],