diff --git a/src/main/jastadd/RandomRequestGenerator.jrag b/src/main/jastadd/RandomRequestGenerator.jrag index a29e3f105fd5a4e81c65750e3fbd4c13fa26c700..f6a996b0eecfd406e0c9296e556329730c0ab2c2 100644 --- a/src/main/jastadd/RandomRequestGenerator.jrag +++ b/src/main/jastadd/RandomRequestGenerator.jrag @@ -40,39 +40,40 @@ aspect RandomRequestGenerator{ return pathRef; } - syn boolean OpenAPIObject.generateRequests(){ + syn List<String> OpenAPIObject.generateRequests(){ + List<String> urls = new ArrayList<>(); try { for (PathsObject p : getPList()) - p.generateUrl(); + urls.addAll(p.generateUrl()); } catch (Exception e) { - return false; + System.out.println(e.toString()); + return null; } - return true; + return urls; } - inh boolean PathsObject.generateUrl(); + inh List<String> PathsObject.generateUrl(); eq OpenAPIObject.getP(int i).generateUrl(){ - /* + List<String> urls = new ArrayList<>(); try { - PathItemObject p = getPathsObject(i).getPathItemObject(); - String path = getServerObject(0).getUrl(); + PathItemObject p = getP(i).getP().pathItemObject(); + String path = getServ(0).getUrl(); - if (p.hasGet()) - p.getGet().generateRandomUrl(path + getPathsObject(i).getRef()); - else if (p.hasPost()) - p.getPost().generateRandomUrl(path + getPathsObject(i).getRef()); + if (p.hasG()) + urls.add(p.getG().generateRandomUrl(path + getP(i).getRef())); + else if (p.hasPostOb()) + urls.add(p.getPostOb().generateRandomUrl(path + getP(i).getRef())); - return true; + return urls; } catch (Exception e) { - return false; - }*/ - return true; + System.out.println(e.toString()); + return null; + } } - syn boolean Get.generateRandomUrl(String pathRef){ - /* + syn String Get.generateRandomUrl(String pathRef){ try { - for (ParameterOb o : getOperationObject().getParameterObs()) { + for (ParameterOb o : getO().getPList()) { ParameterObject p = o.parameterObject(); if (p.getIn().equals("path")) pathRef = p.randomPathParameter(pathRef); @@ -80,28 +81,15 @@ aspect RandomRequestGenerator{ pathRef = p.randomQueryParameter(pathRef); } System.out.println("Generated path : " + pathRef); - - for (ResponseTuple t : getOperationObject().getResponseTuples()) { - if (t.getKey().equals("200") && responseCode == 200) { - //System.out.println("Response successfully saved!"); - SchemaOb respSchema = t.getResponseOb().responseObject().getContentTuple(0).getMediaTypeObject().getSchemaOb(); - if (respSchema.schemaObject().getType().equals("array")) - getOperationObject().writeDictionaryWithArray(respSchema, response.toString()); - else - getOperationObject().writeDictionary(respSchema, response.toString()); - } - } - return true; + return pathRef; } catch (Exception e) { System.out.println(e.toString()); - return false; - }*/ - return true; + return null; + } } - syn boolean Post.generateRandomUrl(String pathRef){ - /* + syn String Post.generateRandomUrl(String pathRef){ try { - for (ParameterOb o : getOperationObject().getParameterObs()) { + for (ParameterOb o : getO().getPList()) { ParameterObject p = o.parameterObject(); if (p.getIn().equals("path")) pathRef = p.randomPathParameter(pathRef); @@ -109,23 +97,11 @@ aspect RandomRequestGenerator{ pathRef = p.randomQueryParameter(pathRef); } System.out.println("Generated path : " + pathRef); - - for (ResponseTuple t : getOperationObject().getResponseTuples()) { - if (t.getKey().equals("200") && responseCode == 200) { - //System.out.println("Response successfully saved!"); - SchemaOb respSchema = t.getResponseOb().responseObject().getContentTuple(0).getMediaTypeObject().getSchemaOb(); - if (respSchema.schemaObject().getType().equals("array")) - getOperationObject().writeDictionaryWithArray(respSchema, response.toString()); - else - getOperationObject().writeDictionary(respSchema, response.toString()); - } - } - return true; + return pathRef; } catch (Exception e) { System.out.println(e.toString()); - return false; - }*/ - return true; + return null; + } } syn String ParameterObject.generateRandomString(Random rand,JastAddList<EnumObj> objs){ diff --git a/src/main/jastadd/Reference.jrag b/src/main/jastadd/Reference.jrag index d9f02e91264233b6a89c6f188821fa4a92aaacd5..ac5a211160f1f1dd954408972d617b5d04c5935a 100644 --- a/src/main/jastadd/Reference.jrag +++ b/src/main/jastadd/Reference.jrag @@ -36,6 +36,20 @@ aspect Reference { CallbackTuple contributes this to OpenAPIObject.callbackTuples(); + coll List<PathItemTuple> OpenAPIObject.pathItemTuples() [new ArrayList<>()] root OpenAPIObject; + PathItemTuple contributes this + to OpenAPIObject.pathItemTuples(); + + syn PathItemObject PathItemOb.pathItemObject(); + eq PathItemObject.pathItemObject() = this; + eq PathItemReference.pathItemObject() { + for (PathItemTuple t : root().pathItemTuples()) { + if (t.getKey().equals(getRef().substring(getRef().lastIndexOf("/") + 1, getRef().length()))) + return t.getO().pathItemObject(); + } + return new PathItemObject(); + } + syn ParameterObject ParameterOb.parameterObject(); eq ParameterObject.parameterObject() = this; eq ParameterReference.parameterObject() { diff --git a/src/main/java/de/tudresden/inf/st/openapi/OpenAPIMain.java b/src/main/java/de/tudresden/inf/st/openapi/OpenAPIMain.java index 7e2a6a6b4d05c26eef23e68b6fd26dde7cab3b94..48aa7c374a1f2cf29ec14e5ba74f0e4d44d344fc 100644 --- a/src/main/java/de/tudresden/inf/st/openapi/OpenAPIMain.java +++ b/src/main/java/de/tudresden/inf/st/openapi/OpenAPIMain.java @@ -35,9 +35,12 @@ public class OpenAPIMain { SwaggerParseResult result = new OpenAPIParser().readLocation(fileName, null, null); OpenAPI openAPI = result.getOpenAPI(); List<String> generatedURLs = new ArrayList<>(); + List<String> dictionary = new ArrayList<>(); jastAddObject = OpenAPIObject.parseOpenAPI(openAPI); + generatedURLs = jastAddObject.generateRequests(); + URL expUrl = OpenAPIMain.class.getClassLoader().getResource(fileName); File file = null; if (expUrl != null) {