/*
 * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 *
 * $Id$
 */

package com.sun.ts.tests.jaxrs.ee.rs.cookieparam.locator;

/*
 * @class.setup_props: webServerHost;
 *                     webServerPort;
 *                     ts_home;
 */
public class JAXRSLocatorClient extends
		com.sun.ts.tests.jaxrs.ee.rs.cookieparam.JAXRSClient {

	private static final long serialVersionUID = 1L;

	public JAXRSLocatorClient() {
		setContextRoot("/jaxrs_ee_rs_cookieparam_locator_web/resource/locator");
	}

	/*
	 * @testName: cookieParamSubTest
	 * @assertion_ids: JAXRS:SPEC:3.4; 
	 * 				   JAXRS:SPEC:20; JAXRS:SPEC:20.3;
	 *                 JAXRS:JAVADOC:145; JAXRS:JAVADOC:2;
	 * @test_Strategy: Client invokes GET on root resource at /CookieParamTest;
	 *                 Resource will respond with a cookie;
	 *                 Client verify the cookie is received;
	 *                 Client send request again with the cookie;
	 *                 Verify that the cookie is received using CookieParam in the resource;
	 *                 Verify on the client side from response.
	 */
	public void cookieParamSubTest() throws Fault {
		super.cookieParamTest();
	}

	/*
	 * @testName: cookieParamEntityWithConstructorTest
	 * @assertion_ids: JAXRS:SPEC:3.4; JAXRS:SPEC:5.2;
	 * 				   JAXRS:SPEC:20; JAXRS:SPEC:20.3; 
	 *                 JAXRS:JAVADOC:12; JAXRS:JAVADOC:12.1;
	 * @test_Strategy: Verify that named QueryParam is handled properly
	 */
	public void cookieParamEntityWithConstructorTest() throws Fault {
		super.paramEntityWithConstructorTest();
	}

	/*
	 * @testName: cookieParamEntityWithValueOfTest
	 * @assertion_ids: JAXRS:SPEC:3.4; JAXRS:SPEC:5.3;
	 * 				   JAXRS:SPEC:20; JAXRS:SPEC:20.3; 
	 *                 JAXRS:JAVADOC:12; JAXRS:JAVADOC:12.1;
	 * @test_Strategy: Verify that named QueryParam is handled properly
	 */
	public void cookieParamEntityWithValueOfTest() throws Fault {
		super.paramEntityWithValueOfTest();
	}

	/*
	 * @testName: cookieParamEntityWithFromStringTest
	 * @assertion_ids: JAXRS:SPEC:3.4; JAXRS:SPEC:5.3;
	 * 				   JAXRS:SPEC:20; JAXRS:SPEC:20.3;
	 *                 JAXRS:JAVADOC:12; JAXRS:JAVADOC:12.1;
	 * @test_Strategy: Verify that named QueryParam is handled properly
	 */
	public void cookieParamEntityWithFromStringTest() throws Fault {
		super.paramEntityWithFromStringTest();
	}

	/*
	 * @testName: cookieParamSetEntityWithFromStringTest
	 * @assertion_ids: JAXRS:SPEC:3.4; JAXRS:SPEC:5.4;
	 * 				   JAXRS:SPEC:20; JAXRS:SPEC:20.3; 
	 * 				   JAXRS:JAVADOC:12; JAXRS:JAVADOC:12.1;
	 * @test_Strategy: Verify that named QueryParam is handled properly
	 */
	public void cookieParamSetEntityWithFromStringTest() throws Fault {
		super.paramCollectionEntityWithFromStringTest(CollectionName.SET);
	}

	/*
	 * @testName: cookieParamListEntityWithFromStringTest
	 * @assertion_ids: JAXRS:SPEC:3.4; JAXRS:SPEC:5.4;
	 * 				   JAXRS:SPEC:20; JAXRS:SPEC:20.3; 
	 * 				   JAXRS:JAVADOC:12; JAXRS:JAVADOC:12.1;
	 * @test_Strategy: Verify that named QueryParam is handled properly
	 */
	public void cookieParamListEntityWithFromStringTest() throws Fault {
		super.paramCollectionEntityWithFromStringTest(CollectionName.LIST);
	}

	/*
	 * @testName: cookieParamSortedSetEntityWithFromStringTest
	 * @assertion_ids: JAXRS:SPEC:3.4; JAXRS:SPEC:5.4;
	 * 				   JAXRS:SPEC:20; JAXRS:SPEC:20.3;
	 * 					JAXRS:JAVADOC:12; JAXRS:JAVADOC:12.1;
	 * @test_Strategy: Verify that named QueryParam is handled properly
	 */
	public void cookieParamSortedSetEntityWithFromStringTest() throws Fault {
		super.paramCollectionEntityWithFromStringTest(CollectionName.SORTED_SET);
	}

	/*
	 * @testName: cookieParamThrowingWebApplicationExceptionTest
	 * @assertion_ids: JAXRS:SPEC:3.4; JAXRS:SPEC:12.3;
	 * 				   JAXRS:SPEC:20; JAXRS:SPEC:20.3;
	 * @test_Strategy: Exceptions thrown during construction of parameter values 
	 * 					are treated the same as exceptions thrown during 
	 * 					construction of field or bean property values, see 
	 * 					section 3.2.
	 * 
	 */
	public void cookieParamThrowingWebApplicationExceptionTest() throws Fault {
		super.paramThrowingWebApplicationExceptionTest();
	}

	/*
	 * @testName: cookieParamThrowingIllegalArgumentExceptionTest 
	 * @assertion_ids: JAXRS:SPEC:9; JAXRS:SPEC:9.2;
	 * 					JAXRS:SPEC:20; JAXRS:SPEC:20.3;
	 * 					JAXRS:SPEC:10;
	 * @test_Strategy: Other exceptions thrown during construction of field or 
	 * 					property values using 2 or 3 above are treated as client 
	 * 					errors:
	 *
	 *					if the field or property is annotated with @HeaderParam 
	 *					or @CookieParam then an implementation MUST generate a 
	 *					WebApplicationException that wraps the thrown exception 
	 *					with a client error response (400 status) and no entity.
	 *
	 */
	public void cookieParamThrowingIllegalArgumentExceptionTest() throws Fault {
		super.paramThrowingIllegalArgumentExceptionTest();
	}

	@Override
	protected String buildRequest(String param) {
		return super.buildRequest(param).replace(Request.GET.name(),
				Request.POST.name());
	}

}
