Я хочу протестировать фильтр, который реализует ContainerRequestFilter из JAX-RS.
Класс реализации:
public class CookieRequestFilter implements ContainerRequestFilter {
public static final String EXCLUDE_FROM_FILTER = ".*healthy$|.*alive$";
@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
URI uri = requestContext.getUriInfo().getAbsolutePath();
if (uri.getPath().matches(EXCLUDE_FROM_FILTER)) {
return;
}
Cookie cookie = requestContext.getCookies().get("cookie_identifier");
// some other code here
}
}
Модульные тесты выполняются с использованием инфраструктуры JMockit.Тест:
@RunWith(JMockit.class)
public class CookieRequestFilterTest {
@Tested
private CookieRequestFilter cookieRequestFilter;
@Test
public void filterCookie(@Mocked ContainerRequestContext request) throws IOException {
Map<String, Cookie> cookies = new HashMap<>();
String identifier = "1";
cookies.put("cookie_identifier", getCookie(identifier));
new Expectations() {{
request.getCookies();
times = 1;
result = cookies;
}};
cookieRequestFilter.filter(request);
}
private NewCookie getCookie(String value) {
return new NewCookie("cookie_identifier",
value,
"/",
"",
1,
null,
840,
new Date(new Date().getTime() + 840 * 1000),
true,
false);
}
}
Это дает мне NPE на
uri.getPath (). Match (EXCLUDE_FROM_FILTER)
Может кто-нибудь помочьмне с этим?