/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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.apache.wink.itest; import java.util.Random; import junit.framework.TestCase; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.wink.test.integration.ServerEnvironmentInfo; public class ParamQueryNotSetTest extends TestCase { protected HttpClient httpclient = new HttpClient(); private static Random r = new Random(); private String getBaseURI() { if (ServerEnvironmentInfo.isRestFilterUsed()) { return ServerEnvironmentInfo.getBaseURI(); } return ServerEnvironmentInfo.getBaseURI() + "/params"; } /** * Tests that given a HttpMethod with a query or matrix parameter, if the * parameter is not sent, then the default value is given back for basic * Java types. */ public void testCharParamEmpty() throws Exception { GetMethod getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/char"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals('\u0000' + "", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/char?letter=a"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals('a' + "", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } /* * don't send in the right query */ getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/char?lette=a"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals('\u0000' + "", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/char;letter=a"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals('a' + "", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/char"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals('\u0000' + "", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/char;lette=a"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals('\u0000' + "", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } } /** * Tests that given a HttpMethod with a query or matrix parameter, if the * parameter is not sent, then the default value is given back for basic * Java types. */ public void testByteParamEmpty() throws Exception { /* * query parameters */ GetMethod getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/byte"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } byte b = (byte)r.nextInt(Byte.MAX_VALUE); System.out.println(b); getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/byte?b=" + b); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("" + b, getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } /* * don't send in the right query */ getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/byte?b1=a"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } /* * matrix parameters */ b = (byte)r.nextInt(Byte.MAX_VALUE); System.out.println(b); getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/byte;b=" + b); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("" + b, getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/byte"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/byte;b1=a"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } } /** * Tests that given a HttpMethod with a query or matrix parameter, if the * parameter is not sent, then the default value is given back for basic * Java types. */ public void testDoubleParamEmpty() throws Exception { /* * query parameters */ GetMethod getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/double"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0.0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } double d = r.nextDouble(); System.out.println(d); getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/double?d=" + d); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("" + d, getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } /* * don't send in the right query */ getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/double?d1=a"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0.0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } /* * matrix parameters */ d = r.nextDouble(); System.out.println(d); getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/double;count=" + d); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("" + d, getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/double"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0.0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/double;coun=a"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0.0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } } /** * Tests that given a HttpMethod with a query or matrix parameter, if the * parameter is not sent, then the default value is given back for basic * Java types. */ public void testFloatParamEmpty() throws Exception { /* * query parameters */ GetMethod getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/float"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0.0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } float f = r.nextFloat(); System.out.println(f); getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/float?floatCount=" + f); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("" + f, getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } /* * don't send in the right query */ getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/float?floatCount1=a"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0.0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } /* * matrix parameters */ f = r.nextFloat(); System.out.println(f); getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/float;floatCount=" + f); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("" + f, getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/float"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0.0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/float;floatCoun=a"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0.0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } } /** * Tests that given a HttpMethod with a query or matrix parameter, if the * parameter is not sent, then the default value is given back for basic * Java types. */ public void testIntParamEmpty() throws Exception { /* * query parameters */ GetMethod getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/int"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } int i = r.nextInt(); System.out.println(i); getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/int?count=" + i); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("" + i, getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } /* * don't send in the right query */ getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/int?coun=a"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } /* * matrix parameters */ i = r.nextInt(); System.out.println(i); getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/int;count=" + i); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("" + i, getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/int"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/int;coun=a"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } } /** * Tests that given a HttpMethod with a query or matrix parameter, if the * parameter is not sent, then the default value is given back for basic * Java types. */ public void testShortParamEmpty() throws Exception { /* * query parameters */ GetMethod getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/short"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } short i = (short)r.nextInt(Short.MAX_VALUE); System.out.println(i); getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/short?smallCount=" + i); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("" + i, getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } /* * don't send in the right query */ getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/short?smallcount=a"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } /* * matrix parameters */ i = (short)r.nextInt(Short.MAX_VALUE); System.out.println(i); getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/short;smallCount=" + i); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("" + i, getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/short"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/short;smallCoun=a"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } } /** * Tests that given a HttpMethod with a query or matrix parameter, if the * parameter is not sent, then the default value is given back for basic * Java types. */ public void testLongParamEmpty() throws Exception { /* * query parameters */ GetMethod getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/long"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } long i = r.nextLong(); System.out.println(i); getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/long?longCount=" + i); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("" + i, getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } /* * don't send in the right query */ getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/long?longount=a"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } /* * matrix parameters */ i = r.nextLong(); System.out.println(i); getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/long;longCount=" + i); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("" + i, getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/long"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/long;longCoun=a"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } } /** * Tests that given a HttpMethod with a query or matrix parameter, if the * parameter is not sent, then the default value is given back for basic * Java types. */ public void testSetParamEmpty() throws Exception { /* * query parameters */ GetMethod getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/set"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } int i = r.nextInt(); System.out.println(i); getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/set?bag=" + i); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("1", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } /* * don't send in the right query */ getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/set?bg=a"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } /* * matrix parameters */ i = r.nextInt(); System.out.println(i); getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/set;bag=" + i); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("1", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/set"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/set;bg=a"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } } /** * Tests that given a HttpMethod with a query or matrix parameter, if the * parameter is not sent, then the default value is given back for basic * Java types. */ public void testListParamEmpty() throws Exception { /* * query parameters */ GetMethod getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/list"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } char c = 'b'; System.out.println(c); getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/list?letter=" + c); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("1", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } /* * don't send in the right query */ getMethod = new GetMethod(getBaseURI() + "/queryparamnotset/list?lette=a"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } /* * matrix parameters */ System.out.println(c); getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/list;letter=" + c); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("1", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/list"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } getMethod = new GetMethod(getBaseURI() + "/matrixparamnotset/list;lette=a"); try { httpclient.executeMethod(getMethod); assertEquals(200, getMethod.getStatusCode()); assertEquals("0", getMethod.getResponseBodyAsString()); } finally { getMethod.releaseConnection(); } } }