use of ee.jakarta.tck.ws.rs.common.provider.StringBeanRuntimeDelegate in project jaxrs-api by eclipse-ee4j.
the class JAXRSClientIT method getStringHeadersUsingHeaderDelegateTest.
/*
* @testName: getStringHeadersUsingHeaderDelegateTest
*
* @assertion_ids: JAXRS:JAVADOC:446; JAXRS:JAVADOC:455; JAXRS:JAVADOC:456;
* JAXRS:SPEC:85; JAXRS:JAVADOC:427;
*
* @test_Strategy: Get a string view of header values associated with the
* message. The method converts the non-string header values to strings using
* a RuntimeDelegate.HeaderDelegate
*
* ClientRequestFilter.abortWith
*/
@Test
public void getStringHeadersUsingHeaderDelegateTest() throws Fault {
final String TCK = "cts";
final StringBean bean = new StringBean(TCK);
ContextProvider provider = new ContextProvider() {
@Override
protected void checkFilterContext(ClientRequestContext context) throws Fault {
MultivaluedMap<String, String> map;
map = context.getStringHeaders();
StringBuilder value = new StringBuilder();
value.append(map.getFirst(TCK));
Response r = Response.ok(value.toString()).build();
context.abortWith(r);
}
};
RuntimeDelegate delegate = RuntimeDelegate.getInstance();
RuntimeDelegate.setInstance(new StringBeanRuntimeDelegate(delegate));
try {
Invocation invocation = buildBuilder(provider).header(TCK, bean).buildGet();
Response response = invoke(invocation);
String body = response.readEntity(String.class);
assertContains(body, TCK);
} finally {
RuntimeDelegate.setInstance(delegate);
StringBeanRuntimeDelegate.assertNotStringBeanRuntimeDelegate();
}
}
use of ee.jakarta.tck.ws.rs.common.provider.StringBeanRuntimeDelegate in project jaxrs-api by eclipse-ee4j.
the class JAXRSClientIT method getStringHeadersUsingHeaderDelegateTest.
/*
* @testName: getStringHeadersUsingHeaderDelegateTest
*
* @assertion_ids: JAXRS:JAVADOC:859;
*
* @test_Strategy: Get view of the response headers and their string values.
* Each single header value is converted to String using a
* RuntimeDelegate.HeaderDelegate or using its toString
*/
@Test
public void getStringHeadersUsingHeaderDelegateTest() throws Fault {
RuntimeDelegate original = RuntimeDelegate.getInstance();
RuntimeDelegate.setInstance(new StringBeanRuntimeDelegate(original));
try {
StringBuilder builder = new StringBuilder("s1");
StringBuffer buffer = new StringBuffer("s2");
StringBean bean = new StringBean("s3");
Response response = Response.ok().header(builder.toString(), builder).header(buffer.toString(), buffer).header(bean.get(), bean).build();
MultivaluedMap<String, String> headers = response.getStringHeaders();
String header = headers.getFirst(bean.get());
assertContainsIgnoreCase(bean.get(), header, "Header", bean.get(), "has unexpected value", header);
logMsg("#getStringHeaders contains expected values", JaxrsUtil.iterableToString(",", headers.entrySet()));
} finally {
RuntimeDelegate.setInstance(original);
StringBeanRuntimeDelegate.assertNotStringBeanRuntimeDelegate();
}
}
use of ee.jakarta.tck.ws.rs.common.provider.StringBeanRuntimeDelegate in project jaxrs-api by eclipse-ee4j.
the class JAXRSClientIT method getHeaderStringUsingHeaderDelegateTest.
/*
* @testName: getHeaderStringUsingHeaderDelegateTest
*
* @assertion_ids: JAXRS:JAVADOC:849;
*
* @test_Strategy: Get a message header as a single string value. Each single
* header value is converted to String using a RuntimeDelegate.HeaderDelegate
* or using its toString
*/
@Test
public void getHeaderStringUsingHeaderDelegateTest() throws Fault {
StringBean bean = new StringBean("s3");
RuntimeDelegate original = RuntimeDelegate.getInstance();
RuntimeDelegate.setInstance(new StringBeanRuntimeDelegate(original));
try {
Response response = Response.ok().header(bean.get(), bean).build();
String header = response.getHeaderString(bean.get());
assertContainsIgnoreCase(header, bean.get(), "Header", bean.get(), "has unexpected value", header);
logMsg("HeaderDelegate is used for header", bean.get());
} finally {
RuntimeDelegate.setInstance(original);
StringBeanRuntimeDelegate.assertNotStringBeanRuntimeDelegate();
}
}
use of ee.jakarta.tck.ws.rs.common.provider.StringBeanRuntimeDelegate in project jaxrs-api by eclipse-ee4j.
the class ResponseTest method setStringBeanRuntime.
// For the methods that checks for the header delegate this is the way
// to add header delegate by switching runtimedelegate
// As long as the runtime delegate is one only for whole classloader
@Path("setstringbeanruntime")
@GET
public Response setStringBeanRuntime() {
RuntimeDelegate original = RuntimeDelegate.getInstance();
if (!(original instanceof StringBeanRuntimeDelegate)) {
StringBeanRuntimeDelegate sbrd = new StringBeanRuntimeDelegate(original);
RuntimeDelegate.setInstance(sbrd);
}
return Response.ok().build();
}
use of ee.jakarta.tck.ws.rs.common.provider.StringBeanRuntimeDelegate in project jaxrs-api by eclipse-ee4j.
the class ResponseTest method setOriginalRuntime.
// We need to switch back to the original runtime delegate since
// we cannot be sure what happen when the war with our runtimedelegate gets
// undeployed
@Path("setoriginalruntime")
@GET
public Response setOriginalRuntime() {
Response response = null;
RuntimeDelegate stringBeanDelegate = RuntimeDelegate.getInstance();
if (stringBeanDelegate instanceof StringBeanRuntimeDelegate) {
RuntimeDelegate original = ((StringBeanRuntimeDelegate) stringBeanDelegate).getOriginal();
RuntimeDelegate.setInstance(original);
response = Response.ok().build();
} else
response = Response.status(Status.NO_CONTENT).build();
return response;
}
Aggregations