@@ -15,9 +15,62 @@ public function test238AddSupportForEmptySecurityRequirementObjectInSecurityRequ
15
15
$ this ->assertInstanceOf (\cebe \openapi \spec \SecurityRequirements::class, $ openapi ->paths ->getPath ('/path-secured ' )->getOperations ()['get ' ]->security );
16
16
$ this ->assertSame (json_decode (json_encode ($ openapi ->paths ->getPath ('/path-secured ' )->getOperations ()['get ' ]->security ->getSerializableData ()), true ), [[]]);
17
17
18
- // return; # TODO
19
- // $openapi = Reader::readFromJsonFile(__DIR__.'/data/issue/238/spec.json');
20
- // $this->assertInstanceOf(\cebe\openapi\SpecObjectInterface::class, $openapi);
18
+ $ openapiJson = Reader::readFromJson (<<<JSON
19
+ {
20
+ "openapi": "3.0.0",
21
+ "info": {
22
+ "title": "Secured API",
23
+ "version": "1.0.0"
24
+ },
25
+ "paths": {
26
+ "/global-secured": {
27
+ "get": {
28
+ "responses": {
29
+ "200": {
30
+ "description": "OK"
31
+ }
32
+ }
33
+ }
34
+ },
35
+ "/path-secured": {
36
+ "get": {
37
+ "security": [
38
+ {}
39
+ ],
40
+ "responses": {
41
+ "200": {
42
+ "description": "OK"
43
+ }
44
+ }
45
+ }
46
+ }
47
+ },
48
+ "components": {
49
+ "securitySchemes": {
50
+ "ApiKeyAuth": {
51
+ "type": "apiKey",
52
+ "in": "header",
53
+ "name": "X-API-Key"
54
+ },
55
+ "BearerAuth": {
56
+ "type": "http",
57
+ "scheme": "bearer"
58
+ }
59
+ }
60
+ },
61
+ "security": [
62
+ {
63
+ "ApiKeyAuth": []
64
+ }
65
+ ]
66
+ }
67
+
68
+ JSON
69
+ );
70
+
71
+ $ this ->assertInstanceOf (\cebe \openapi \SpecObjectInterface::class, $ openapiJson );
72
+ $ this ->assertInstanceOf (\cebe \openapi \spec \SecurityRequirements::class, $ openapiJson ->paths ->getPath ('/path-secured ' )->getOperations ()['get ' ]->security );
73
+ $ this ->assertSame (json_decode (json_encode ($ openapiJson ->paths ->getPath ('/path-secured ' )->getOperations ()['get ' ]->security ->getSerializableData ()), true ), [[]]);
21
74
}
22
75
23
76
public function test238AddSupportForEmptySecurityRequirementObjectInSecurityRequirementWrite ()
@@ -43,6 +96,31 @@ public function test238AddSupportForEmptySecurityRequirementObjectInSecurityRequ
43
96
),
44
97
$ yaml
45
98
);
99
+
100
+ $ openapiJson = $ this ->createOpenAPI ([
101
+ 'security ' => new SecurityRequirements ([
102
+ []
103
+ ]),
104
+ ]);
105
+
106
+ $ json = Writer::writeToJson ($ openapiJson );
107
+
108
+ $ this ->assertEquals (preg_replace ('~\R~ ' , "\n" , <<<JSON
109
+ {
110
+ "openapi": "3.0.0",
111
+ "info": {
112
+ "title": "Test API",
113
+ "version": "1.0.0"
114
+ },
115
+ "paths": {},
116
+ "security": [
117
+ {}
118
+ ]
119
+ }
120
+ JSON
121
+ ),
122
+ $ json
123
+ );
46
124
}
47
125
48
126
private function createOpenAPI ($ merge = [])
0 commit comments