diff --git a/build.gradle b/build.gradle index db1ec197829cd685633da87968e67ba8c15aafaa..b8a252d168b4b3013ef9eed96247968d407b5a53 100644 --- a/build.gradle +++ b/build.gradle @@ -34,6 +34,7 @@ dependencies { testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: "${junit_jupiter_version}" testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-params', version: "${junit_jupiter_version}" testImplementation group: 'com.jayway.jsonpath', name: 'json-path', version: "${json_path_version}" + testImplementation group: 'commons-validator', name: 'commons-validator', version: "${commons_validator_version}" } buildscript { diff --git a/gradle.properties b/gradle.properties index bd099a2909758dbb009fee0daf90170d78eb03b0..13b7e68714d8de7b279648b08afd5ad51024eb2f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,4 +3,5 @@ swagger_parser_version = 2.0.30 junit_jupiter_version = 5.7.0 json_path_version = 2.6.0 jastaddgradle_version = 1.13.3 -grammar2uml_version = 0.2.2-13 \ No newline at end of file +grammar2uml_version = 0.2.2-13 +commons_validator_version = 1.7 \ No newline at end of file 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 c5960626435bf0a8ea61f788d1a28d7904798ae6..d7107bdb6c91ff374cbb929165f7ffcaf480d552 100644 --- a/src/main/java/de/tudresden/inf/st/openapi/OpenAPIMain.java +++ b/src/main/java/de/tudresden/inf/st/openapi/OpenAPIMain.java @@ -20,6 +20,7 @@ import org.apache.http.impl.client.HttpClientBuilder; import javax.net.ssl.HttpsURLConnection; import java.io.*; +import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.Collections; @@ -123,6 +124,8 @@ public class OpenAPIMain { } } } catch (Exception e) { + if (e instanceof MalformedURLException) + System.out.println("MalformedURLException"); //System.out.println(e.toString()); } return dict; @@ -161,6 +164,8 @@ public class OpenAPIMain { } } } catch (Exception e) { + if (e instanceof MalformedURLException) + System.out.println("MalformedURLException"); //System.out.println(e.toString()); } return dict; diff --git a/src/test/java/openapi/OpenAPIMain_test.java b/src/test/java/openapi/OpenAPIMain_test.java index e1ba8d186c84769f419fe8c173308357d163ecba..4041f3854de4aa284359a947d19a681fe2baad6c 100644 --- a/src/test/java/openapi/OpenAPIMain_test.java +++ b/src/test/java/openapi/OpenAPIMain_test.java @@ -12,6 +12,7 @@ import io.swagger.v3.core.util.Yaml; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.parser.OpenAPIV3Parser; import io.swagger.v3.parser.core.models.SwaggerParseResult; +import org.apache.commons.validator.routines.UrlValidator; import org.junit.jupiter.api.*; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -64,6 +65,25 @@ public class OpenAPIMain_test { compareJson(expectedNode, actualNode, Paths.get(file.getPath())); } + @MethodSource("resources") + @ParameterizedTest + void RandomUrlTest(File file) throws Exception { + OpenAPIObject jastAddObject; + OpenAPI POJOOpenAPI; + List<String> urls; + UrlValidator urlValidator = new UrlValidator(); + + SwaggerParseResult result = new OpenAPIParser().readLocation(file.getPath(), null, null); + POJOOpenAPI = result.getOpenAPI(); + System.out.println("Loading expression DSL file '" + file + "'."); + + jastAddObject = OpenAPIObject.parseOpenAPI(POJOOpenAPI); + urls = jastAddObject.generateRequests(); + + for ( String url : urls ) + Assertions.assertFalse( urlValidator.isValid(url), "validation of the generated Urls not succeeded" ); + } + static Stream<File> resources() { return resources.stream(); }