У меня есть реализация некоторого API.
Например:
public class SoPostApi implements SoApi {
...
@Override
public void searchOrganizations(String query, ...) {
String jsonResponse = performPostMethod("SearchOrg", ...);
...
}
@Override
public void searchCategories(String query, ...) {
String jsonResponse = performPostMethod("SearchCat", ...);
...
}
private String performPostMethod(String methodName, ...) {
URL url = new URL(API_URL + methodName);
...
}
И я хочу использовать PowerMockito, чтобы проверить это.
Как я это вижу:
- поймать новый экземпляр
URL.class
и вернутьmocked URL
- проверить новый экземпляр аргумента
URL.class
на наличие подстроки (methodName.contains("SearchOrg")
, но как?) - метод mock
openConnection()
в зависимости отmethodName
Например:
если метод PerformPostMethod создает экземпляр нового
URL.class
с аргументомString
, который содержит"SearchOrg"
, то я хочу заменить его наURL
, где методopenConnection()
возвращаетHttpURLConnection
, настроенный для этого аргумента (getInputStream()
должен возвращать json со списком организаций).если метод PerformPostMethod создает новый экземпляр
URL.class
с аргументомString
, который содержит"SearchCat"
, то я хочу заменить его наURL
, где методopenConnection()
возвращаетHttpURLConnection
, настроенный для этого аргумента (getInputStream()
должен возвращать json со списком категорий).
Осуществимо ли это?