|
1 | 1 | package io.swagger.deserialization;
|
2 | 2 |
|
3 | 3 | import com.fasterxml.jackson.databind.ObjectMapper;
|
| 4 | +import io.swagger.oas.models.security.SecurityRequirement; |
| 5 | +import io.swagger.oas.models.security.SecurityScheme; |
4 | 6 | import io.swagger.util.TestUtils;
|
5 | 7 | import io.swagger.oas.models.OpenAPI;
|
6 | 8 | import io.swagger.oas.models.PathItem;
|
|
13 | 15 | import org.testng.annotations.Test;
|
14 | 16 |
|
15 | 17 | import java.io.IOException;
|
| 18 | +import java.util.List; |
16 | 19 | import java.util.Map;
|
17 | 20 |
|
18 | 21 | import static org.testng.Assert.assertEquals;
|
@@ -146,42 +149,74 @@ private void assertIsRefResponse(Object response, String expectedRef) {
|
146 | 149 | assertEquals(refResponse.get$ref(), expectedRef);
|
147 | 150 | }
|
148 | 151 |
|
149 |
| - // TODO #2312 |
150 |
| -/* |
151 | 152 | @Test
|
152 | 153 | public void testDeserializeSecurity() throws Exception {
|
153 |
| - final Swagger swagger = TestUtils.deserializeJsonFileFromClasspath("specFiles/securityDefinitions.json", Swagger.class); |
| 154 | + final OpenAPI swagger = TestUtils.deserializeJsonFileFromClasspath("specFiles/securityDefinitions.json", OpenAPI.class); |
154 | 155 |
|
155 | 156 | final List<SecurityRequirement> security = swagger.getSecurity();
|
156 |
| - final List<SecurityRequirement> securityRequirements = swagger.getSecurityRequirement(); |
157 | 157 | assertNotNull(security);
|
158 |
| - assertEquals(security, securityRequirements); |
| 158 | + assertEquals(security.size(), 3); |
159 | 159 |
|
160 |
| - assertEquals(security.size(), 2); |
| 160 | + final Map<String, SecurityScheme> securitySchemes = swagger.getComponents().getSecuritySchemes(); |
| 161 | + assertNotNull(securitySchemes); |
| 162 | + assertEquals(securitySchemes.size(), 4); |
| 163 | + |
| 164 | + { |
| 165 | + final SecurityScheme scheme = securitySchemes.get("petstore_auth"); |
| 166 | + assertNotNull(scheme); |
| 167 | + assertEquals(scheme.getType().toString(), "oauth2"); |
| 168 | + assertEquals(scheme.getFlows().getImplicit().getAuthorizationUrl(), "http://petstore.swagger.io/oauth/dialog"); |
| 169 | + assertEquals(scheme.getFlows().getImplicit().getScopes().get("write:pets"), "modify pets in your account"); |
| 170 | + assertEquals(scheme.getFlows().getImplicit().getScopes().get("read:pets"), "read your pets"); |
| 171 | + } |
| 172 | + |
| 173 | + { |
| 174 | + final SecurityScheme scheme = securitySchemes.get("api_key"); |
| 175 | + assertNotNull(scheme); |
| 176 | + assertEquals(scheme.getType().toString(), "apiKey"); |
| 177 | + assertEquals(scheme.getIn().toString(), "header"); |
| 178 | + assertEquals(scheme.getName(), "api_key"); |
| 179 | + } |
| 180 | + |
| 181 | + { |
| 182 | + final SecurityScheme scheme = securitySchemes.get("http"); |
| 183 | + assertNotNull(scheme); |
| 184 | + assertEquals(scheme.getType().toString(), "http"); |
| 185 | + assertEquals(scheme.getScheme(), "basic"); |
| 186 | + } |
| 187 | + |
| 188 | + { |
| 189 | + final SecurityScheme scheme = securitySchemes.get("open_id_connect"); |
| 190 | + assertNotNull(scheme); |
| 191 | + assertEquals(scheme.getType().toString(), "openIdConnect"); |
| 192 | + assertEquals(scheme.getOpenIdConnectUrl(), "http://petstore.swagger.io/openid"); |
| 193 | + } |
161 | 194 |
|
162 | 195 | {
|
163 | 196 | final SecurityRequirement securityRequirement = security.get(0);
|
164 |
| - final Map<String, List<String>> requirements = securityRequirement.getRequirements(); |
165 |
| - final List<String> basic_auth = requirements.get("basic_auth"); |
166 |
| - assertNotNull(basic_auth); |
167 |
| - assertTrue(basic_auth.isEmpty()); |
168 |
| -
|
169 |
| - final List<String> api_key = requirements.get("api_key"); |
170 |
| - assertNotNull(api_key); |
171 |
| - assertTrue(api_key.isEmpty()); |
| 197 | + final List<String> scopes = securityRequirement.get("petstore_auth"); |
| 198 | + assertNotNull(scopes); |
| 199 | + assertEquals(scopes.size(), 2); |
| 200 | + assertTrue(scopes.contains("write:pets")); |
| 201 | + assertTrue(scopes.contains("read:pets")); |
| 202 | + |
172 | 203 | }
|
173 | 204 |
|
174 | 205 | {
|
175 | 206 | final SecurityRequirement securityRequirement = security.get(1);
|
176 |
| - final Map<String, List<String>> requirements = securityRequirement.getRequirements(); |
177 |
| - final List<String> oauth2 = requirements.get("oauth2"); |
178 |
| - assertNotNull(oauth2); |
179 |
| - assertFalse(oauth2.isEmpty()); |
| 207 | + final List<String> scopes = securityRequirement.get("api_key"); |
| 208 | + assertNotNull(scopes); |
| 209 | + assertTrue(scopes.isEmpty()); |
| 210 | + |
| 211 | + } |
| 212 | + |
| 213 | + { |
| 214 | + final SecurityRequirement securityRequirement = security.get(2); |
| 215 | + final List<String> scopes = securityRequirement.get("http"); |
| 216 | + assertNotNull(scopes); |
| 217 | + assertTrue(scopes.isEmpty()); |
180 | 218 |
|
181 |
| - assertEquals(oauth2.get(0), "hello"); |
182 |
| - assertEquals(oauth2.get(1), "world"); |
183 | 219 | }
|
184 | 220 | }
|
185 |
| -*/ |
186 | 221 |
|
187 | 222 | }
|
0 commit comments