Skip to content

Commit 3f20bff

Browse files
committed
Test operation security alternatives
1 parent eef1cd2 commit 3f20bff

1 file changed

Lines changed: 36 additions & 0 deletions

File tree

modules/swagger-parser-v3/src/test/java/io/swagger/v3/parser/util/OpenAPIDeserializerTest.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3364,6 +3364,42 @@ public void readEmptySecurityRequirement() throws Exception {
33643364
assertEquals(openAPI.getSecurity().size(), 4);
33653365
}
33663366

3367+
@Test
3368+
public void readOperationSecurityWithAnonymousAlternative() {
3369+
final String yaml = "openapi: 3.0.3\n" +
3370+
"info:\n" +
3371+
" title: Security alternatives\n" +
3372+
" version: 1.0.0\n" +
3373+
"paths:\n" +
3374+
" /search:\n" +
3375+
" get:\n" +
3376+
" security:\n" +
3377+
" - {}\n" +
3378+
" - ApiKeyAuth: []\n" +
3379+
" responses:\n" +
3380+
" '200':\n" +
3381+
" description: ok\n" +
3382+
"components:\n" +
3383+
" securitySchemes:\n" +
3384+
" ApiKeyAuth:\n" +
3385+
" type: apiKey\n" +
3386+
" in: header\n" +
3387+
" name: X-API-Key\n";
3388+
3389+
final SwaggerParseResult result = new OpenAPIV3Parser().readContents(yaml, null, null);
3390+
3391+
assertNotNull(result.getOpenAPI());
3392+
assertTrue(result.getMessages().isEmpty(), result.getMessages().toString());
3393+
3394+
final Operation operation = result.getOpenAPI().getPaths().get("/search").getGet();
3395+
final List<SecurityRequirement> security = operation.getSecurity();
3396+
3397+
assertEquals(security.size(), 2);
3398+
assertTrue(security.get(0).isEmpty());
3399+
assertTrue(security.get(1).containsKey("ApiKeyAuth"));
3400+
assertTrue(security.get(1).get("ApiKeyAuth").isEmpty());
3401+
}
3402+
33673403
@Test
33683404
public void readEmptyServerObject() throws Exception {
33693405
final ObjectMapper mapper = new ObjectMapper(new YAMLFactory());

0 commit comments

Comments
 (0)