@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class CrossFilterTest extends BaseInterfaceTest {
HttpServletRequest request = null;
MockFilterChain filterChain = null;
MockHttpServletResponse response = null;
@Before
public void initParam() {
request = Mockito.mock(HttpServletRequest.class, new Answer<Object>() {
@Override
public Object answer(InvocationOnMock invocation) {
if (invocation.getArguments().length > 0) {
String st = (String) invocation.getArguments()[0];
if (st.equals("Cookie") && invocation.getMethod().getName().equals("setAttribute")) {
String sts = (String) invocation.getArguments()[1];
assertThat(sts.length() >= "2f59357e-4916-4754-a97f-946920d600dc".length()).isEqualTo(true);
return null;
}
}
if (invocation.getMethod().getName().equals("getHeader")) {
return "access header";
}
if (invocation.getMethod().getName().equals("getMethod")) {
return RequestMethod.OPTIONS.toString();
}
return null;
}
});
response = new MockHttpServletResponse();
response.addCookie(new Cookie("test", "111"));
filterChain = new MockFilterChain();
}
@Test
public void crossFilterTest() throws Exception {
CrossFilter cf = new CrossFilter();
FilterConfig mockFilterConfig = Mockito.mock(FilterConfig.class);
cf.init(mockFilterConfig);
cf.doFilter(request, response, filterChain);
assertThat(response.getStatus()).isEqualTo(200);
assertThat(response.getHeader("Access-Control-Allow-Origin")).isEqualTo("access header");
assertThat(response.getHeader("Access-Control-Max-Age")).isEqualTo("3600");
}
}