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 ' => [
@@ -58,11 +57,11 @@ class SDKTest extends TestCase
5857 'dart-2.12 ' => 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/dart --env PUB_CACHE=vendor google/dart:2.12 dart pub run tests/tests.dart ' ,
5958 'dart-2.13-dev ' => 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/dart --env PUB_CACHE=vendor google/dart:2.13-dev dart pub run tests/tests.dart ' ,
6059 ],
61- 'supportRedirect ' => true ,
62- 'supportUpload ' => true ,
60+ 'supportException ' => true ,
6361 ],
6462
65- 'java ' => [
63+ //Skipping for now, enable it once Java SDK is in Good enough shape
64+ /* 'java' => [
6665 'class' => 'Appwrite\SDK\Language\Java',
6766 'build' => [
6867 'mkdir -p tests/sdks/java/src/test/java/io/appwrite/services',
@@ -72,9 +71,8 @@ class SDKTest extends TestCase
7271 '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',
7372 //'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',
7473 ],
75- 'supportRedirect ' => false ,
76- 'supportUpload ' => false ,
77- ],
74+ 'supportException' => false,
75+ ], */
7876
7977 'dotnet ' => [
8078 'class ' => 'Appwrite\SDK\Language\DotNet ' ,
@@ -86,74 +84,69 @@ class SDKTest extends TestCase
8684 ],
8785 'envs ' => [
8886 '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 ' ,
89- '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 '
87+ '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 ' ,
9088 ],
91- 'supportRedirect ' => true ,
92- 'supportUpload ' => true ,
89+ 'supportException ' => false ,
9390 ],
9491
9592 'typescript ' => [
9693 'class ' => 'Appwrite\SDK\Language\Typescript ' ,
9794 'build ' => [
9895 'cp tests/languages/typescript/tests.ts tests/sdks/typescript/tests.ts ' ,
99- 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/typescript node:14.5-alpine npm install ' , // npm list --depth 0 &&
96+ 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/typescript node:14.5-alpine npm install ' , // npm list --depth 0 &&
10097 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/typescript node:14.5-alpine ls node_modules/.bin ' ,
101- 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/typescript node:14.5-alpine node_modules/.bin/tsc --lib ES6,DOM tests '
98+ 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/typescript node:14.5-alpine node_modules/.bin/tsc --lib ES6,DOM tests ' ,
10299 ],
103100 'envs ' => [
104101 'nodejs-14 ' => 'docker run --rm -v $(pwd):/app -w /app node:14.5-alpine node tests/sdks/typescript/tests.js ' ,
105102 ],
106- 'supportRedirect ' => false ,
107- 'supportUpload ' => false ,
103+ 'supportException ' => false ,
108104 ],
109-
105+
110106 'deno ' => [
111107 'class ' => 'Appwrite\SDK\Language\Deno ' ,
112108 'build ' => [
113109 ],
114110 'envs ' => [
115111 '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
116112 ],
117- 'supportRedirect ' => true ,
118- 'supportUpload ' => true ,
113+ 'supportException ' => false ,
119114 ],
120115
121116 'node ' => [
122117 'class ' => 'Appwrite\SDK\Language\Node ' ,
123118 'build ' => [
124- 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/node node:12.12-alpine npm install '
119+ 'docker run --rm -v $(pwd):/app -w /app/tests/sdks/node node:12.12-alpine npm install ' ,
125120 ],
126121 'envs ' => [
127122 'nodejs-8 ' => 'docker run --rm -v $(pwd):/app -w /app node:8.16-alpine node tests/languages/node/test.js ' ,
128123 'nodejs-10 ' => 'docker run --rm -v $(pwd):/app -w /app node:10.16-alpine node tests/languages/node/test.js ' ,
129124 'nodejs-12 ' => 'docker run --rm -v $(pwd):/app -w /app node:12.12-alpine node tests/languages/node/test.js ' ,
130125 'nodejs-14 ' => 'docker run --rm -v $(pwd):/app -w /app node:14.5-alpine node tests/languages/node/test.js ' ,
131126 ],
132- 'supportRedirect ' => true ,
133- 'supportUpload ' => true ,
127+ 'supportException ' => false ,
134128 ],
135129
136130 'ruby ' => [
137131 'class ' => 'Appwrite\SDK\Language\Ruby ' ,
138132 'build ' => [
139- '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" '
133+ '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" ' ,
140134 ],
141135 'envs ' => [
142136 '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 ' ,
143137 '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 ' ,
144138 '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 ' ,
145139 '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 ' ,
146140 ],
147- 'supportRedirect ' => true ,
148- 'supportUpload ' => true ,
141+ 'supportException ' => false ,
149142 ],
150143
151144 'python ' => [
152145 'class ' => 'Appwrite\SDK\Language\Python ' ,
153146 'build ' => [
154147 'cp tests/languages/python/tests.py tests/sdks/python/test.py ' ,
155148 'echo "" > tests/sdks/python/__init__.py ' ,
156- '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 '
149+ '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 ' ,
157150 ],
158151 'envs ' => [
159152 '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 ' ,
@@ -165,8 +158,7 @@ class SDKTest extends TestCase
165158 // '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',
166159 // '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',
167160 ],
168- 'supportRedirect ' => true ,
169- 'supportUpload ' => true ,
161+ 'supportException ' => false ,
170162 ],
171163 ];
172164
@@ -192,18 +184,18 @@ public function testHTTPSuccess()
192184
193185 $ spec = file_get_contents (realpath (__DIR__ . '/resources/spec.json ' ));
194186
195- if (empty ($ spec )) {
187+ if (empty ($ spec )) {
196188 throw new \Exception ('Failed to fetch spec from Appwrite server ' );
197189 }
198190
199- $ whitelist = ['php ' , 'cli ' , 'java ' , ' node ' , 'ruby ' , 'python ' , 'typescript ' , 'deno ' , 'dotnet ' , 'dart ' ];
191+ $ whitelist = ['php ' , 'cli ' , 'node ' , 'ruby ' , 'python ' , 'typescript ' , 'deno ' , 'dotnet ' , 'dart ' ];
200192
201193 foreach ($ this ->languages as $ language => $ options ) {
202- if (!empty ($ whitelist ) && !in_array ($ language , $ whitelist )) {
194+ if (!empty ($ whitelist ) && !in_array ($ language , $ whitelist )) {
203195 continue ;
204196 }
205197
206- $ sdk = new SDK (new $ options ['class ' ](), new Swagger2 ($ spec ));
198+ $ sdk = new SDK (new $ options ['class ' ](), new Swagger2 ($ spec ));
207199
208200 $ sdk
209201 ->setDescription ('Repo description goes here ' )
@@ -230,21 +222,21 @@ public function testHTTPSuccess()
230222 /**
231223 * Build SDK
232224 */
233- if (isset ($ options ['build ' ])) {
234-
225+ if (isset ($ options ['build ' ])) {
226+
235227 foreach ($ options ['build ' ] as $ key => $ command ) {
236228 echo "Building phase # {$ key } for {$ language } package... \n" ;
237229 echo "Executing: {$ command }\n" ;
238-
230+
239231 $ output = [];
240232
241233 ob_end_clean ();
242- var_dump ('Build Executing: ' . $ command );
234+ var_dump ('Build Executing: ' . $ command );
243235 ob_start ();
244236
245237 exec ($ command , $ output );
246238
247- foreach ($ output as $ i => $ row ) {
239+ foreach ($ output as $ i => $ row ) {
248240 echo "{$ i }. {$ row }\n" ;
249241 }
250242 }
@@ -257,14 +249,14 @@ public function testHTTPSuccess()
257249 echo "Running tests for the {$ key } environment... \n" ;
258250
259251 $ output = [];
260-
252+
261253 ob_end_clean ();
262- var_dump ('Env Executing: ' . $ command );
254+ var_dump ('Env Executing: ' . $ command );
263255 ob_start ();
264-
256+
265257 exec ($ command , $ output );
266258
267- foreach ($ output as $ i => $ row ) {
259+ foreach ($ output as $ i => $ row ) {
268260 echo "{$ row }\n" ;
269261 }
270262
@@ -281,14 +273,15 @@ public function testHTTPSuccess()
281273 $ this ->assertEquals ('PUT:/v1/mock/tests/bar:passed ' , $ output [7 ] ?? '' );
282274 $ this ->assertEquals ('PATCH:/v1/mock/tests/bar:passed ' , $ output [8 ] ?? '' );
283275 $ this ->assertEquals ('DELETE:/v1/mock/tests/bar:passed ' , $ output [9 ] ?? '' );
284-
285276 $ this ->assertEquals ('GET:/v1/mock/tests/general/redirect/done:passed ' , $ output [10 ]);
286-
287- if ($ options ['supportUpload ' ]) {
288- $ this ->assertEquals ($ output [11 ], 'POST:/v1/mock/tests/general/upload:passed ' );
277+ $ this ->assertEquals ($ output [11 ], 'POST:/v1/mock/tests/general/upload:passed ' );
278+
279+ if ($ options ['supportException ' ]) {
280+ $ this ->assertEquals ($ output [12 ], 'Mock 400 error ' );
281+ $ this ->assertEquals ($ output [13 ], 'Server Error ' );
289282 }
290283 }
291284 }
292-
285+
293286 }
294287}
0 commit comments