1
0
Fork 0
mirror of synced 2024-06-02 19:04:49 +12:00

Test enum attribute creation and response model

This commit is contained in:
kodumbeats 2021-09-10 16:14:31 -04:00
parent 7fbe95de30
commit d8ba1095cd

View file

@ -143,6 +143,17 @@ trait DatabaseBase
'default' => 'default@example.com',
]);
$enum = $this->client->call(Client::METHOD_POST, '/database/collections/' . $collectionId . '/attributes/enum', array_merge([
'content-type' => 'application/json',
'x-appwrite-project' => $this->getProject()['$id'],
'x-appwrite-key' => $this->getProject()['apiKey']
]), [
'attributeId' => 'enum',
'elements' => ['yes', 'no', 'maybe'],
'required' => false,
'default' => 'maybe',
]);
$ip = $this->client->call(Client::METHOD_POST, '/database/collections/' . $collectionId . '/attributes/ip', array_merge([
'content-type' => 'application/json',
'x-appwrite-project' => $this->getProject()['$id'],
@ -210,11 +221,23 @@ trait DatabaseBase
$this->assertEquals('email', $email['body']['key']);
$this->assertEquals('string', $email['body']['type']);
$this->assertEquals('processing', $email['body']['status']);
$this->assertEquals('processing', $email['body']['status']);
$this->assertEquals(false, $email['body']['required']);
$this->assertEquals(false, $email['body']['array']);
$this->assertEquals('email', $email['body']['format']);
$this->assertEquals('default@example.com', $email['body']['default']);
$this->assertEquals(201, $enum['headers']['status-code']);
$this->assertEquals('enum', $enum['body']['key']);
$this->assertEquals('string', $enum['body']['type']);
$this->assertEquals('processing', $enum['body']['status']);
$this->assertEquals(false, $enum['body']['required']);
$this->assertEquals(false, $enum['body']['array']);
$this->assertEquals('enum', $enum['body']['format']);
$this->assertEquals('maybe', $enum['body']['default']);
$this->assertIsArray($enum['body']['elements']);
$this->assertEquals(['yes', 'no', 'maybe'], $enum['body']['elements']);
$this->assertEquals(201, $ip['headers']['status-code']);
$this->assertEquals('ip', $ip['body']['key']);
$this->assertEquals('string', $ip['body']['type']);
@ -276,6 +299,12 @@ trait DatabaseBase
'x-appwrite-key' => $this->getProject()['apiKey']
]));
$enumResponse = $this->client->call(Client::METHOD_GET, "/database/collections/{$collectionId}/attributes/{$collectionId}_{$enum['body']['key']}",array_merge([
'content-type' => 'application/json',
'x-appwrite-project' => $this->getProject()['$id'],
'x-appwrite-key' => $this->getProject()['apiKey']
]));
$ipResponse = $this->client->call(Client::METHOD_GET, "/database/collections/{$collectionId}/attributes/{$collectionId}_{$ip['body']['key']}",array_merge([
'content-type' => 'application/json',
'x-appwrite-project' => $this->getProject()['$id'],
@ -324,6 +353,16 @@ trait DatabaseBase
$this->assertEquals($email['body']['format'], $emailResponse['body']['format']);
$this->assertEquals($email['body']['default'], $emailResponse['body']['default']);
$this->assertEquals(200, $enumResponse['headers']['status-code']);
$this->assertEquals($enum['body']['key'], $enumResponse['body']['key']);
$this->assertEquals($enum['body']['type'], $enumResponse['body']['type']);
$this->assertEquals('available', $enumResponse['body']['status']);
$this->assertEquals($enum['body']['required'], $enumResponse['body']['required']);
$this->assertEquals($enum['body']['array'], $enumResponse['body']['array']);
$this->assertEquals($enum['body']['format'], $enumResponse['body']['format']);
$this->assertEquals($enum['body']['default'], $enumResponse['body']['default']);
$this->assertEquals($enum['body']['elements'], $enumResponse['body']['elements']);
$this->assertEquals(200, $ipResponse['headers']['status-code']);
$this->assertEquals($ip['body']['key'], $ipResponse['body']['key']);
$this->assertEquals($ip['body']['type'], $ipResponse['body']['type']);
@ -377,12 +416,12 @@ trait DatabaseBase
]));
$this->assertEquals(200, $attributes['headers']['status-code']);
$this->assertEquals(7, $attributes['body']['sum']);
$this->assertEquals(8, $attributes['body']['sum']);
$attributes = $attributes['body']['attributes'];
$this->assertIsArray($attributes);
$this->assertCount(7, $attributes);
$this->assertCount(8, $attributes);
$this->assertEquals($stringResponse['body']['key'], $attributes[0]['key']);
$this->assertEquals($stringResponse['body']['type'], $attributes[0]['type']);
@ -400,46 +439,55 @@ trait DatabaseBase
$this->assertEquals($emailResponse['body']['default'], $attributes[1]['default']);
$this->assertEquals($emailResponse['body']['format'], $attributes[1]['format']);
$this->assertEquals($ipResponse['body']['key'], $attributes[2]['key']);
$this->assertEquals($ipResponse['body']['type'], $attributes[2]['type']);
$this->assertEquals($ipResponse['body']['status'], $attributes[2]['status']);
$this->assertEquals($ipResponse['body']['required'], $attributes[2]['required']);
$this->assertEquals($ipResponse['body']['array'], $attributes[2]['array']);
$this->assertEquals($ipResponse['body']['default'], $attributes[2]['default']);
$this->assertEquals($ipResponse['body']['format'], $attributes[2]['format']);
$this->assertEquals($enumResponse['body']['key'], $attributes[2]['key']);
$this->assertEquals($enumResponse['body']['type'], $attributes[2]['type']);
$this->assertEquals($enumResponse['body']['status'], $attributes[2]['status']);
$this->assertEquals($enumResponse['body']['required'], $attributes[2]['required']);
$this->assertEquals($enumResponse['body']['array'], $attributes[2]['array']);
$this->assertEquals($enumResponse['body']['default'], $attributes[2]['default']);
$this->assertEquals($enumResponse['body']['format'], $attributes[2]['format']);
$this->assertEquals($enumResponse['body']['elements'], $attributes[2]['elements']);
$this->assertEquals($urlResponse['body']['key'], $attributes[3]['key']);
$this->assertEquals($urlResponse['body']['type'], $attributes[3]['type']);
$this->assertEquals($urlResponse['body']['status'], $attributes[3]['status']);
$this->assertEquals($urlResponse['body']['required'], $attributes[3]['required']);
$this->assertEquals($urlResponse['body']['array'], $attributes[3]['array']);
$this->assertEquals($urlResponse['body']['default'], $attributes[3]['default']);
$this->assertEquals($urlResponse['body']['format'], $attributes[3]['format']);
$this->assertEquals($ipResponse['body']['key'], $attributes[3]['key']);
$this->assertEquals($ipResponse['body']['type'], $attributes[3]['type']);
$this->assertEquals($ipResponse['body']['status'], $attributes[3]['status']);
$this->assertEquals($ipResponse['body']['required'], $attributes[3]['required']);
$this->assertEquals($ipResponse['body']['array'], $attributes[3]['array']);
$this->assertEquals($ipResponse['body']['default'], $attributes[3]['default']);
$this->assertEquals($ipResponse['body']['format'], $attributes[3]['format']);
$this->assertEquals($integerResponse['body']['key'], $attributes[4]['key']);
$this->assertEquals($integerResponse['body']['type'], $attributes[4]['type']);
$this->assertEquals($integerResponse['body']['status'], $attributes[4]['status']);
$this->assertEquals($integerResponse['body']['required'], $attributes[4]['required']);
$this->assertEquals($integerResponse['body']['array'], $attributes[4]['array']);
$this->assertEquals($integerResponse['body']['default'], $attributes[4]['default']);
$this->assertEquals($integerResponse['body']['min'], $attributes[4]['min']);
$this->assertEquals($integerResponse['body']['max'], $attributes[4]['max']);
$this->assertEquals($urlResponse['body']['key'], $attributes[4]['key']);
$this->assertEquals($urlResponse['body']['type'], $attributes[4]['type']);
$this->assertEquals($urlResponse['body']['status'], $attributes[4]['status']);
$this->assertEquals($urlResponse['body']['required'], $attributes[4]['required']);
$this->assertEquals($urlResponse['body']['array'], $attributes[4]['array']);
$this->assertEquals($urlResponse['body']['default'], $attributes[4]['default']);
$this->assertEquals($urlResponse['body']['format'], $attributes[4]['format']);
$this->assertEquals($floatResponse['body']['key'], $attributes[5]['key']);
$this->assertEquals($floatResponse['body']['type'], $attributes[5]['type']);
$this->assertEquals($floatResponse['body']['status'], $attributes[5]['status']);
$this->assertEquals($floatResponse['body']['required'], $attributes[5]['required']);
$this->assertEquals($floatResponse['body']['array'], $attributes[5]['array']);
$this->assertEquals($floatResponse['body']['default'], $attributes[5]['default']);
$this->assertEquals($floatResponse['body']['min'], $attributes[5]['min']);
$this->assertEquals($floatResponse['body']['max'], $attributes[5]['max']);
$this->assertEquals($integerResponse['body']['key'], $attributes[5]['key']);
$this->assertEquals($integerResponse['body']['type'], $attributes[5]['type']);
$this->assertEquals($integerResponse['body']['status'], $attributes[5]['status']);
$this->assertEquals($integerResponse['body']['required'], $attributes[5]['required']);
$this->assertEquals($integerResponse['body']['array'], $attributes[5]['array']);
$this->assertEquals($integerResponse['body']['default'], $attributes[5]['default']);
$this->assertEquals($integerResponse['body']['min'], $attributes[5]['min']);
$this->assertEquals($integerResponse['body']['max'], $attributes[5]['max']);
$this->assertEquals($booleanResponse['body']['key'], $attributes[6]['key']);
$this->assertEquals($booleanResponse['body']['type'], $attributes[6]['type']);
$this->assertEquals($booleanResponse['body']['status'], $attributes[6]['status']);
$this->assertEquals($booleanResponse['body']['required'], $attributes[6]['required']);
$this->assertEquals($booleanResponse['body']['array'], $attributes[6]['array']);
$this->assertEquals($booleanResponse['body']['default'], $attributes[6]['default']);
$this->assertEquals($floatResponse['body']['key'], $attributes[6]['key']);
$this->assertEquals($floatResponse['body']['type'], $attributes[6]['type']);
$this->assertEquals($floatResponse['body']['status'], $attributes[6]['status']);
$this->assertEquals($floatResponse['body']['required'], $attributes[6]['required']);
$this->assertEquals($floatResponse['body']['array'], $attributes[6]['array']);
$this->assertEquals($floatResponse['body']['default'], $attributes[6]['default']);
$this->assertEquals($floatResponse['body']['min'], $attributes[6]['min']);
$this->assertEquals($floatResponse['body']['max'], $attributes[6]['max']);
$this->assertEquals($booleanResponse['body']['key'], $attributes[7]['key']);
$this->assertEquals($booleanResponse['body']['type'], $attributes[7]['type']);
$this->assertEquals($booleanResponse['body']['status'], $attributes[7]['status']);
$this->assertEquals($booleanResponse['body']['required'], $attributes[7]['required']);
$this->assertEquals($booleanResponse['body']['array'], $attributes[7]['array']);
$this->assertEquals($booleanResponse['body']['default'], $attributes[7]['default']);
$collection = $this->client->call(Client::METHOD_GET, '/database/collections/' . $collectionId, array_merge([
'content-type' => 'application/json',
@ -452,7 +500,7 @@ trait DatabaseBase
$attributes = $collection['body']['attributes'];
$this->assertIsArray($attributes);
$this->assertCount(7, $attributes);
$this->assertCount(8, $attributes);
$this->assertEquals($stringResponse['body']['key'], $attributes[0]['key']);
$this->assertEquals($stringResponse['body']['type'], $attributes[0]['type']);
@ -470,46 +518,55 @@ trait DatabaseBase
$this->assertEquals($emailResponse['body']['default'], $attributes[1]['default']);
$this->assertEquals($emailResponse['body']['format'], $attributes[1]['format']);
$this->assertEquals($ipResponse['body']['key'], $attributes[2]['key']);
$this->assertEquals($ipResponse['body']['type'], $attributes[2]['type']);
$this->assertEquals($ipResponse['body']['status'], $attributes[2]['status']);
$this->assertEquals($ipResponse['body']['required'], $attributes[2]['required']);
$this->assertEquals($ipResponse['body']['array'], $attributes[2]['array']);
$this->assertEquals($ipResponse['body']['default'], $attributes[2]['default']);
$this->assertEquals($ipResponse['body']['format'], $attributes[2]['format']);
$this->assertEquals($enumResponse['body']['key'], $attributes[2]['key']);
$this->assertEquals($enumResponse['body']['type'], $attributes[2]['type']);
$this->assertEquals($enumResponse['body']['status'], $attributes[2]['status']);
$this->assertEquals($enumResponse['body']['required'], $attributes[2]['required']);
$this->assertEquals($enumResponse['body']['array'], $attributes[2]['array']);
$this->assertEquals($enumResponse['body']['default'], $attributes[2]['default']);
$this->assertEquals($enumResponse['body']['format'], $attributes[2]['format']);
$this->assertEquals($enumResponse['body']['elements'], $attributes[2]['elements']);
$this->assertEquals($urlResponse['body']['key'], $attributes[3]['key']);
$this->assertEquals($urlResponse['body']['type'], $attributes[3]['type']);
$this->assertEquals($urlResponse['body']['status'], $attributes[3]['status']);
$this->assertEquals($urlResponse['body']['required'], $attributes[3]['required']);
$this->assertEquals($urlResponse['body']['array'], $attributes[3]['array']);
$this->assertEquals($urlResponse['body']['default'], $attributes[3]['default']);
$this->assertEquals($urlResponse['body']['format'], $attributes[3]['format']);
$this->assertEquals($ipResponse['body']['key'], $attributes[3]['key']);
$this->assertEquals($ipResponse['body']['type'], $attributes[3]['type']);
$this->assertEquals($ipResponse['body']['status'], $attributes[3]['status']);
$this->assertEquals($ipResponse['body']['required'], $attributes[3]['required']);
$this->assertEquals($ipResponse['body']['array'], $attributes[3]['array']);
$this->assertEquals($ipResponse['body']['default'], $attributes[3]['default']);
$this->assertEquals($ipResponse['body']['format'], $attributes[3]['format']);
$this->assertEquals($integerResponse['body']['key'], $attributes[4]['key']);
$this->assertEquals($integerResponse['body']['type'], $attributes[4]['type']);
$this->assertEquals($integerResponse['body']['status'], $attributes[4]['status']);
$this->assertEquals($integerResponse['body']['required'], $attributes[4]['required']);
$this->assertEquals($integerResponse['body']['array'], $attributes[4]['array']);
$this->assertEquals($integerResponse['body']['default'], $attributes[4]['default']);
$this->assertEquals($integerResponse['body']['min'], $attributes[4]['min']);
$this->assertEquals($integerResponse['body']['max'], $attributes[4]['max']);
$this->assertEquals($urlResponse['body']['key'], $attributes[4]['key']);
$this->assertEquals($urlResponse['body']['type'], $attributes[4]['type']);
$this->assertEquals($urlResponse['body']['status'], $attributes[4]['status']);
$this->assertEquals($urlResponse['body']['required'], $attributes[4]['required']);
$this->assertEquals($urlResponse['body']['array'], $attributes[4]['array']);
$this->assertEquals($urlResponse['body']['default'], $attributes[4]['default']);
$this->assertEquals($urlResponse['body']['format'], $attributes[4]['format']);
$this->assertEquals($floatResponse['body']['key'], $attributes[5]['key']);
$this->assertEquals($floatResponse['body']['type'], $attributes[5]['type']);
$this->assertEquals($floatResponse['body']['status'], $attributes[5]['status']);
$this->assertEquals($floatResponse['body']['required'], $attributes[5]['required']);
$this->assertEquals($floatResponse['body']['array'], $attributes[5]['array']);
$this->assertEquals($floatResponse['body']['default'], $attributes[5]['default']);
$this->assertEquals($floatResponse['body']['min'], $attributes[5]['min']);
$this->assertEquals($floatResponse['body']['max'], $attributes[5]['max']);
$this->assertEquals($integerResponse['body']['key'], $attributes[5]['key']);
$this->assertEquals($integerResponse['body']['type'], $attributes[5]['type']);
$this->assertEquals($integerResponse['body']['status'], $attributes[5]['status']);
$this->assertEquals($integerResponse['body']['required'], $attributes[5]['required']);
$this->assertEquals($integerResponse['body']['array'], $attributes[5]['array']);
$this->assertEquals($integerResponse['body']['default'], $attributes[5]['default']);
$this->assertEquals($integerResponse['body']['min'], $attributes[5]['min']);
$this->assertEquals($integerResponse['body']['max'], $attributes[5]['max']);
$this->assertEquals($booleanResponse['body']['key'], $attributes[6]['key']);
$this->assertEquals($booleanResponse['body']['type'], $attributes[6]['type']);
$this->assertEquals($booleanResponse['body']['status'], $attributes[6]['status']);
$this->assertEquals($booleanResponse['body']['required'], $attributes[6]['required']);
$this->assertEquals($booleanResponse['body']['array'], $attributes[6]['array']);
$this->assertEquals($booleanResponse['body']['default'], $attributes[6]['default']);
$this->assertEquals($floatResponse['body']['key'], $attributes[6]['key']);
$this->assertEquals($floatResponse['body']['type'], $attributes[6]['type']);
$this->assertEquals($floatResponse['body']['status'], $attributes[6]['status']);
$this->assertEquals($floatResponse['body']['required'], $attributes[6]['required']);
$this->assertEquals($floatResponse['body']['array'], $attributes[6]['array']);
$this->assertEquals($floatResponse['body']['default'], $attributes[6]['default']);
$this->assertEquals($floatResponse['body']['min'], $attributes[6]['min']);
$this->assertEquals($floatResponse['body']['max'], $attributes[6]['max']);
$this->assertEquals($booleanResponse['body']['key'], $attributes[7]['key']);
$this->assertEquals($booleanResponse['body']['type'], $attributes[7]['type']);
$this->assertEquals($booleanResponse['body']['status'], $attributes[7]['status']);
$this->assertEquals($booleanResponse['body']['required'], $attributes[7]['required']);
$this->assertEquals($booleanResponse['body']['array'], $attributes[7]['array']);
$this->assertEquals($booleanResponse['body']['default'], $attributes[7]['default']);
return $data;
}