package com.twitter.common.net.http.handlers;
import javax.servlet.http.HttpServletRequest;
import org.easymock.EasyMock;
import org.junit.Before;
import org.junit.Test;
import com.twitter.common.testing.easymock.EasyMockTest;
import static org.easymock.EasyMock.expect;
import static org.junit.Assert.assertEquals;
public class HttpServletRequestParamsTest extends EasyMockTest {
private static final String INT_PARAM = "int_param";
private static final String LONG_PARAM = "long_param";
private static final String STRING_PARAM = "string_param";
private static final String UNSET_PARAM = "unset_param";
private static final String BOOL_PARAM = "bool_param";
private HttpServletRequest request;
@Before
public void setUp() throws Exception {
request = createMock(HttpServletRequest.class);
expect(request.getParameter(INT_PARAM)).andReturn("123").anyTimes();
expect(request.getParameter(LONG_PARAM)).andReturn("260833376896966656").anyTimes();
expect(request.getParameter(STRING_PARAM)).andReturn("asdf").anyTimes();
expect(request.getParameter(UNSET_PARAM)).andReturn(null).anyTimes();
expect(request.getParameter(BOOL_PARAM)).andReturn("TRUE").anyTimes();
}
@Test
public void testGetIntParam() {
EasyMock.replay(request);
assertEquals(123, HttpServletRequestParams.getInt(request, INT_PARAM, 456));
assertEquals(456, HttpServletRequestParams.getInt(request, STRING_PARAM, 456));
assertEquals(456, HttpServletRequestParams.getInt(request, UNSET_PARAM, 456));
assertEquals(456, HttpServletRequestParams.getInt(request, LONG_PARAM, 456));
}
@Test
public void testGetLongParam() {
EasyMock.replay(request);
assertEquals(123, HttpServletRequestParams.getLong(request, INT_PARAM, 456));
assertEquals(260833376896966656L, HttpServletRequestParams.getLong(request, LONG_PARAM, 456));
assertEquals(123456789012345678L,
HttpServletRequestParams.getLong(request, STRING_PARAM, 123456789012345678L));
assertEquals(456, HttpServletRequestParams.getLong(request, UNSET_PARAM, 456));
}
@Test
public void testGetStringParam() {
EasyMock.replay(request);
assertEquals("123", HttpServletRequestParams.getString(request, INT_PARAM, "default"));
assertEquals("260833376896966656",
HttpServletRequestParams.getString(request, LONG_PARAM, "default"));
assertEquals("asdf", HttpServletRequestParams.getString(request, STRING_PARAM, "default"));
assertEquals("default", HttpServletRequestParams.getString(request, UNSET_PARAM, "default"));
}
@Test
public void testGetBoolParam() {
EasyMock.replay(request);
assertEquals(false, HttpServletRequestParams.getBool(request, INT_PARAM, true));
assertEquals(false, HttpServletRequestParams.getBool(request, LONG_PARAM, false));
assertEquals(true, HttpServletRequestParams.getBool(request, BOOL_PARAM, false));
}
}