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

org.opengis.cite.ogcapifeatures10.conformance.CommonFixture Maven / Gradle / Ivy

package org.opengis.cite.ogcapifeatures10.conformance;

import static io.restassured.RestAssured.given;

import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.net.URI;

import org.opengis.cite.ogcapifeatures10.conformance.SuiteAttribute;
import org.opengis.cite.ogcapifeatures10.util.ClientUtils;
import org.opengis.cite.ogcapifeatures10.util.RequestLimitFilter;
import org.testng.ITestContext;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;

import io.restassured.config.JsonConfig;
import io.restassured.config.RestAssuredConfig;
import io.restassured.filter.log.RequestLoggingFilter;
import io.restassured.filter.log.ResponseLoggingFilter;
import io.restassured.path.json.config.JsonPathConfig;
import io.restassured.path.json.config.JsonPathConfig.NumberReturnType;
import io.restassured.specification.RequestSpecification;

/**
 * A supporting base class that sets up a common test fixture. These configuration methods
 * are invoked before those defined in a subclass.
 */
public class CommonFixture {

	private ByteArrayOutputStream requestOutputStream = new ByteArrayOutputStream();

	private ByteArrayOutputStream responseOutputStream = new ByteArrayOutputStream();

	protected RequestLoggingFilter requestLoggingFilter;

	protected ResponseLoggingFilter responseLoggingFilter;

	protected URI rootUri;

	/**
	 * Initializes the common test fixture with a client component for interacting with
	 * HTTP endpoints.
	 * @param testContext The test context that contains all the information for a test
	 * run, including suite attributes.
	 */
	@BeforeClass
	public void initCommonFixture(ITestContext testContext) {
		initLogging();
		rootUri = (URI) testContext.getSuite().getAttribute(SuiteAttribute.IUT.getName());
	}

	/**
	 * 

* clearMessages. *

*/ @BeforeMethod public void clearMessages() { initLogging(); } /** *

* getRequest. *

* @return a {@link java.lang.String} object */ public String getRequest() { return requestOutputStream.toString(); } /** *

* getResponse. *

* @return a {@link java.lang.String} object */ public String getResponse() { return responseOutputStream.toString(); } /** *

* init. *

* @return a {@link io.restassured.specification.RequestSpecification} object */ protected RequestSpecification init() { JsonConfig jsonConfig = JsonConfig.jsonConfig().numberReturnType(NumberReturnType.DOUBLE); RestAssuredConfig config = RestAssuredConfig.newConfig().jsonConfig(jsonConfig); return given().filters(new RequestLimitFilter(), requestLoggingFilter, responseLoggingFilter) .log() .all() .with() .config(config); } /** * Obtains the (XML) response entity as a DOM Document. This convenience method wraps * a static method call to facilitate unit testing (Mockito workaround). * @param response A representation of an HTTP response message. * @param targetURI The target URI from which the entity was retrieved (may be null). * @return A Document representing the entity. * * @see ClientUtils#getResponseEntityAsDocument public Document * getResponseEntityAsDocument( ClientResponse response, String targetURI ) { return * ClientUtils.getResponseEntityAsDocument( response, targetURI ); } */ /** * Builds an HTTP request message that uses the GET method. This convenience method * wraps a static method call to facilitate unit testing (Mockito workaround). * @return A ClientRequest object. * * @see ClientUtils#buildGetRequest public ClientRequest buildGetRequest( URI * endpoint, Map qryParams, MediaType... mediaTypes ) { return * ClientUtils.buildGetRequest( endpoint, qryParams, mediaTypes ); } */ private void initLogging() { this.requestOutputStream = new ByteArrayOutputStream(); this.responseOutputStream = new ByteArrayOutputStream(); PrintStream requestPrintStream = new PrintStream(requestOutputStream, true); PrintStream responsePrintStream = new PrintStream(responseOutputStream, true); requestLoggingFilter = new RequestLoggingFilter(requestPrintStream); responseLoggingFilter = new ResponseLoggingFilter(responsePrintStream); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy