All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.microprofile.openapi.tck.AppTestBase Maven / Gradle / Ivy

There is a newer version: 4.0.2
Show newest version
/**
 * Copyright (c) 2017 Contributors to the Eclipse Foundation
 * 

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *

* http://www.apache.org/licenses/LICENSE-2.0 *

* Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.eclipse.microprofile.openapi.tck; import static io.restassured.RestAssured.given; import java.net.MalformedURLException; import java.net.URL; import org.apache.commons.lang3.StringUtils; import org.eclipse.microprofile.openapi.tck.utils.YamlToJsonFilter; import org.jboss.arquillian.testng.Arquillian; import org.testng.annotations.BeforeSuite; import org.testng.annotations.DataProvider; import io.restassured.RestAssured; import io.restassured.http.ContentType; import io.restassured.parsing.Parser; import io.restassured.response.ValidatableResponse; public abstract class AppTestBase extends Arquillian { private static final String DEFAULT_PROTOCOL = "http"; private static final String DEFAULT_HOST = "localhost"; private static final int DEFAULT_PORT = 9080; private static String serverUrl; private static String username; private static String password; @BeforeSuite public static void setUp() throws MalformedURLException { // set base URI and port number to use for all requests serverUrl = System.getProperty("test.url"); String protocol = DEFAULT_PROTOCOL; String host = DEFAULT_HOST; int port = DEFAULT_PORT; if (serverUrl != null) { URL url = new URL(serverUrl); protocol = url.getProtocol(); host = url.getHost(); port = (url.getPort() == -1) ? DEFAULT_PORT : url.getPort(); } RestAssured.baseURI = protocol + "://" + host; RestAssured.port = port; username = System.getProperty("test.user"); password = System.getProperty("test.pwd"); if (username != null && password != null) { RestAssured.authentication = RestAssured.basic(username, password); RestAssured.useRelaxedHTTPSValidation(); } RestAssured.defaultParser = Parser.JSON; if (StringUtils.isBlank(serverUrl)) { serverUrl = DEFAULT_PROTOCOL + "://" + DEFAULT_HOST + ":" + DEFAULT_PORT; } // Register a filter that performs YAML to JSON conversion RestAssured.filters(new YamlToJsonFilter()); } public ValidatableResponse callEndpoint(String type) { ValidatableResponse vr; if ("JSON".equals(type)) { vr = given().accept(ContentType.JSON).when().get("/openapi").then().statusCode(200); } else { // It seems there is no standard for YAML vr = given().accept(ContentType.ANY).when().get("/openapi").then().statusCode(200); } return vr; } @DataProvider(name = "formatProvider") public Object[][] provide() throws Exception { return new Object[][] { { "JSON" }, { "YAML" } }; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy