Add more test cases for global security

This commit is contained in:
xhh 2015-10-16 10:30:26 +08:00
parent 84928abd8d
commit 02a9fe2618
2 changed files with 46 additions and 6 deletions

View File

@ -90,7 +90,7 @@ public class DefaultGeneratorTest {
gen.opts(clientOptInput); gen.opts(clientOptInput);
Map<String, List<CodegenOperation>> paths = gen.processPaths(swagger.getPaths()); Map<String, List<CodegenOperation>> paths = gen.processPaths(swagger.getPaths());
CodegenSecurity apiKey, petstoreAuth; CodegenSecurity cs, apiKey, apiKey2, petstoreAuth;
// security of "getPetById": api_key // security of "getPetById": api_key
CodegenOperation getPetById = findCodegenOperationByOperationId(paths, "getPetById"); CodegenOperation getPetById = findCodegenOperationByOperationId(paths, "getPetById");
@ -106,16 +106,41 @@ public class DefaultGeneratorTest {
assertEquals(petstoreAuth.name, "petstore_auth"); assertEquals(petstoreAuth.name, "petstore_auth");
assertEquals(petstoreAuth.type, "oauth2"); assertEquals(petstoreAuth.type, "oauth2");
// security of "loginUser": api_key (from global security) // security of "loginUser": api_key, petstore_auth (from global security)
CodegenOperation loginUser = findCodegenOperationByOperationId(paths, "loginUser"); CodegenOperation loginUser = findCodegenOperationByOperationId(paths, "loginUser");
assertEquals(loginUser.authMethods.size(), 1); assertEquals(loginUser.authMethods.size(), 2);
apiKey = loginUser.authMethods.iterator().next(); cs = loginUser.authMethods.get(0);
if ("api_key".equals(cs.name)) {
apiKey = cs;
petstoreAuth = loginUser.authMethods.get(1);
} else {
petstoreAuth = cs;
apiKey = loginUser.authMethods.get(1);
}
assertEquals(apiKey.name, "api_key"); assertEquals(apiKey.name, "api_key");
assertEquals(apiKey.type, "apiKey"); assertEquals(apiKey.type, "apiKey");
assertEquals(petstoreAuth.name, "petstore_auth");
assertEquals(petstoreAuth.type, "oauth2");
// security of "logoutUser": null (override global security) // security of "logoutUser": null (override global security)
CodegenOperation logoutUser = findCodegenOperationByOperationId(paths, "logoutUser"); CodegenOperation logoutUser = findCodegenOperationByOperationId(paths, "logoutUser");
assertNull(logoutUser.authMethods); assertNull(logoutUser.authMethods);
// security of "getUserByName": api_key, api_key2 (override global security)
CodegenOperation getUserByName = findCodegenOperationByOperationId(paths, "getUserByName");
assertEquals(getUserByName.authMethods.size(), 2);
cs = getUserByName.authMethods.get(0);
if ("api_key".equals(cs.name)) {
apiKey = cs;
apiKey2 = getUserByName.authMethods.get(1);
} else {
apiKey2 = cs;
apiKey = getUserByName.authMethods.get(1);
}
assertEquals(apiKey.name, "api_key");
assertEquals(apiKey.type, "apiKey");
assertEquals(apiKey2.name, "api_key2");
assertEquals(apiKey2.type, "apiKey");
} }
@Test @Test

View File

@ -738,7 +738,13 @@
"400": { "400": {
"description": "Invalid username supplied" "description": "Invalid username supplied"
} }
} },
"security": [
{
"api_key": [],
"api_key2": []
}
]
}, },
"put": { "put": {
"tags": [ "tags": [
@ -815,6 +821,11 @@
"name": "api_key", "name": "api_key",
"in": "header" "in": "header"
}, },
"api_key2": {
"type": "apiKey",
"name": "api_key2",
"in": "query"
},
"petstore_auth": { "petstore_auth": {
"type": "oauth2", "type": "oauth2",
"authorizationUrl": "http://petstore.swagger.io/api/oauth/dialog", "authorizationUrl": "http://petstore.swagger.io/api/oauth/dialog",
@ -827,7 +838,11 @@
}, },
"security": [ "security": [
{ {
"api_key": [] "api_key": [],
"petstore_auth": [
"write:pets",
"read:pets"
]
} }
], ],
"definitions": { "definitions": {