1
0
Fork 0
mirror of synced 2024-09-29 08:51:28 +13:00

feat: unit tests for response filters

This commit is contained in:
Christy Jacob 2020-12-31 13:25:25 +05:30
parent 8cc10c683a
commit 4fc40a387a
2 changed files with 149 additions and 7 deletions

View file

@ -146,7 +146,15 @@ class V06 extends Filter {
private function parseCurrencyList(array $content)
{
$content['locations'] = [];
return $content;
$currencies = $content['currencies'];
$parsedResponse = [];
foreach($currencies as $currency) {
$currency['locations'] = [];
$parsedResponse[] = $currency;
}
return $parsedResponse;
}
private function parseContinentList(array $content)
@ -154,7 +162,7 @@ class V06 extends Filter {
$continents = $content['continents'];
$parsedResponse = [];
foreach($continents as $continent) {
$parsedResponse['code'] = $continent['name'];
$parsedResponse[$continent['code']] = $continent['name'];
}
return $parsedResponse;
@ -165,7 +173,7 @@ class V06 extends Filter {
$phones = $content['phones'];
$parsedResponse = [];
foreach($phones as $phone) {
$parsedResponse['countryCode'] = $phone['code'];
$parsedResponse[$phone['countryCode']] = $phone['code'];
}
return $parsedResponse;
@ -204,9 +212,8 @@ class V06 extends Filter {
{
$logs = $content['logs'];
$parsedResponse = [];
$index = 0;
foreach($logs as $log) {
$parsedResponse[$index++] = [
$parsedResponse[] = [
'event' => $log['event'],
'ip' => $log['ip'],
'time' => strtotime($log['time']),
@ -228,9 +235,8 @@ class V06 extends Filter {
{
$sessions = $content['sessions'];
$parsedResponse = [];
$index = 0;
foreach($sessions as $session) {
$parsedResponse[$index++] = [
$parsedResponse[] = [
'$id' => $session['$id'],
'OS' => $session['osName'].' '.$session['osVersion'],
'client' => $session['clientName'].' '.$session['clientVersion'],

View file

@ -3,7 +3,9 @@
namespace Appwrite\Tests;
use Appwrite\Auth\Auth;
use Appwrite\Database\Database;
use Appwrite\Database\Validator\Authorization;
use Appwrite\OpenSSL\OpenSSL;
use Appwrite\Utopia\Response;
use Appwrite\Utopia\Response\Filter\V06;
use PHPUnit\Framework\TestCase;
@ -283,4 +285,138 @@ class V06Test extends TestCase
$this->assertEquals($parsedResponse['sum'], 1);
$this->assertEquals($parsedResponse['countries']['US'], 'United States');
}
public function testParsePhoneList()
{
$content = [
'sum' => 1,
'phones' => [
0 => [
'code' => '+1',
'countryCode' => 'US',
'countryName' => 'United States'
]
]
];
$model = Response::MODEL_PHONE_LIST;
$parsedResponse = $this->filter->parse($content, $model);
$this->assertEquals($parsedResponse['sum'], 1);
$this->assertEquals($parsedResponse['phones']['US'], '+1');
}
public function testParseContinentList()
{
$content = [
'sum' => 1,
'continents' => [
0 => [
'name' => 'Europe',
'code' => 'EU',
]
]
];
$model = Response::MODEL_CONTINENT_LIST;
$parsedResponse = $this->filter->parse($content, $model);
$this->assertEquals($parsedResponse['sum'], 1);
$this->assertEquals($parsedResponse['continents']['EU'], 'Europe');
}
public function testParseCurrencyList()
{
$content = [
'sum' => 1,
'currencies' => [
0 => [
'symbol' => '$',
'name' => 'US dollar',
'symbolNative' => '$',
'decimalDigits' => 2,
'rounding' => 0,
'code' => 'USD',
'namePlural' => 'US Dollars'
]
]
];
$model = Response::MODEL_CURRENCY_LIST;
$parsedResponse = $this->filter->parse($content, $model);
$this->assertEquals($parsedResponse['sum'], 1);
$this->assertEquals($parsedResponse['currencies'][0]['symbol'], '$');
$this->assertEquals($parsedResponse['currencies'][0]['name'], 'US dollar');
$this->assertEquals($parsedResponse['currencies'][0]['symbolNative'], '$');
$this->assertEquals($parsedResponse['currencies'][0]['decimalDigits'], 2);
$this->assertEquals($parsedResponse['currencies'][0]['rounding'], 0);
$this->assertEquals($parsedResponse['currencies'][0]['code'], 'USD');
$this->assertEquals($parsedResponse['currencies'][0]['namePlural'], 'US Dollars');
$this->assertEquals($parsedResponse['currencies'][0]['locations'], []);
}
public function testParseFile()
{
$content = [
'$id' => '5e5ea5c16897e',
'$permissions' => ['read' => ['*'], 'write' => ['*']],
'name' => 'Pink.png',
'dateCreated' => 1592981250,
'signature' => '5d529fd02b544198ae075bd57c1762bb',
'mimeType' => 'image/png',
'sizeOriginal' => 17890
];
$model = Response::MODEL_FILE;
$parsedResponse = $this->filter->parse($content, $model);
$this->assertEquals($parsedResponse['$id'], '5e5ea5c16897e');
$this->assertEquals($parsedResponse['$permissions'], ['read' => ['*'], 'write' => ['*']]);
$this->assertEquals($parsedResponse['name'], 'Pink.png');
$this->assertEquals($parsedResponse['dateCreated'], 1592981250);
$this->assertEquals($parsedResponse['signature'], '5d529fd02b544198ae075bd57c1762bb');
$this->assertEquals($parsedResponse['mimeType'], 'image/png');
$this->assertEquals($parsedResponse['sizeOriginal'], 17890);
$this->assertEquals($parsedResponse['$collection'], Database::SYSTEM_COLLECTION_FILES);
$this->assertEquals($parsedResponse['algorithm'], 'gzip');
$this->assertEquals($parsedResponse['comment'], '');
$this->assertEquals($parsedResponse['fileOpenSSLCipher'], OpenSSL::CIPHER_AES_128_GCM);
$this->assertEquals($parsedResponse['fileOpenSSLIV'], '');
$this->assertEquals($parsedResponse['fileOpenSSLTag'], '');
$this->assertEquals($parsedResponse['fileOpenSSLVersion'], '');
$this->assertEquals($parsedResponse['folderId'], '');
$this->assertEquals($parsedResponse['path'], '');
$this->assertEquals($parsedResponse['sizeActual'], $content['sizeOriginal']);
$this->assertEquals($parsedResponse['token'], '');
}
public function testParseCollection()
{
$content = [
'$id' => '5e5ea5c16897e',
'$permissions' => ['read' => ['*'], 'write' => ['*']],
'name' => 'Movies',
'dateCreated' => 1592981250,
'dateUpdated' => '5d529fd02b544198ae075bd57c1762bb',
'rules' => []
];
$model = Response::MODEL_COLLECTION;
$parsedResponse = $this->filter->parse($content, $model);
$this->assertEquals($parsedResponse['$id'], '5e5ea5c16897e');
$this->assertEquals($parsedResponse['$permissions'], ['read' => ['*'], 'write' => ['*']]);
$this->assertEquals($parsedResponse['name'], 'Movies');
$this->assertEquals($parsedResponse['dateCreated'], 1592981250);
$this->assertEquals($parsedResponse['dateUpdated'], '5d529fd02b544198ae075bd57c1762bb');
$this->assertEquals($parsedResponse['rules'], []);
$this->assertEquals($parsedResponse['$collection'], Database::SYSTEM_COLLECTION_COLLECTIONS);
$this->assertEquals($parsedResponse['structure'], true);
}
public function testParseCollectionList()
{
}
}