Skip to content

Commit 551b05f

Browse files
authored
Merge pull request #129 from marcelthole/add-openapi31-examples
Add Testcases for OpenAPI 3.1
2 parents 4fcc155 + 2cb3b0d commit 551b05f

File tree

3 files changed

+47
-43
lines changed

3 files changed

+47
-43
lines changed

.github/workflows/php.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ name: PHP Composer
22

33
on:
44
push:
5-
branches: [ master ]
5+
branches: [ master, openapi-31 ]
66
pull_request:
7-
branches: [ master ]
7+
branches: [ master, openapi-31 ]
88

99
jobs:
1010
build:

composer.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@
8181
"source": {
8282
"url": "https://github.com/Mermade/openapi3-examples",
8383
"type": "git",
84-
"reference": "3e8740c4994310a5d6a35d9b19e405862326f149"
84+
"reference": "9c2997e1a25919a8182080cc43a4db06d2dc775d"
8585
}
8686
}
8787
},

tests/spec/OpenApiTest.php

+44-40
Original file line numberDiff line numberDiff line change
@@ -104,43 +104,47 @@ public function specProvider()
104104

105105
// examples from https://github.com/Mermade/openapi3-examples
106106
$mermadeExamples = [
107-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/externalPathItemRef.yaml',
108-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/deprecated.yaml',
109-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/swagger2openapi/openapi.json',
110-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/gluecon/example1_from_._Different_parameters.md.yaml',
111-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/gluecon/example1_from_._Fixed_file.md.yaml',
112-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/gluecon/example1_from_._Different_parameters.md.yaml',
113-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/gluecon/example1_from_._Fixed_file.md.yaml',
114-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/gluecon/example1_from_._Fixed_multipart.md.yaml',
115-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/gluecon/example1_from_._Improved_examples.md.yaml',
116-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/gluecon/example1_from_._Improved_pathdescriptions.md.yaml',
117-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/gluecon/example1_from_._Improved_securityschemes.md.yaml',
118-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/gluecon/example1_from_._Improved_serverseverywhere.md.yaml',
119-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/gluecon/example1_from_._New_callbacks.md.yaml',
120-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/gluecon/example1_from_._New_links.md.yaml',
121-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/gluecon/example2_from_._Different_parameters.md.yaml',
122-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/gluecon/example2_from_._Different_requestbody.md.yaml',
123-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/gluecon/example2_from_._Different_servers.md.yaml',
124-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/gluecon/example2_from_._Fixed_multipart.md.yaml',
125-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/gluecon/example2_from_._Improved_securityschemes.md.yaml',
126-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/gluecon/example2_from_._New_callbacks.md.yaml',
127-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/gluecon/example2_from_._New_links.md.yaml',
128-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/gluecon/example3_from_._Different_parameters.md.yaml',
129-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/gluecon/example3_from_._Different_servers.md.yaml',
130-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/gluecon/example4_from_._Different_parameters.md.yaml',
131-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/gluecon/example5_from_._Different_parameters.md.yaml',
107+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/externalPathItemRef.yaml',
108+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/deprecated.yaml',
109+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/swagger2openapi/openapi.json',
110+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/gluecon/example1_from_._Different_parameters.md.yaml',
111+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/gluecon/example1_from_._Fixed_file.md.yaml',
112+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/gluecon/example1_from_._Fixed_multipart.md.yaml',
113+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/gluecon/example1_from_._Improved_examples.md.yaml',
114+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/gluecon/example1_from_._Improved_pathdescriptions.md.yaml',
115+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/gluecon/example1_from_._Improved_securityschemes.md.yaml',
116+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/gluecon/example1_from_._Improved_serverseverywhere.md.yaml',
117+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/gluecon/example1_from_._New_callbacks.md.yaml',
118+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/gluecon/example1_from_._New_links.md.yaml',
119+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/gluecon/example2_from_._Different_parameters.md.yaml',
120+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/gluecon/example2_from_._Different_requestbody.md.yaml',
121+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/gluecon/example2_from_._Different_servers.md.yaml',
122+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/gluecon/example2_from_._Fixed_multipart.md.yaml',
123+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/gluecon/example2_from_._Improved_securityschemes.md.yaml',
124+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/gluecon/example2_from_._New_callbacks.md.yaml',
125+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/gluecon/example2_from_._New_links.md.yaml',
126+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/gluecon/example3_from_._Different_parameters.md.yaml',
127+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/gluecon/example3_from_._Different_servers.md.yaml',
128+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/gluecon/example4_from_._Different_parameters.md.yaml',
129+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/gluecon/example5_from_._Different_parameters.md.yaml',
132130
// TODO symfony/yaml can not read this file!?
133-
// __DIR__ . '/../../vendor/mermade/openapi3-examples/pass/OAI/api-with-examples.yaml',
134-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/OAI/petstore-expanded.yaml',
135-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/OAI/petstore.yaml',
136-
__DIR__ . '/../../vendor/mermade/openapi3-examples/pass/OAI/uber.yaml',
137-
138-
__DIR__ . '/../../vendor/mermade/openapi3-examples/malicious/rapid7-html.json',
139-
__DIR__ . '/../../vendor/mermade/openapi3-examples/malicious/rapid7-java.json',
140-
__DIR__ . '/../../vendor/mermade/openapi3-examples/malicious/rapid7-js.json',
141-
__DIR__ . '/../../vendor/mermade/openapi3-examples/malicious/rapid7-php.json',
142-
__DIR__ . '/../../vendor/mermade/openapi3-examples/malicious/rapid7-ruby.json',
143-
// __DIR__ . '/../../vendor/mermade/openapi3-examples/malicious/yamlbomb.yaml',
131+
// __DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/OAI/api-with-examples.yaml',
132+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/OAI/petstore-expanded.yaml',
133+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/OAI/petstore.yaml',
134+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/pass/OAI/uber.yaml',
135+
136+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/malicious/rapid7-html.json',
137+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/malicious/rapid7-java.json',
138+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/malicious/rapid7-js.json',
139+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/malicious/rapid7-php.json',
140+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/malicious/rapid7-ruby.json',
141+
// __DIR__ . '/../../vendor/mermade/openapi3-examples/3.0/malicious/yamlbomb.yaml',
142+
143+
// OpenAPI 3.1 examples
144+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.1/pass/minimal_comp.yaml',
145+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.1/pass/minimal_hooks.yaml',
146+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.1/pass/minimal_paths.yaml',
147+
__DIR__ . '/../../vendor/mermade/openapi3-examples/3.1/pass/path_var_empty_pathitem.yaml',
144148
];
145149

146150
// examples from https://github.com/APIs-guru/openapi-directory/tree/openapi3.0.0/APIs
@@ -177,9 +181,9 @@ public function specProvider()
177181
$nexmoExamples
178182
);
179183
foreach($all as $path) {
180-
yield [
181-
substr($path, strlen(__DIR__ . '/../../vendor/')),
182-
basename(dirname($path, 2)) . DIRECTORY_SEPARATOR . basename(dirname($path, 1)) . DIRECTORY_SEPARATOR . basename($path)
184+
$pathWithoutVendorPrefix = substr($path, strlen(__DIR__ . '/../../vendor/'));
185+
yield $pathWithoutVendorPrefix => [
186+
$pathWithoutVendorPrefix
183187
];
184188
}
185189
}
@@ -219,7 +223,7 @@ public function testSpecs($openApiFile)
219223
$this->assertTrue($result);
220224

221225
// openapi
222-
$this->assertStringStartsWith('3.0.', $openapi->openapi);
226+
$this->assertNotSame(OpenApi::VERSION_UNSUPPORTED, $openapi->getMajorVersion());
223227

224228
// info
225229
$this->assertInstanceOf(\cebe\openapi\spec\Info::class, $openapi->info);

0 commit comments

Comments
 (0)