/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.util.rest; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; import static org.testng.AssertJUnit.assertSame; import java.util.Arrays; import org.mockito.Mockito; import org.testng.annotations.Test; import com.opengamma.util.test.TestGroup; import com.sun.jersey.api.representation.Form; import com.sun.jersey.spi.container.ContainerRequest; /** * Test HttpMethodFilter. */ @Test(groups = TestGroup.UNIT) public class HttpMethodFilterTest { public void test_filter_noActionOnGet() { ContainerRequest mock = Mockito.mock(ContainerRequest.class); when(mock.getMethod()).thenReturn("GET"); HttpMethodFilter test = new HttpMethodFilter(); ContainerRequest result = test.filter(mock); assertSame(mock, result); verify(mock).getMethod(); verifyNoMoreInteractions(mock); } public void test_filter_noActionOnPostNoForm() { ContainerRequest mock = Mockito.mock(ContainerRequest.class); when(mock.getMethod()).thenReturn("POST"); when(mock.getFormParameters()).thenReturn(new Form()); HttpMethodFilter test = new HttpMethodFilter(); ContainerRequest result = test.filter(mock); assertSame(mock, result); verify(mock).getMethod(); verify(mock).getFormParameters(); verifyNoMoreInteractions(mock); } public void test_filter_noActionOnPostFormPut() { ContainerRequest mock = Mockito.mock(ContainerRequest.class); when(mock.getMethod()).thenReturn("POST"); Form form = new Form(); form.put("method", Arrays.asList("PUT")); when(mock.getFormParameters()).thenReturn(form); HttpMethodFilter test = new HttpMethodFilter(); ContainerRequest result = test.filter(mock); assertSame(mock, result); verify(mock).getMethod(); verify(mock).getFormParameters(); verify(mock).setMethod("PUT"); verifyNoMoreInteractions(mock); } public void test_filter_noActionOnPostFormDelete() { ContainerRequest mock = Mockito.mock(ContainerRequest.class); when(mock.getMethod()).thenReturn("POST"); Form form = new Form(); form.put("method", Arrays.asList("DELETE")); when(mock.getFormParameters()).thenReturn(form); HttpMethodFilter test = new HttpMethodFilter(); ContainerRequest result = test.filter(mock); assertSame(mock, result); verify(mock).getMethod(); verify(mock).getFormParameters(); verify(mock).setMethod("DELETE"); verifyNoMoreInteractions(mock); } public void test_filter_noActionOnPostFormOptions() { ContainerRequest mock = Mockito.mock(ContainerRequest.class); when(mock.getMethod()).thenReturn("POST"); Form form = new Form(); form.put("method", Arrays.asList("OPTIONS")); when(mock.getFormParameters()).thenReturn(form); HttpMethodFilter test = new HttpMethodFilter(); ContainerRequest result = test.filter(mock); assertSame(mock, result); verify(mock).getMethod(); verify(mock).getFormParameters(); verify(mock).setMethod("OPTIONS"); verifyNoMoreInteractions(mock); } public void test_filter_noActionOnPostFormHead() { ContainerRequest mock = Mockito.mock(ContainerRequest.class); when(mock.getMethod()).thenReturn("POST"); Form form = new Form(); form.put("method", Arrays.asList("HEAD")); when(mock.getFormParameters()).thenReturn(form); HttpMethodFilter test = new HttpMethodFilter(); ContainerRequest result = test.filter(mock); assertSame(mock, result); verify(mock).getMethod(); verify(mock).getFormParameters(); verify(mock).setMethod("HEAD"); verifyNoMoreInteractions(mock); } public void test_filter_noActionOnPostFormPost() { ContainerRequest mock = Mockito.mock(ContainerRequest.class); when(mock.getMethod()).thenReturn("POST"); Form form = new Form(); form.put("method", Arrays.asList("POST")); when(mock.getFormParameters()).thenReturn(form); HttpMethodFilter test = new HttpMethodFilter(); ContainerRequest result = test.filter(mock); assertSame(mock, result); verify(mock).getMethod(); verify(mock).getFormParameters(); verify(mock).setMethod("POST"); verifyNoMoreInteractions(mock); } public void test_filter_noActionOnPostFormGet() { ContainerRequest mock = Mockito.mock(ContainerRequest.class); when(mock.getMethod()).thenReturn("POST"); Form form = new Form(); form.put("method", Arrays.asList("GET")); when(mock.getFormParameters()).thenReturn(form); HttpMethodFilter test = new HttpMethodFilter(); ContainerRequest result = test.filter(mock); assertSame(mock, result); verify(mock).getMethod(); verify(mock).getFormParameters(); verify(mock).setMethod("GET"); verifyNoMoreInteractions(mock); } public void test_filter_noActionOnPostFormNoMatch() { ContainerRequest mock = Mockito.mock(ContainerRequest.class); when(mock.getMethod()).thenReturn("POST"); Form form = new Form(); form.put("method", Arrays.asList("FOOBAR")); when(mock.getFormParameters()).thenReturn(form); HttpMethodFilter test = new HttpMethodFilter(); ContainerRequest result = test.filter(mock); assertSame(mock, result); verify(mock).getMethod(); verify(mock).getFormParameters(); verifyNoMoreInteractions(mock); } }