Hi,
I have follwing error message “org.camunda.bpm.engine.rest.util.EngineUtil not prepared for test” where is my mistake ?
regards
package com.afklm.middleware.orca.boot.spring.rest.controller;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletResponse;
import org.camunda.bpm.BpmPlatform;
import org.camunda.bpm.engine.ProcessEngine;
import org.camunda.bpm.engine.rest.util.EngineUtil;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.filter.AbstractRequestLoggingFilter;
import org.springframework.web.util.ContentCachingRequestWrapper;
import org.springframework.web.util.WebUtils;
import com.sss.ware.vv.spring.security.web.filter.ForCamundaFilter;
@RunWith(PowerMockRunner.class)
@PrepareForTest({EngineUtil.class})
public class CamundaFilterTests {
private final ForCamundaFilter filter = new ForCamundaFilter();
@Test
public void filterWithoutEngine() {
PowerMockito.mockStatic(EngineUtil.class);
Mockito.when(EngineUtil.lookupProcessEngine("default")).thenReturn( BpmPlatform.getDefaultProcessEngine());
final MockHttpServletRequest request = new MockHttpServletRequest("GET", "/api/dddfds");
request.setContentType("application/json");
request.addHeader("authorization", "Basic qqqq");
request.addHeader("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3");
request.addHeader("cookie", "xxxxxxxxxxxxxx");
request.addHeader("upgrade-insecure-requests", "1");
request.addHeader("sec-fetch-site", "cross-site");
request.addHeader("accept-language", "en-US;q=0.8,en;q=0.7");
request.addHeader("sm_userdn", "CN MOCK wwww");
request.addHeader("sm_authtype", "mock");
request.addHeader("accept-encoding", "gzip, deflate, br");
request.addHeader("sec-fetch-user", "?1");
request.addHeader("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36");
request.addHeader("cache-control", "max-age=0");
request.addHeader("sec-fetch-mode", "navigate");
request.addHeader("sm_user", "wwww");
request.addHeader("sm_logout", "http://localhost:8002/mock/logout");
MockHttpServletResponse response = new MockHttpServletResponse();
String json="{\"variables\":{\"soarreq_id\":{\"value\":\"mavalue\"}}}";
final byte[] requestBody = "{\"variables\":{\"doarreq_id\":{\"value\":\"mavalue\"}}}".getBytes(StandardCharsets.UTF_8);
request.setContent(requestBody);
FilterChain filterChain = (filterRequest, filterResponse) -> {
((HttpServletResponse) filterResponse).setStatus(HttpServletResponse.SC_OK);
byte[] buf = FileCopyUtils.copyToByteArray(filterRequest.getInputStream());
ContentCachingRequestWrapper wrapper = WebUtils.getNativeRequest(filterRequest, ContentCachingRequestWrapper.class);
};
try {
filter.doFilter(request, response, filterChain);
} catch (IOException | ServletException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private Object expect(ProcessEngine lookupProcessEngine) {
// TODO Auto-generated method stub
return null;
}
}
Class to test
public class ForCamundaFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain)
throws IOException, ServletException {
if (null != idSoarreq) {
String key = “AA_” + idSoarreq;
ProcessEngine engine = EngineUtil.lookupProcessEngine(“default”);
engine.getManagementService().setProperty(key, userMatricule);
}
…
}
}