22
33namespace Tests ;
44
5- use Appwrite \Spec \Swagger2 ;
65use Appwrite \SDK \SDK ;
6+ use Appwrite \Spec \Swagger2 ;
77use PHPUnit \Framework \TestCase ;
88
99ini_set ('display_errors ' , 1 );
@@ -15,7 +15,7 @@ class SDKTest extends TestCase
1515 /**
1616 * @var array
1717 */
18- protected $ languages = [
18+ protected $ languages = [
1919 'php ' => [
2020 'class ' => 'Appwrite\SDK\Language\PHP ' ,
2121 'build ' => [
@@ -28,8 +28,7 @@ class SDKTest extends TestCase
2828 'php-7.4 ' => 'docker run --rm -v $(pwd):/app -w /app php:7.4-cli-alpine php tests/languages/php/test.php ' ,
2929 'php-8.0 ' => 'docker run --rm -v $(pwd):/app -w /app php:8.0.0rc1-cli-alpine php tests/languages/php/test.php ' ,
3030 ],
31- 'supportRedirect ' => true ,
32- 'supportUpload ' => true ,
31+ 'supportException ' => false ,
3332 ],
3433
3534 'cli ' => [
@@ -39,14 +38,14 @@ class SDKTest extends TestCase
3938 'cat tests/sdks/cli/Dockerfile ' ,
4039 'mkdir tests/sdks/cli/files ' ,
4140 'cp tests/resources/file.png tests/sdks/cli/files/ ' ,
42- 'docker build -t cli:latest tests/sdks/cli '
41+ 'docker build -t cli:latest tests/sdks/cli ' ,
4342 ],
4443 'envs ' => [
4544 'default ' => 'php tests/languages/cli/test.php ' ,
4645 ],
47- 'supportUpload ' => true ,
46+ 'supportException ' => false ,
4847 ],
49-
48+
5049 'dart ' => [
5150 'class ' => 'Appwrite\SDK\Language\Dart ' ,
5251 'build ' => [
@@ -61,11 +60,11 @@ class SDKTest extends TestCase
6160 'dart-2.10 ' => 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/dart --env PUB_CACHE=vendor google/dart:2.10 dart pub run tests/tests.dart ' ,
6261 'dart-2.12-beta ' => 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/dart --env PUB_CACHE=vendor google/dart:2.12-beta dart pub run tests/tests.dart ' ,
6362 ],
64- 'supportRedirect ' => true ,
65- 'supportUpload ' => true ,
63+ 'supportException ' => true ,
6664 ],
6765
68- 'java ' => [
66+ //Skipping for now, enable it once Java SDK is in Good enough shape
67+ /* 'java' => [
6968 'class' => 'Appwrite\SDK\Language\Java',
7069 'build' => [
7170 'mkdir -p tests/sdks/java/src/test/java/io/appwrite/services',
@@ -75,9 +74,8 @@ class SDKTest extends TestCase
7574 'java-11' => 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/java --env PUB_CACHE=vendor maven:3.6-jdk-11-slim mvn clean install test -q',
7675 //'java-14' => 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/java --env PUB_CACHE=vendor maven:3.6-jdk-14-slim mvn clean install test -q',
7776 ],
78- 'supportRedirect ' => false ,
79- 'supportUpload ' => false ,
80- ],
77+ 'supportException' => false,
78+ ], */
8179
8280 'dotnet ' => [
8381 'class ' => 'Appwrite\SDK\Language\DotNet ' ,
@@ -89,74 +87,69 @@ class SDKTest extends TestCase
8987 ],
9088 'envs ' => [
9189 'dotnet-5.0 ' => 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/dotnet/src/test/ mcr.microsoft.com/dotnet/sdk:5.0-alpine pwsh tests.ps1 ' ,
92- 'dotnet-3.1 ' => 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/dotnet/src/test/ mcr.microsoft.com/dotnet/sdk:3.1-alpine pwsh tests.ps1 '
90+ 'dotnet-3.1 ' => 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/dotnet/src/test/ mcr.microsoft.com/dotnet/sdk:3.1-alpine pwsh tests.ps1 ' ,
9391 ],
94- 'supportRedirect ' => true ,
95- 'supportUpload ' => true ,
92+ 'supportException ' => false ,
9693 ],
9794
9895 'typescript ' => [
9996 'class ' => 'Appwrite\SDK\Language\Typescript ' ,
10097 'build ' => [
10198 'cp tests/languages/typescript/tests.ts tests/sdks/typescript/tests.ts ' ,
102- 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/typescript node:14.5-alpine npm install ' , // npm list --depth 0 &&
99+ 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/typescript node:14.5-alpine npm install ' , // npm list --depth 0 &&
103100 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/typescript node:14.5-alpine ls node_modules/.bin ' ,
104- 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/typescript node:14.5-alpine node_modules/.bin/tsc --lib ES6,DOM tests '
101+ 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/typescript node:14.5-alpine node_modules/.bin/tsc --lib ES6,DOM tests ' ,
105102 ],
106103 'envs ' => [
107104 'nodejs-14 ' => 'docker run --rm -v $(pwd):/app -w /app node:14.5-alpine node tests/sdks/typescript/tests.js ' ,
108105 ],
109- 'supportRedirect ' => false ,
110- 'supportUpload ' => false ,
106+ 'supportException ' => false ,
111107 ],
112-
108+
113109 'deno ' => [
114110 'class ' => 'Appwrite\SDK\Language\Deno ' ,
115111 'build ' => [
116112 ],
117113 'envs ' => [
118114 'deno-1.1.3 ' => 'docker run --rm -v $(pwd):/app -w /app hayd/alpine-deno:1.1.3 run --allow-net --allow-read tests/languages/deno/tests.ts ' , // TODO: use official image when its out
119115 ],
120- 'supportRedirect ' => true ,
121- 'supportUpload ' => true ,
116+ 'supportException ' => false ,
122117 ],
123118
124119 'node ' => [
125120 'class ' => 'Appwrite\SDK\Language\Node ' ,
126121 'build ' => [
127- 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/node node:12.12-alpine npm install '
122+ 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/node node:12.12-alpine npm install ' ,
128123 ],
129124 'envs ' => [
130125 'nodejs-8 ' => 'docker run --rm -v $(pwd):/app -w /app node:8.16-alpine node tests/languages/node/test.js ' ,
131126 'nodejs-10 ' => 'docker run --rm -v $(pwd):/app -w /app node:10.16-alpine node tests/languages/node/test.js ' ,
132127 'nodejs-12 ' => 'docker run --rm -v $(pwd):/app -w /app node:12.12-alpine node tests/languages/node/test.js ' ,
133128 'nodejs-14 ' => 'docker run --rm -v $(pwd):/app -w /app node:14.5-alpine node tests/languages/node/test.js ' ,
134129 ],
135- 'supportRedirect ' => true ,
136- 'supportUpload ' => true ,
130+ 'supportException ' => false ,
137131 ],
138132
139133 'ruby ' => [
140134 'class ' => 'Appwrite\SDK\Language\Ruby ' ,
141135 'build ' => [
142- 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/ruby --env GEM_HOME=/app/vendor ruby:2.7-alpine sh -c "apk add git build-base && bundle install" '
136+ 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/ruby --env GEM_HOME=/app/vendor ruby:2.7-alpine sh -c "apk add git build-base && bundle install" ' ,
143137 ],
144138 'envs ' => [
145139 'ruby-2.7 ' => 'docker run --rm -v $(pwd):/app -w /app --env GEM_HOME=vendor ruby:2.7-alpine ruby tests/languages/ruby/tests.rb ' ,
146140 'ruby-2.6 ' => 'docker run --rm -v $(pwd):/app -w /app --env GEM_HOME=vendor ruby:2.6-alpine ruby tests/languages/ruby/tests.rb ' ,
147141 'ruby-2.5 ' => 'docker run --rm -v $(pwd):/app -w /app --env GEM_HOME=vendor ruby:2.5-alpine ruby tests/languages/ruby/tests.rb ' ,
148142 'ruby-2.4 ' => 'docker run --rm -v $(pwd):/app -w /app --env GEM_HOME=vendor ruby:2.4-alpine ruby tests/languages/ruby/tests.rb ' ,
149143 ],
150- 'supportRedirect ' => true ,
151- 'supportUpload ' => true ,
144+ 'supportException ' => false ,
152145 ],
153146
154147 'python ' => [
155148 'class ' => 'Appwrite\SDK\Language\Python ' ,
156149 'build ' => [
157150 'cp tests/languages/python/tests.py tests/sdks/python/test.py ' ,
158151 'echo "" > tests/sdks/python/__init__.py ' ,
159- 'docker run --rm -v $(pwd):/app -w /app --env PIP_TARGET=tests/sdks/python/vendor python:3.8 pip install -r tests/sdks/python/requirements.txt --upgrade '
152+ 'docker run --rm -v $(pwd):/app -w /app --env PIP_TARGET=tests/sdks/python/vendor python:3.8 pip install -r tests/sdks/python/requirements.txt --upgrade ' ,
160153 ],
161154 'envs ' => [
162155 'python-3.8 ' => 'docker run --rm -v $(pwd):/app -w /app --env PIP_TARGET=tests/sdks/python/vendor --env PYTHONPATH=tests/sdks/python/vendor python:3.8-alpine python tests/sdks/python/test.py ' ,
@@ -168,8 +161,7 @@ class SDKTest extends TestCase
168161 // 'python-3.2' => 'docker run --rm -v $(pwd):/app -w /app --env PIP_TARGET=tests/sdks/python/vendor --env PYTHONPATH=tests/sdks/python/vendor python:3.2 python tests/sdks/python/test.py',
169162 // 'python-3.1' => 'docker run --rm -v $(pwd):/app -w /app --env PIP_TARGET=tests/sdks/python/vendor --env PYTHONPATH=tests/sdks/python/vendor python:3.1 python tests/sdks/python/test.py',
170163 ],
171- 'supportRedirect ' => true ,
172- 'supportUpload ' => true ,
164+ 'supportException ' => false ,
173165 ],
174166 ];
175167
@@ -195,18 +187,18 @@ public function testHTTPSuccess()
195187
196188 $ spec = file_get_contents (realpath (__DIR__ . '/resources/spec.json ' ));
197189
198- if (empty ($ spec )) {
190+ if (empty ($ spec )) {
199191 throw new \Exception ('Failed to fetch spec from Appwrite server ' );
200192 }
201193
202- $ whitelist = ['php ' , 'cli ' , 'java ' , ' node ' , 'ruby ' , 'python ' , 'typescript ' , 'deno ' , 'dotnet ' , 'dart ' ];
194+ $ whitelist = ['php ' , 'cli ' , 'node ' , 'ruby ' , 'python ' , 'typescript ' , 'deno ' , 'dotnet ' , 'dart ' ];
203195
204196 foreach ($ this ->languages as $ language => $ options ) {
205- if (!empty ($ whitelist ) && !in_array ($ language , $ whitelist )) {
197+ if (!empty ($ whitelist ) && !in_array ($ language , $ whitelist )) {
206198 continue ;
207199 }
208200
209- $ sdk = new SDK (new $ options ['class ' ](), new Swagger2 ($ spec ));
201+ $ sdk = new SDK (new $ options ['class ' ](), new Swagger2 ($ spec ));
210202
211203 $ sdk
212204 ->setDescription ('Repo description goes here ' )
@@ -222,7 +214,7 @@ public function testHTTPSuccess()
222214 ->setLicenseContent ('demo license ' )
223215 ->setChangelog ('--changelog-- ' )
224216 ->setDefaultHeaders ([
225- 'X-Appwrite-Response-Format ' => '0.6.2 ' ,
217+ 'X-Appwrite-Response-Format ' => '0.7.0 ' ,
226218 ])
227219 ;
228220
@@ -233,21 +225,21 @@ public function testHTTPSuccess()
233225 /**
234226 * Build SDK
235227 */
236- if (isset ($ options ['build ' ])) {
237-
228+ if (isset ($ options ['build ' ])) {
229+
238230 foreach ($ options ['build ' ] as $ key => $ command ) {
239231 echo "Building phase # {$ key } for {$ language } package... \n" ;
240232 echo "Executing: {$ command }\n" ;
241-
233+
242234 $ output = [];
243235
244236 ob_end_clean ();
245- var_dump ('Build Executing: ' . $ command );
237+ var_dump ('Build Executing: ' . $ command );
246238 ob_start ();
247239
248240 exec ($ command , $ output );
249241
250- foreach ($ output as $ i => $ row ) {
242+ foreach ($ output as $ i => $ row ) {
251243 echo "{$ i }. {$ row }\n" ;
252244 }
253245 }
@@ -260,14 +252,14 @@ public function testHTTPSuccess()
260252 echo "Running tests for the {$ key } environment... \n" ;
261253
262254 $ output = [];
263-
255+
264256 ob_end_clean ();
265- var_dump ('Env Executing: ' . $ command );
257+ var_dump ('Env Executing: ' . $ command );
266258 ob_start ();
267-
259+
268260 exec ($ command , $ output );
269261
270- foreach ($ output as $ i => $ row ) {
262+ foreach ($ output as $ i => $ row ) {
271263 echo "{$ row }\n" ;
272264 }
273265
@@ -284,14 +276,15 @@ public function testHTTPSuccess()
284276 $ this ->assertEquals ('PUT:/v1/mock/tests/bar:passed ' , $ output [7 ] ?? '' );
285277 $ this ->assertEquals ('PATCH:/v1/mock/tests/bar:passed ' , $ output [8 ] ?? '' );
286278 $ this ->assertEquals ('DELETE:/v1/mock/tests/bar:passed ' , $ output [9 ] ?? '' );
287-
288279 $ this ->assertEquals ('GET:/v1/mock/tests/general/redirect/done:passed ' , $ output [10 ]);
289-
290- if ($ options ['supportUpload ' ]) {
291- $ this ->assertEquals ($ output [11 ], 'POST:/v1/mock/tests/general/upload:passed ' );
280+ $ this ->assertEquals ($ output [11 ], 'POST:/v1/mock/tests/general/upload:passed ' );
281+
282+ if ($ options ['supportException ' ]) {
283+ $ this ->assertEquals ($ output [12 ], 'Mock 400 error ' );
284+ $ this ->assertEquals ($ output [13 ], 'Server Error ' );
292285 }
293286 }
294287 }
295-
288+
296289 }
297290}
0 commit comments