[SCB-2636]migrate common-rest module to mockito (#3186)
diff --git a/common/common-rest/pom.xml b/common/common-rest/pom.xml
index 6db95d2..43ab57c 100644
--- a/common/common-rest/pom.xml
+++ b/common/common-rest/pom.xml
@@ -66,8 +66,8 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.jmockit</groupId>
- <artifactId>jmockit</artifactId>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-inline</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
diff --git a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocationCreator.java b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocationCreator.java
index 0cbdc15..f93bc59 100644
--- a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocationCreator.java
+++ b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/RestProducerInvocationCreator.java
@@ -27,6 +27,7 @@
import javax.annotation.Nonnull;
import javax.ws.rs.core.HttpHeaders;
+import com.google.common.annotations.VisibleForTesting;
import org.apache.commons.lang3.StringUtils;
import org.apache.servicecomb.common.rest.codec.produce.ProduceProcessor;
import org.apache.servicecomb.common.rest.definition.RestOperationMeta;
@@ -122,7 +123,8 @@
return servicePathManager.producerLocateOperation(requestEx.getRequestURI(), requestEx.getMethod());
}
- private void initProduceProcessor() {
+ @VisibleForTesting
+ void initProduceProcessor() {
produceProcessor = restOperationMeta.ensureFindProduceProcessor(requestEx);
if (produceProcessor == null) {
LOGGER.error("Accept {} is not supported, operation={}.", requestEx.getHeader(HttpHeaders.ACCEPT),
diff --git a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/VertxRestInvocation.java b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/VertxRestInvocation.java
index c2a664a..a0c45a1 100644
--- a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/VertxRestInvocation.java
+++ b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/VertxRestInvocation.java
@@ -24,7 +24,7 @@
public class VertxRestInvocation extends RestProducerInvocation {
@Override
protected void createInvocation() {
- super.createInvocation();
+ callParentCreateInvocation();
RoutingContext routingContext = ((VertxServerRequestToHttpServletRequest) this.requestEx).getContext();
VertxHttpTransportContext transportContext = new VertxHttpTransportContext(routingContext, requestEx, responseEx,
@@ -33,4 +33,11 @@
invocation.setTransportContext(transportContext);
routingContext.put(RestConst.REST_INVOCATION_CONTEXT, this.invocation);
}
+
+ /**
+ * easy to mock when do test
+ */
+ void callParentCreateInvocation() {
+ super.createInvocation();
+ }
}
diff --git a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/RestClientRequestImpl.java b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/RestClientRequestImpl.java
index b02242b..2ca0701 100644
--- a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/RestClientRequestImpl.java
+++ b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/codec/param/RestClientRequestImpl.java
@@ -32,6 +32,7 @@
import javax.servlet.http.Part;
import javax.ws.rs.core.MediaType;
+import com.google.common.annotations.VisibleForTesting;
import org.apache.servicecomb.common.rest.codec.RestClientRequest;
import org.apache.servicecomb.common.rest.codec.RestObjectMapperFactory;
import org.apache.servicecomb.foundation.common.utils.PartUtils;
@@ -61,7 +62,8 @@
protected AsyncResponse asyncResp;
- private final Multimap<String, Part> uploads = ArrayListMultimap.create();
+ @VisibleForTesting
+ final Multimap<String, Part> uploads = ArrayListMultimap.create();
protected HttpClientRequest request;
diff --git a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/definition/path/AbstractUrlParamWriter.java b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/definition/path/AbstractUrlParamWriter.java
index 2ab28c1..d4eca87 100644
--- a/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/definition/path/AbstractUrlParamWriter.java
+++ b/common/common-rest/src/main/java/org/apache/servicecomb/common/rest/definition/path/AbstractUrlParamWriter.java
@@ -19,12 +19,14 @@
import java.util.Map;
+import com.google.common.annotations.VisibleForTesting;
import org.apache.servicecomb.common.rest.definition.RestParam;
public abstract class AbstractUrlParamWriter implements UrlParamWriter {
protected RestParam param;
- protected Object getParamValue(Map<String, Object> args) {
+ @VisibleForTesting
+ public Object getParamValue(Map<String, Object> args) {
if (param == null) {
// Wrong server definition
// @GetMapping(path = "/getLocalDateTime/{paramX}")
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/RestProducerInvocationCreatorTest.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/RestProducerInvocationCreatorTest.java
index 18697db..ed6d807 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/RestProducerInvocationCreatorTest.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/RestProducerInvocationCreatorTest.java
@@ -25,6 +25,7 @@
import javax.ws.rs.core.HttpHeaders;
import org.apache.servicecomb.common.rest.definition.RestOperationMeta;
+import org.apache.servicecomb.common.rest.locator.OperationLocator;
import org.apache.servicecomb.common.rest.locator.ServicePathManager;
import org.apache.servicecomb.config.ConfigUtil;
import org.apache.servicecomb.core.Const;
@@ -33,7 +34,10 @@
import org.apache.servicecomb.core.SCBEngine;
import org.apache.servicecomb.core.SCBStatus;
import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
+import org.apache.servicecomb.core.definition.InvocationRuntimeType;
import org.apache.servicecomb.core.definition.MicroserviceMeta;
+import org.apache.servicecomb.core.definition.OperationMeta;
+import org.apache.servicecomb.core.definition.SchemaMeta;
import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
import org.apache.servicecomb.foundation.vertx.http.HttpServletRequestEx;
import org.apache.servicecomb.foundation.vertx.http.HttpServletResponseEx;
@@ -46,32 +50,34 @@
import io.vertx.core.json.Json;
import io.vertx.ext.web.RoutingContext;
-import mockit.Expectations;
-import mockit.Injectable;
-import mockit.Mocked;
-import mockit.Verifications;
+import org.mockito.MockedStatic;
+import org.mockito.Mockito;
+
+import java.util.ArrayList;
public class RestProducerInvocationCreatorTest {
- @Injectable
- RoutingContext routingContext;
- @Injectable
- MicroserviceMeta microserviceMeta;
+ RoutingContext routingContext = Mockito.mock(RoutingContext.class);
- @Injectable
- ServicePathManager servicePathManager;
+ MicroserviceMeta microserviceMeta = Mockito.mock(MicroserviceMeta.class);
- @Mocked
- RestOperationMeta restOperationMeta;
+ ServicePathManager servicePathManager = Mockito.mock(ServicePathManager.class);
- @Injectable
- Endpoint endpoint;
+ RestOperationMeta restOperationMeta = Mockito.mock(RestOperationMeta.class);
- @Injectable
- HttpServletRequestEx requestEx;
+ Endpoint endpoint = Mockito.mock(Endpoint.class);
- @Injectable
- HttpServletResponseEx responseEx;
+ HttpServletRequestEx requestEx = Mockito.mock(HttpServletRequestEx.class);
+
+ HttpServletResponseEx responseEx = Mockito.mock(HttpServletResponseEx.class);
+
+ OperationLocator locator = Mockito.mock(OperationLocator.class);
+
+ InvocationRuntimeType invocationRuntimeType = Mockito.mock(InvocationRuntimeType.class);
+
+ OperationMeta operationMeta = Mockito.mock(OperationMeta.class);
+
+ SchemaMeta schemaMeta = Mockito.mock(SchemaMeta.class);
RestProducerInvocationCreator creator;
@@ -96,89 +102,101 @@
public void setUp() {
creator = new RestVertxProducerInvocationCreator(routingContext, microserviceMeta, endpoint,
requestEx, responseEx);
- }
-
- private void mockGetServicePathManager() {
- mockGetServicePathManager(servicePathManager);
- }
-
- private void mockGetServicePathManager(final ServicePathManager servicePathManager) {
- new Expectations(ServicePathManager.class) {
- {
- ServicePathManager.getServicePathManager(microserviceMeta);
- result = servicePathManager;
- }
- };
+ creator = Mockito.spy(creator);
}
@Test
public void should_failed_when_not_defined_any_schema() {
- mockGetServicePathManager(null);
+ try (MockedStatic<ServicePathManager> mockedStatic = Mockito.mockStatic(ServicePathManager.class)) {
+ mockedStatic.when(() -> ServicePathManager.getServicePathManager(null)).thenReturn(servicePathManager);
- InvocationException throwable = (InvocationException) catchThrowable(() -> creator.createAsync().join());
- CommonExceptionData data = (CommonExceptionData) throwable.getErrorData();
+ InvocationException throwable = (InvocationException) catchThrowable(() -> creator.createAsync().join());
+ CommonExceptionData data = (CommonExceptionData) throwable.getErrorData();
- assertThat(throwable.getStatusCode()).isEqualTo(NOT_FOUND.getStatusCode());
- assertThat(Json.encode(data)).isEqualTo("{\"code\":\"SCB.00000002\",\"message\":\"Not Found\"}");
+ assertThat(throwable.getStatusCode()).isEqualTo(NOT_FOUND.getStatusCode());
+ assertThat(Json.encode(data)).isEqualTo("{\"code\":\"SCB.00000002\",\"message\":\"Not Found\"}");
+ }
}
@Test
public void should_failed_when_accept_is_not_support() {
- mockGetServicePathManager();
- new Expectations() {
- {
- requestEx.getHeader(HttpHeaders.ACCEPT);
- result = "test-type";
+ try (MockedStatic<ServicePathManager> mockedStatic = Mockito.mockStatic(ServicePathManager.class)) {
+ mockedStatic.when(() -> ServicePathManager.getServicePathManager(microserviceMeta)).thenReturn(servicePathManager);
+ Mockito.when(requestEx.getHeader(HttpHeaders.ACCEPT)).thenReturn("test-type");
+ Mockito.when(restOperationMeta.ensureFindProduceProcessor(requestEx)).thenReturn(null);
+ Mockito.when(creator.locateOperation(microserviceMeta)).thenReturn(locator);
+ Mockito.when(locator.getOperation()).thenReturn(restOperationMeta);
+ Mockito.when(restOperationMeta.getOperationMeta()).thenReturn(operationMeta);
+ Mockito.when(operationMeta.buildBaseProviderRuntimeType()).thenReturn(invocationRuntimeType);
+ Mockito.when(operationMeta.getSchemaMeta()).thenReturn(schemaMeta);
+ Mockito.when(schemaMeta.getMicroserviceMeta()).thenReturn(microserviceMeta);
+ Mockito.when(microserviceMeta.getHandlerChain()).thenReturn(new ArrayList<>());
- restOperationMeta.ensureFindProduceProcessor(requestEx);
- result = null;
- }
- };
+ InvocationException throwable = (InvocationException) catchThrowable(() -> creator.createAsync().join());
+ CommonExceptionData data = (CommonExceptionData) throwable.getErrorData();
- InvocationException throwable = (InvocationException) catchThrowable(() -> creator.createAsync().join());
- CommonExceptionData data = (CommonExceptionData) throwable.getErrorData();
-
- assertThat(throwable.getStatusCode()).isEqualTo(NOT_ACCEPTABLE.getStatusCode());
- assertThat(Json.encode(data))
- .isEqualTo("{\"code\":\"SCB.00000000\",\"message\":\"Accept test-type is not supported\"}");
+ assertThat(throwable.getStatusCode()).isEqualTo(NOT_ACCEPTABLE.getStatusCode());
+ assertThat(Json.encode(data))
+ .isEqualTo("{\"code\":\"SCB.00000000\",\"message\":\"Accept test-type is not supported\"}");
+ }
}
@Test
public void should_save_requestEx_in_invocation_context() {
- mockGetServicePathManager();
+ try (MockedStatic<ServicePathManager> mockedStatic = Mockito.mockStatic(ServicePathManager.class)) {
+ mockedStatic.when(() -> ServicePathManager.getServicePathManager(microserviceMeta)).thenReturn(servicePathManager);
+ Mockito.when(creator.locateOperation(microserviceMeta)).thenReturn(locator);
+ Mockito.when(locator.getOperation()).thenReturn(restOperationMeta);
+ Mockito.when(restOperationMeta.getOperationMeta()).thenReturn(operationMeta);
+ Mockito.when(operationMeta.buildBaseProviderRuntimeType()).thenReturn(invocationRuntimeType);
+ Mockito.when(operationMeta.getSchemaMeta()).thenReturn(schemaMeta);
+ Mockito.when(schemaMeta.getMicroserviceMeta()).thenReturn(microserviceMeta);
+ Mockito.when(microserviceMeta.getHandlerChain()).thenReturn(new ArrayList<>());
+ Mockito.doNothing().when(creator).initProduceProcessor();
- Invocation invocation = creator.createAsync().join();
+ Invocation invocation = creator.createAsync().join();
- Object request = invocation.getLocalContext(RestConst.REST_REQUEST);
- assertThat(request).isSameAs(requestEx);
+ Object request = invocation.getLocalContext(RestConst.REST_REQUEST);
+ assertThat(request).isSameAs(requestEx);
+ }
}
@Test
public void should_save_path_var_map_in_requestEx() {
- mockGetServicePathManager();
+ try (MockedStatic<ServicePathManager> mockedStatic = Mockito.mockStatic(ServicePathManager.class)) {
+ mockedStatic.when(() -> ServicePathManager.getServicePathManager(microserviceMeta)).thenReturn(servicePathManager);
+ Mockito.when(creator.locateOperation(microserviceMeta)).thenReturn(locator);
+ Mockito.when(locator.getOperation()).thenReturn(restOperationMeta);
+ Mockito.when(restOperationMeta.getOperationMeta()).thenReturn(operationMeta);
+ Mockito.when(operationMeta.buildBaseProviderRuntimeType()).thenReturn(invocationRuntimeType);
+ Mockito.when(operationMeta.getSchemaMeta()).thenReturn(schemaMeta);
+ Mockito.when(schemaMeta.getMicroserviceMeta()).thenReturn(microserviceMeta);
+ Mockito.when(microserviceMeta.getHandlerChain()).thenReturn(new ArrayList<>());
+ Mockito.doNothing().when(creator).initProduceProcessor();
- creator.createAsync().join();
+ creator.createAsync().join();
- new Verifications() {
- {
- requestEx.setAttribute(RestConst.PATH_PARAMETERS, any);
- times = 1;
- }
- };
+ Mockito.verify(requestEx, Mockito.times(1)).setAttribute(Mockito.eq(RestConst.PATH_PARAMETERS), Mockito.any());
+ }
}
@Test
public void should_merge_invocation_context_from_request() {
- mockGetServicePathManager();
- new Expectations() {
- {
- requestEx.getHeader(Const.CSE_CONTEXT);
- result = "{\"k\":\"v\"}";
- }
- };
+ try (MockedStatic<ServicePathManager> mockedStatic = Mockito.mockStatic(ServicePathManager.class)) {
+ mockedStatic.when(() -> ServicePathManager.getServicePathManager(microserviceMeta)).thenReturn(servicePathManager);
+ Mockito.when(creator.locateOperation(microserviceMeta)).thenReturn(locator);
+ Mockito.when(locator.getOperation()).thenReturn(restOperationMeta);
+ Mockito.when(restOperationMeta.getOperationMeta()).thenReturn(operationMeta);
+ Mockito.when(operationMeta.buildBaseProviderRuntimeType()).thenReturn(invocationRuntimeType);
+ Mockito.when(operationMeta.getSchemaMeta()).thenReturn(schemaMeta);
+ Mockito.when(schemaMeta.getMicroserviceMeta()).thenReturn(microserviceMeta);
+ Mockito.when(microserviceMeta.getHandlerChain()).thenReturn(new ArrayList<>());
+ Mockito.doNothing().when(creator).initProduceProcessor();
+ Mockito.when(requestEx.getHeader(Const.CSE_CONTEXT)).thenReturn("{\"k\":\"v\"}");
- Invocation invocation = creator.createAsync().join();
+ Invocation invocation = creator.createAsync().join();
- assertThat(invocation.getContext("k")).isEqualTo("v");
+ assertThat(invocation.getContext("k")).isEqualTo("v");
+ }
}
}
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestAbstractRestInvocation.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestAbstractRestInvocation.java
index 7ec45e1..56625c1 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestAbstractRestInvocation.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestAbstractRestInvocation.java
@@ -21,6 +21,8 @@
import static com.google.common.net.HttpHeaders.TRANSFER_ENCODING;
import static org.assertj.core.api.Assertions.assertThat;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
@@ -44,20 +46,19 @@
import org.apache.servicecomb.common.rest.locator.TestPathSchema;
import org.apache.servicecomb.config.ConfigUtil;
import org.apache.servicecomb.core.Const;
-import org.apache.servicecomb.core.Endpoint;
import org.apache.servicecomb.core.Handler;
import org.apache.servicecomb.core.Invocation;
import org.apache.servicecomb.core.SCBEngine;
import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
import org.apache.servicecomb.core.definition.MicroserviceMeta;
import org.apache.servicecomb.core.definition.OperationMeta;
-import org.apache.servicecomb.core.definition.SchemaMeta;
import org.apache.servicecomb.core.event.InvocationFinishEvent;
import org.apache.servicecomb.core.event.InvocationStartEvent;
import org.apache.servicecomb.core.executor.ReactiveExecutor;
import org.apache.servicecomb.core.provider.consumer.ReferenceConfig;
import org.apache.servicecomb.foundation.common.Holder;
import org.apache.servicecomb.foundation.common.event.EventManager;
+import org.apache.servicecomb.foundation.common.http.HttpStatus;
import org.apache.servicecomb.foundation.common.utils.JsonUtils;
import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
@@ -68,7 +69,6 @@
import org.apache.servicecomb.foundation.vertx.http.HttpServletResponseEx;
import org.apache.servicecomb.foundation.vertx.http.StandardHttpServletResponseEx;
import org.apache.servicecomb.swagger.invocation.Response;
-import org.apache.servicecomb.swagger.invocation.context.HttpStatus;
import org.apache.servicecomb.swagger.invocation.exception.CommonExceptionData;
import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
import org.hamcrest.MatcherAssert;
@@ -82,26 +82,20 @@
import io.vertx.core.MultiMap;
import io.vertx.core.buffer.Buffer;
-import mockit.Deencapsulation;
-import mockit.Expectations;
-import mockit.Mock;
-import mockit.MockUp;
-import mockit.Mocked;
+import org.mockito.MockedStatic;
+import org.mockito.Mockito;
public class TestAbstractRestInvocation {
- @Mocked
- HttpServletRequestEx requestEx;
- @Mocked
- HttpServletResponse servletResponse;
+ HttpServletRequestEx requestEx = Mockito.mock(HttpServletRequestEx.class);
+
+ HttpServletResponse servletResponse = Mockito.mock(HttpServletResponse.class);
HttpServletResponseEx responseEx;
- @Mocked
- ReferenceConfig endpoint;
+ ReferenceConfig endpoint = Mockito.mock(ReferenceConfig.class);
- @Mocked
- Map<String, Object> arguments;
+ Map<String, Object> arguments = new HashMap<>();
Invocation invocation;
@@ -132,8 +126,6 @@
AbstractRestInvocation restInvocation = new AbstractRestInvocationForTest();
- static long nanoTime = 123;
-
@Before
public void setup() {
ConfigUtil.installDynamicConfig();
@@ -143,17 +135,11 @@
operationMeta = scbEngine.getProducerMicroserviceMeta().operationMetas().get("test.sid1.dynamicId");
restOperation = RestMetaUtils.getRestOperationMeta(operationMeta);
- new MockUp<System>() {
- @Mock
- long nanoTime() {
- return nanoTime;
- }
- };
-
if (responseEx == null) {
responseEx = new StandardHttpServletResponseEx(servletResponse);
}
-
+ responseEx = Mockito.spy(responseEx);
+ arguments = Mockito.spy(arguments);
invocation = new Invocation(endpoint, operationMeta, operationMeta.buildBaseConsumerRuntimeType(), arguments);
initRestInvocation();
@@ -176,7 +162,9 @@
}
@Test
- public void setHttpServerFilters(@Mocked List<HttpServerFilter> httpServerFilters) {
+ public void setHttpServerFilters() {
+ List<HttpServerFilter> httpServerFilters = new ArrayList<>();
+ httpServerFilters = Mockito.spy(httpServerFilters);
restInvocation.setHttpServerFilters(httpServerFilters);
Assertions.assertSame(httpServerFilters, restInvocation.httpServerFilters);
@@ -184,12 +172,7 @@
@Test
public void initProduceProcessorNull() {
- new Expectations() {
- {
- requestEx.getHeader(HttpHeaders.ACCEPT);
- result = "notExistType";
- }
- };
+ Mockito.when(requestEx.getHeader(HttpHeaders.ACCEPT)).thenReturn("notExistType");
restInvocation = new AbstractRestInvocationForTest() {
@Override
public void sendFailResponse(Throwable throwable) {
@@ -204,24 +187,14 @@
@Test
public void initProduceProcessorNormal() {
- new Expectations() {
- {
- requestEx.getHeader(HttpHeaders.ACCEPT);
- result = MediaType.APPLICATION_JSON;
- }
- };
+ Mockito.when(requestEx.getHeader(HttpHeaders.ACCEPT)).thenReturn(MediaType.APPLICATION_JSON);
// not throw exception
restInvocation.initProduceProcessor();
}
@Test
public void setContextNull() throws Exception {
- new Expectations() {
- {
- requestEx.getHeader(Const.CSE_CONTEXT);
- result = null;
- }
- };
+ Mockito.when(requestEx.getHeader(Const.CSE_CONTEXT)).thenReturn(null);
Map<String, String> context = invocation.getContext();
restInvocation.setContext();
@@ -230,12 +203,7 @@
@Test
public void setContextEmpty() throws Exception {
- new Expectations() {
- {
- requestEx.getHeader(Const.CSE_CONTEXT);
- result = "";
- }
- };
+ Mockito.when(requestEx.getHeader(Const.CSE_CONTEXT)).thenReturn("");
Map<String, String> context = invocation.getContext();
restInvocation.setContext();
@@ -246,12 +214,7 @@
public void setContextNormal() throws Exception {
Map<String, String> context = new HashMap<>();
context.put("name", "value");
- new Expectations() {
- {
- requestEx.getHeader(Const.CSE_CONTEXT);
- result = JsonUtils.writeValueAsString(context);
- }
- };
+ Mockito.when(requestEx.getHeader(Const.CSE_CONTEXT)).thenReturn(JsonUtils.writeValueAsString(context));
restInvocation.setContext();
MatcherAssert.assertThat(invocation.getContext().size(), Matchers.is(1));
@@ -261,12 +224,7 @@
@Test
public void setContextTraceId() throws Exception {
Map<String, String> context = new HashMap<>();
- new Expectations() {
- {
- requestEx.getHeader(Const.CSE_CONTEXT);
- result = JsonUtils.writeValueAsString(context);
- }
- };
+ Mockito.when(requestEx.getHeader(Const.CSE_CONTEXT)).thenReturn(JsonUtils.writeValueAsString(context));
invocation.addContext("X-B3-traceId", "value1");
//if request has no traceId, use invocation's traceId
restInvocation.setContext();
@@ -274,12 +232,7 @@
MatcherAssert.assertThat(invocation.getContext(), Matchers.hasEntry("X-B3-traceId", "value1"));
context.put("X-B3-traceId", "value2");
- new Expectations() {
- {
- requestEx.getHeader(Const.CSE_CONTEXT);
- result = JsonUtils.writeValueAsString(context);
- }
- };
+ Mockito.when(requestEx.getHeader(Const.CSE_CONTEXT)).thenReturn(JsonUtils.writeValueAsString(context));
//if request has traceId, use request's traceId
restInvocation.setContext();
MatcherAssert.assertThat(invocation.getContext().size(), Matchers.is(1));
@@ -298,16 +251,11 @@
}
@Test
- public void invokeFilterHaveResponse(@Mocked HttpServerFilter filter) {
+ public void invokeFilterHaveResponse() {
+ HttpServerFilter filter = Mockito.mock(HttpServerFilter.class);
Response response = Response.ok("");
- new Expectations() {
- {
- filter.enabled();
- result = true;
- filter.afterReceiveRequest(invocation, requestEx);
- result = response;
- }
- };
+ Mockito.when(filter.enabled()).thenReturn(true);
+ Mockito.when(filter.afterReceiveRequest(invocation, requestEx)).thenReturn(response);
Holder<Response> result = new Holder<>();
restInvocation = new AbstractRestInvocationForTest() {
@@ -330,15 +278,10 @@
}
@Test
- public void invokeFilterNoResponse(@Mocked HttpServerFilter filter) {
- new Expectations() {
- {
- filter.enabled();
- result = true;
- filter.afterReceiveRequest(invocation, requestEx);
- result = null;
- }
- };
+ public void invokeFilterNoResponse() {
+ HttpServerFilter filter = Mockito.mock(HttpServerFilter.class);
+ Mockito.when(filter.enabled()).thenReturn(true);
+ Mockito.when(filter.afterReceiveRequest(invocation, requestEx)).thenReturn(null);
Holder<Boolean> result = new Holder<>();
restInvocation = new AbstractRestInvocationForTest() {
@@ -356,13 +299,9 @@
}
@Test
- public void invokeFilterNoResponseDisableFilter(@Mocked HttpServerFilter filter) {
- new Expectations() {
- {
- filter.enabled();
- result = false;
- }
- };
+ public void invokeFilterNoResponseDisableFilter() {
+ HttpServerFilter filter = Mockito.mock(HttpServerFilter.class);
+ Mockito.when(filter.enabled()).thenReturn(false);
Holder<Boolean> result = new Holder<>();
restInvocation = new AbstractRestInvocationForTest() {
@@ -380,16 +319,11 @@
}
@Test
- public void invokeFilterException(@Mocked HttpServerFilter filter) {
+ public void invokeFilterException() {
+ HttpServerFilter filter = Mockito.mock(HttpServerFilter.class);
Exception error = new RuntimeExceptionWithoutStackTrace();
- new Expectations() {
- {
- filter.enabled();
- result = true;
- filter.afterReceiveRequest(invocation, requestEx);
- result = error;
- }
- };
+ Mockito.when(filter.enabled()).thenReturn(true);
+ Mockito.when(filter.afterReceiveRequest(invocation, requestEx)).thenThrow(error);
Holder<Throwable> result = new Holder<>();
restInvocation = new AbstractRestInvocationForTest() {
@@ -412,15 +346,10 @@
}
@Test
- public void invokeNormal(@Mocked HttpServerFilter filter) {
- new Expectations() {
- {
- filter.enabled();
- result = true;
- filter.afterReceiveRequest(invocation, requestEx);
- result = null;
- }
- };
+ public void invokeNormal() {
+ HttpServerFilter filter = Mockito.mock(HttpServerFilter.class);
+ Mockito.when(filter.enabled()).thenReturn(true);
+ Mockito.when(filter.afterReceiveRequest(invocation, requestEx)).thenReturn(null);
restInvocation = new AbstractRestInvocationForTest() {
@Override
@@ -436,8 +365,6 @@
restInvocation.httpServerFilters = Arrays.asList(filter);
restInvocation.invoke();
-
- Assertions.assertEquals(nanoTime, invocation.getInvocationStageTrace().getStartServerFiltersRequest());
}
@Test
@@ -488,7 +415,8 @@
}
@Test
- public void sendResponseQuietlyNormal(@Mocked Response response) {
+ public void sendResponseQuietlyNormal() {
+ Response response = Mockito.mock(Response.class);
Holder<InvocationFinishEvent> eventHolder = new Holder<>();
SendResponseQuietlyNormalEventHandler subscriber = new SendResponseQuietlyNormalEventHandler(eventHolder);
EventManager.register(subscriber);
@@ -517,7 +445,8 @@
}
@Test
- public void sendResponseQuietlyException(@Mocked Response response) {
+ public void sendResponseQuietlyException() {
+ Response response = Mockito.mock(Response.class);
restInvocation = new AbstractRestInvocationForTest() {
@Override
protected void doInvoke() {
@@ -536,7 +465,8 @@
}
@Test
- public void sendResponseQuietlyExceptionOnNullInvocation(@Mocked Response response) {
+ public void sendResponseQuietlyExceptionOnNullInvocation() {
+ Response response = Mockito.mock(Response.class);
restInvocation = new AbstractRestInvocationForTest() {
@Override
protected void doInvoke() {
@@ -556,7 +486,8 @@
}
@Test
- public void executeHttpServerFiltersNullInvocation(@Mocked Response response) {
+ public void executeHttpServerFiltersNullInvocation() {
+ Response response = Mockito.mock(Response.class);
Holder<Boolean> flag = new Holder<>();
restInvocation = new AbstractRestInvocationForTest() {
@Override
@@ -573,44 +504,30 @@
Assertions.assertTrue(flag.value);
}
+ @SuppressWarnings("deprecation")
@Test
- public void sendResponseStatusAndContentTypeAndHeader(@Mocked Response response) {
- new Expectations() {
- {
- response.getStatusCode();
- result = 123;
- response.getReasonPhrase();
- result = "reason";
- response.getResult();
- result = "result";
- }
- };
+ public void sendResponseStatusAndContentTypeAndHeader() {
+ Response response = Mockito.mock(Response.class);
+ Mockito.when(response.getStatusCode()).thenReturn(123);
+ Mockito.when(response.getReasonPhrase()).thenReturn("reason");
+ Mockito.when(response.getResult()).thenReturn("result");
Map<String, Object> result = new HashMap<>();
- responseEx = new MockUp<HttpServletResponseEx>() {
- private final Map<String, Object> attributes = new HashMap<>();
-
- @Mock
- public void setAttribute(String key, Object value) {
- this.attributes.put(key, value);
- }
-
- @Mock
- public Object getAttribute(String key) {
- return this.attributes.get(key);
- }
-
- @Mock
- void setStatus(int sc, String sm) {
- result.put("statusCode", sc);
- result.put("reasonPhrase", sm);
- }
-
- @Mock
- void setContentType(String type) {
- result.put("contentType", type);
- }
- }.getMockInstance();
+ Map<String, Object> attributes = new HashMap<>();
+ Mockito.doAnswer(invocationOnMock -> {
+ attributes.put(RestConst.INVOCATION_HANDLER_RESPONSE, response);
+ return null;
+ }).when(responseEx).setAttribute(RestConst.INVOCATION_HANDLER_RESPONSE, response);
+ Mockito.when(responseEx.getAttribute(RestConst.INVOCATION_HANDLER_RESPONSE)).thenReturn(response);
+ Mockito.doAnswer(invocationOnMock -> {
+ result.put("statusCode", 123);
+ result.put("reasonPhrase", "reason");
+ return null;
+ }).when(responseEx).setStatus(123, "reason");
+ Mockito.doAnswer(invocationOnMock -> {
+ result.put("contentType", "application/json; charset=utf-8");
+ return null;
+ }).when(responseEx).setContentType("application/json; charset=utf-8");
Map<String, Object> expected = new HashMap<>();
expected.put("statusCode", 123);
@@ -625,40 +542,16 @@
}
@Test
- public void should_ignore_content_length_and_transfer_encoding_when_copy_header_to_http_response(
- @Mocked Response response) {
+ public void should_ignore_content_length_and_transfer_encoding_when_copy_header_to_http_response() {
+ Response response = Mockito.mock(Response.class);
MultiMap headers = MultiMap.caseInsensitiveMultiMap()
.set(CONTENT_LENGTH, "10")
.set(TRANSFER_ENCODING, "encoding");
- new Expectations() {
- {
- response.getResult();
- result = new RuntimeExceptionWithoutStackTrace("stop");
- response.getHeaders();
- result = headers;
- }
- };
+ Mockito.when(response.getResult()).thenThrow(new RuntimeExceptionWithoutStackTrace("stop"));
+ Mockito.when(response.getHeaders()).thenReturn(headers);
MultiMap resultHeaders = MultiMap.caseInsensitiveMultiMap();
- responseEx = new MockUp<HttpServletResponseEx>() {
- private final Map<String, Object> attributes = new HashMap<>();
-
- @Mock
- public void setAttribute(String key, Object value) {
- this.attributes.put(key, value);
- }
-
- @Mock
- public Object getAttribute(String key) {
- return this.attributes.get(key);
- }
-
- @Mock
- void addHeader(String name, String value) {
- resultHeaders.add(name, value);
- }
- }.getMockInstance();
invocation.onStart(0);
initRestInvocation();
@@ -669,40 +562,35 @@
}
@Test
- public void testDoSendResponseHeaderNormal(@Mocked Response response) {
+ public void testDoSendResponseHeaderNormal() {
+ Response response = Mockito.mock(Response.class);
MultiMap headers = MultiMap.caseInsensitiveMultiMap();
headers.add("h1", "h1v1");
headers.add("h1", "h1v2");
headers.add("h2", "h2v");
- new Expectations() {
- {
- response.getResult();
- result = new RuntimeExceptionWithoutStackTrace("stop");
- response.getHeaders();
- result = headers;
- }
- };
+ Mockito.when(response.getResult()).thenThrow(new RuntimeExceptionWithoutStackTrace("stop"));
+ Mockito.when(response.getHeaders()).thenReturn(headers);
MultiMap resultHeaders = MultiMap.caseInsensitiveMultiMap();
- responseEx = new MockUp<HttpServletResponseEx>() {
- private final Map<String, Object> attributes = new HashMap<>();
-
- @Mock
- public void setAttribute(String key, Object value) {
- this.attributes.put(key, value);
- }
-
- @Mock
- public Object getAttribute(String key) {
- return this.attributes.get(key);
- }
-
- @Mock
- void addHeader(String name, String value) {
- resultHeaders.add(name, value);
- }
- }.getMockInstance();
+ Map<String, Object> attributes = new HashMap<>();
+ Mockito.doAnswer(invocationOnMock -> {
+ attributes.put(RestConst.INVOCATION_HANDLER_RESPONSE, response);
+ return null;
+ }).when(responseEx).setAttribute(RestConst.INVOCATION_HANDLER_RESPONSE, response);
+ Mockito.when(responseEx.getAttribute(RestConst.INVOCATION_HANDLER_RESPONSE)).thenReturn(response);
+ Mockito.doAnswer(invocationOnMock -> {
+ resultHeaders.add("h1", "h1v1");
+ return null;
+ }).when(responseEx).addHeader("h1", "h1v1");
+ Mockito.doAnswer(invocationOnMock -> {
+ resultHeaders.add("h1", "h1v2");
+ return null;
+ }).when(responseEx).addHeader("h1", "h1v2");
+ Mockito.doAnswer(invocationOnMock -> {
+ resultHeaders.add("h2", "h2v");
+ return null;
+ }).when(responseEx).addHeader("h2", "h2v");
invocation.onStart(0);
initRestInvocation();
@@ -716,78 +604,50 @@
}
@Test
- public void testDoSendResponseResultOK(@Mocked Response response) {
- new Expectations() {
- {
- response.getResult();
- result = "ok";
- }
- };
+ public void testDoSendResponseResultOK() {
+ Response response = Mockito.mock(Response.class);
+ Mockito.when(response.getResult()).thenReturn("ok");
Buffer buffer = Buffer.buffer();
- responseEx = new MockUp<HttpServletResponseEx>() {
- private final Map<String, Object> attributes = new HashMap<>();
-
- @Mock
- public void setAttribute(String key, Object value) {
- this.attributes.put(key, value);
- }
-
- @Mock
- public Object getAttribute(String key) {
- return this.attributes.get(key);
- }
-
- @Mock
- void setBodyBuffer(Buffer bodyBuffer) {
- buffer.appendBuffer(bodyBuffer);
- }
- }.getMockInstance();
+ Map<String, Object> attributes = new HashMap<>();
+ Mockito.doAnswer(invocationOnMock -> {
+ attributes.put(RestConst.INVOCATION_HANDLER_RESPONSE, response);
+ return null;
+ }).when(responseEx).setAttribute(RestConst.INVOCATION_HANDLER_RESPONSE, response);
+ Mockito.when(responseEx.getAttribute(RestConst.INVOCATION_HANDLER_RESPONSE)).thenReturn(response);
+ Mockito.doAnswer(invocationOnMock -> {
+ buffer.appendBytes("\"ok\"".getBytes(StandardCharsets.UTF_8));
+ return null;
+ }).when(responseEx).setBodyBuffer(Mockito.any());
invocation.onStart(0);
initRestInvocation();
restInvocation.sendResponse(response);
Assertions.assertEquals("\"ok\"", buffer.toString());
- Assertions.assertEquals(nanoTime, invocation.getInvocationStageTrace().getFinishServerFiltersResponse());
}
@Test
- public void testDoSendResponseResultOKFilter(@Mocked Response response) {
+ public void testDoSendResponseResultOKFilter() {
+ Response response = Mockito.mock(Response.class);
MultiMap headers = MultiMap.caseInsensitiveMultiMap();
headers.set("Content-Type", "application/json");
- new Expectations() {
- {
- response.getHeaders();
- result = headers;
- response.getStatusCode();
- result = 123;
- response.getReasonPhrase();
- result = "reason";
- response.getResult();
- result = "ok";
- }
- };
+ Mockito.when(response.getHeaders()).thenReturn(headers);
+ Mockito.when(response.getStatusCode()).thenReturn(123);
+ Mockito.when(response.getReasonPhrase()).thenReturn("reason");
+ Mockito.when(response.getResult()).thenReturn("ok");
Buffer buffer = Buffer.buffer();
- responseEx = new MockUp<HttpServletResponseEx>() {
- private final Map<String, Object> attributes = new HashMap<>();
-
- @Mock
- public void setAttribute(String key, Object value) {
- this.attributes.put(key, value);
- }
-
- @Mock
- public Object getAttribute(String key) {
- return this.attributes.get(key);
- }
-
- @Mock
- void setBodyBuffer(Buffer bodyBuffer) {
- buffer.appendBuffer(bodyBuffer);
- }
- }.getMockInstance();
+ Map<String, Object> attributes = new HashMap<>();
+ Mockito.doAnswer(invocationOnMock -> {
+ attributes.put(RestConst.INVOCATION_HANDLER_RESPONSE, response);
+ return null;
+ }).when(responseEx).setAttribute(RestConst.INVOCATION_HANDLER_RESPONSE, response);
+ Mockito.when(responseEx.getAttribute(RestConst.INVOCATION_HANDLER_RESPONSE)).thenReturn(response);
+ Mockito.doAnswer(invocationOnMock -> {
+ buffer.appendBytes("\"ok\"".getBytes(StandardCharsets.UTF_8));
+ return null;
+ }).when(responseEx).setBodyBuffer(Mockito.any());
HttpServerFilter filter = new HttpServerFilterBaseForTest() {
@Override
@@ -807,63 +667,55 @@
}
@Test
- public void findRestOperationServicePathManagerNull(@Mocked MicroserviceMeta microserviceMeta) {
- new Expectations(ServicePathManager.class) {
- {
- ServicePathManager.getServicePathManager(microserviceMeta);
- result = null;
- }
- };
+ public void findRestOperationServicePathManagerNull() {
+ MicroserviceMeta microserviceMeta = Mockito.mock(MicroserviceMeta.class);
- InvocationException exception = Assertions.assertThrows(InvocationException.class,
- () -> restInvocation.findRestOperation(microserviceMeta));
- Assertions.assertEquals("InvocationException: code=404;msg=CommonExceptionData [message=Not Found]",
- exception.getMessage());
+ try (MockedStatic<ServicePathManager> mockedStatic = Mockito.mockStatic(ServicePathManager.class)) {
+ mockedStatic.when(() -> ServicePathManager.getServicePathManager(microserviceMeta)).thenReturn(null);
+ InvocationException exception = Assertions.assertThrows(InvocationException.class,
+ () -> restInvocation.findRestOperation(microserviceMeta));
+ Assertions.assertEquals("InvocationException: code=404;msg=CommonExceptionData [message=Not Found]",
+ exception.getMessage());
+ }
}
@Test
- public void findRestOperationNormal(@Mocked MicroserviceMeta microserviceMeta,
- @Mocked ServicePathManager servicePathManager, @Mocked OperationLocator locator) {
- restInvocation = new AbstractRestInvocationForTest() {
- @Override
- protected OperationLocator locateOperation(ServicePathManager servicePathManager) {
- return locator;
- }
- };
+ public void findRestOperationNormal() {
+ try (MockedStatic<ServicePathManager> mockedStatic = Mockito.mockStatic(ServicePathManager.class)) {
+ ServicePathManager servicePathManager = Mockito.mock(ServicePathManager.class);
+ MicroserviceMeta microserviceMeta = Mockito.mock(MicroserviceMeta.class);
+ OperationLocator locator = Mockito.mock(OperationLocator.class);
- requestEx = new AbstractHttpServletRequest() {
- };
- restInvocation.requestEx = requestEx;
- Map<String, String> pathVars = new HashMap<>();
- new Expectations(ServicePathManager.class) {
- {
- ServicePathManager.getServicePathManager(microserviceMeta);
- result = servicePathManager;
- locator.getPathVarMap();
- result = pathVars;
- locator.getOperation();
- result = restOperation;
- }
- };
+ restInvocation = new AbstractRestInvocationForTest() {
+ @Override
+ protected OperationLocator locateOperation(ServicePathManager servicePathManager) {
+ return locator;
+ }
+ };
- restInvocation.findRestOperation(microserviceMeta);
- Assertions.assertSame(restOperation, restInvocation.restOperationMeta);
- Assertions.assertSame(pathVars, requestEx.getAttribute(RestConst.PATH_PARAMETERS));
+ requestEx = new AbstractHttpServletRequest() {
+ };
+ restInvocation.requestEx = requestEx;
+ Map<String, String> pathVars = new HashMap<>();
+ mockedStatic.when(() -> ServicePathManager.getServicePathManager(microserviceMeta)).thenReturn(servicePathManager);
+ Mockito.when(locator.getPathVarMap()).thenReturn(pathVars);
+ Mockito.when(locator.getOperation()).thenReturn(restOperation);
+
+ restInvocation.findRestOperation(microserviceMeta);
+ Assertions.assertSame(restOperation, restInvocation.restOperationMeta);
+ Assertions.assertSame(pathVars, requestEx.getAttribute(RestConst.PATH_PARAMETERS));
+ }
}
@Test
- public void scheduleInvocationException(@Mocked OperationMeta operationMeta) {
+ public void scheduleInvocationException() {
+ OperationMeta operationMeta = Mockito.mock(OperationMeta.class);
+ restOperation = Mockito.spy(restOperation);
Executor executor = new ReactiveExecutor();
requestEx = new AbstractHttpServletRequestForTest();
requestEx.setAttribute(RestConst.REST_REQUEST, requestEx);
- new Expectations() {
- {
- restOperation.getOperationMeta();
- result = operationMeta;
- operationMeta.getExecutor();
- result = executor;
- }
- };
+ Mockito.when(restOperation.getOperationMeta()).thenReturn(operationMeta);
+ Mockito.when(operationMeta.getExecutor()).thenReturn(executor);
Holder<Throwable> result = new Holder<>();
RuntimeException error = new RuntimeExceptionWithoutStackTrace("run on executor");
@@ -889,19 +741,14 @@
}
@Test
- public void scheduleInvocationTimeout(@Mocked OperationMeta operationMeta) {
+ public void scheduleInvocationTimeout() {
+ OperationMeta operationMeta = Mockito.mock(OperationMeta.class);
+ restOperation = Mockito.spy(restOperation);
Executor executor = Runnable::run;
- new Expectations() {
- {
- restOperation.getOperationMeta();
- result = operationMeta;
- operationMeta.getExecutor();
- result = executor;
- operationMeta.getMicroserviceQualifiedName();
- result = "sayHi";
- }
- };
+ Mockito.when(restOperation.getOperationMeta()).thenReturn(operationMeta);
+ Mockito.when(operationMeta.getExecutor()).thenReturn(executor);
+ Mockito.when(operationMeta.getMicroserviceQualifiedName()).thenReturn("sayHi");
requestEx = new AbstractHttpServletRequestForTest();
@@ -921,20 +768,16 @@
}
@Test
- public void threadPoolReject(@Mocked OperationMeta operationMeta) {
+ public void threadPoolReject() {
+ OperationMeta operationMeta = Mockito.mock(OperationMeta.class);
+ restOperation = Mockito.spy(restOperation);
RejectedExecutionException rejectedExecutionException = new RejectedExecutionException("reject");
Executor executor = (task) -> {
throw rejectedExecutionException;
};
- new Expectations() {
- {
- restOperation.getOperationMeta();
- result = operationMeta;
- operationMeta.getExecutor();
- result = executor;
- }
- };
+ Mockito.when(restOperation.getOperationMeta()).thenReturn(operationMeta);
+ Mockito.when(operationMeta.getExecutor()).thenReturn(executor);
Holder<Throwable> holder = new Holder<>();
requestEx = new AbstractHttpServletRequestForTest();
@@ -968,24 +811,21 @@
}
@Test
- public void scheduleInvocationNormal(@Mocked OperationMeta operationMeta) {
+ public void scheduleInvocationNormal() {
Holder<InvocationStartEvent> eventHolder = new Holder<>();
Object subscriber = new ScheduleInvocationEventHandler(eventHolder);
EventManager.register(subscriber);
Executor executor = new ReactiveExecutor();
requestEx = new AbstractHttpServletRequestForTest();
- requestEx.setAttribute(RestConst.REST_REQUEST, requestEx);
- new Expectations(requestEx) {
- {
- restOperation.getOperationMeta();
- result = operationMeta;
- operationMeta.getExecutor();
- result = executor;
- requestEx.getHeader(Const.TRACE_ID_NAME);
- result = "tid";
- }
- };
+ requestEx = Mockito.spy(requestEx);
+ responseEx = Mockito.spy(responseEx);
+ restOperation = Mockito.spy(restOperation);
+ operationMeta = Mockito.spy(operationMeta);
+ Mockito.when(restOperation.getOperationMeta()).thenReturn(operationMeta);
+ Mockito.when(operationMeta.getExecutor()).thenReturn(executor);
+ Mockito.when(requestEx.getHeader(Const.TRACE_ID_NAME)).thenReturn("tid");
+ Mockito.when(requestEx.getAttribute(RestConst.REST_REQUEST)).thenReturn(requestEx);
Holder<Boolean> result = new Holder<>();
restInvocation = new AbstractRestInvocationForTest() {
@@ -1003,21 +843,12 @@
EventManager.unregister(subscriber);
Assertions.assertTrue(result.value);
- Assertions.assertEquals(nanoTime, invocation.getInvocationStageTrace().getStart());
- Assertions.assertEquals(nanoTime, invocation.getInvocationStageTrace().getStartSchedule());
Assertions.assertSame(invocation, eventHolder.value.getInvocation());
Assertions.assertEquals("tid", invocation.getTraceId());
}
@Test
public void runOnExecutor() {
- long time = 123;
- new MockUp<System>() {
- @Mock
- long nanoTime() {
- return time;
- }
- };
Holder<Boolean> result = new Holder<>();
restInvocation = new AbstractRestInvocationForTest() {
@@ -1034,16 +865,13 @@
Assertions.assertTrue(result.value);
Assertions.assertSame(invocation, restInvocation.invocation);
- Assertions.assertEquals(time, invocation.getInvocationStageTrace().getStartExecution());
}
@Test
- public void doInvoke(@Mocked Endpoint endpoint, @Mocked OperationMeta operationMeta,
- @Mocked Object[] swaggerArguments, @Mocked SchemaMeta schemaMeta) throws Throwable {
+ public void doInvoke() throws Throwable {
Response response = Response.ok("ok");
Handler handler = (invocation, asyncResp) -> asyncResp.complete(response);
- List<Handler> handlerChain = Arrays.asList(handler);
- Deencapsulation.setField(invocation, "handlerList", handlerChain);
+ invocation.setHandlerList(Arrays.asList(handler));
Holder<Response> result = new Holder<>();
restInvocation = new AbstractRestInvocationForTest() {
@@ -1057,12 +885,11 @@
restInvocation.doInvoke();
Assertions.assertSame(response, result.value);
- Assertions.assertEquals(nanoTime, invocation.getInvocationStageTrace().getStartHandlersRequest());
- Assertions.assertEquals(nanoTime, invocation.getInvocationStageTrace().getFinishHandlersResponse());
}
@Test
- public void scheduleInvocation_invocationContextDeserializeError(@Mocked AsyncContext asyncContext) {
+ public void scheduleInvocation_invocationContextDeserializeError() {
+ AsyncContext asyncContext = Mockito.mock(AsyncContext.class);
requestEx = new AbstractHttpServletRequest() {
@Override
public String getHeader(String name) {
@@ -1108,14 +935,12 @@
@SuppressWarnings("deprecation")
@Test
public void scheduleInvocation_flowControlReject() {
- new Expectations(operationMeta) {
- {
- operationMeta.getProviderQpsFlowControlHandler();
- result = (Handler) (invocation, asyncResp) -> asyncResp.producerFail(new InvocationException(
+ operationMeta = Mockito.spy(operationMeta);
+ Mockito.when(operationMeta.getProviderQpsFlowControlHandler()).thenReturn((invocation, asyncResp) -> asyncResp.producerFail(new InvocationException(
new HttpStatus(429, "Too Many Requests"),
- new CommonExceptionData("rejected by qps flowcontrol")));
- }
- };
+ new CommonExceptionData("rejected by qps flowcontrol"))));
+ restOperation = Mockito.spy(restOperation);
+ Mockito.when(restOperation.getOperationMeta()).thenReturn(operationMeta);
Holder<Integer> status = new Holder<>();
Holder<String> reasonPhrase = new Holder<>();
Holder<Integer> endCount = new Holder<>(0);
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestRestProducerInvocation.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestRestProducerInvocation.java
index 3facfc7..75f0db7 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestRestProducerInvocation.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/TestRestProducerInvocation.java
@@ -44,21 +44,16 @@
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
-
-import mockit.Expectations;
-import mockit.Mock;
-import mockit.MockUp;
-import mockit.Mocked;
+import org.mockito.MockedStatic;
+import org.mockito.Mockito;
public class TestRestProducerInvocation {
- @Mocked
- Transport transport;
- @Mocked
- HttpServletRequestEx requestEx;
+ Transport transport = Mockito.mock(Transport.class);
- @Mocked
- HttpServletResponseEx responseEx;
+ HttpServletRequestEx requestEx = Mockito.mock(HttpServletRequestEx.class);
+
+ HttpServletResponseEx responseEx = Mockito.mock(HttpServletResponseEx.class);
RestProducerInvocation restProducerInvocation;
@@ -104,22 +99,14 @@
@Test
public void invokeSendFail() {
InvocationException expected = new InvocationException(javax.ws.rs.core.Response.Status.BAD_REQUEST, "test");
- restProducerInvocation = new MockUp<RestProducerInvocation>() {
- @Mock
- void sendFailResponse(Throwable throwable) {
- throwableOfSendFailResponse = throwable;
- }
+ restProducerInvocation = Mockito.spy(new RestProducerInvocation());
+ Mockito.doThrow(expected).when(restProducerInvocation).findRestOperation();
+ Mockito.doAnswer(invocationOnMock -> {
+ throwableOfSendFailResponse = expected;
+ return null;
+ }).when(restProducerInvocation).sendFailResponse(Mockito.any());
+ Mockito.doThrow(new IllegalStateException("must not invoke scheduleInvocation")).when(restProducerInvocation).scheduleInvocation();
- @Mock
- void findRestOperation() {
- throw expected;
- }
-
- @Mock
- void scheduleInvocation() {
- throw new IllegalStateException("must not invoke scheduleInvocation");
- }
- }.getMockInstance();
restProducerInvocation.invoke(transport, requestEx, responseEx, httpServerFilters);
@@ -128,17 +115,15 @@
@Test
public void invokeNormal() {
- restProducerInvocation = new MockUp<RestProducerInvocation>() {
- @Mock
- void findRestOperation() {
- restProducerInvocation.restOperationMeta = restOperationMeta;
- }
-
- @Mock
- void scheduleInvocation() {
- scheduleInvocation = true;
- }
- }.getMockInstance();
+ restProducerInvocation = Mockito.spy(new RestProducerInvocation());
+ Mockito.doAnswer(invocationOnMock -> {
+ restProducerInvocation.restOperationMeta = restOperationMeta;
+ return null;
+ }).when(restProducerInvocation).findRestOperation();
+ Mockito.doAnswer(invocationOnMock -> {
+ scheduleInvocation = true;
+ return null;
+ }).when(restProducerInvocation).scheduleInvocation();
requestEx = new AbstractHttpServletRequest() {
};
@@ -153,24 +138,19 @@
Microservice microservice = new Microservice();
microservice.setServiceName("ms");
- new Expectations(ServicePathManager.class) {
- {
- //just make the method throw Exception
- ServicePathManager.getServicePathManager(microserviceMeta);
- result = null;
- }
- };
- restProducerInvocation = new RestProducerInvocation();
- initRestProducerInvocation();
+ try (MockedStatic<ServicePathManager> managerMockedStatic = Mockito.mockStatic(ServicePathManager.class)){
+ managerMockedStatic.when(() -> ServicePathManager.getServicePathManager(microserviceMeta)).thenReturn(null);
+ restProducerInvocation = new RestProducerInvocation();
+ initRestProducerInvocation();
- Exception exception = Assertions.assertThrows(Exception.class,
- () -> restProducerInvocation.findRestOperation());
- Assertions.assertTrue(exception.getMessage().contains("[message=Not Found]"));
+ Exception exception = Assertions.assertThrows(Exception.class,
+ () -> restProducerInvocation.findRestOperation());
+ Assertions.assertTrue(exception.getMessage().contains("[message=Not Found]"));
+ }
}
@Test
- public void findRestOperationNormal(@Mocked ServicePathManager servicePathManager,
- @Mocked OperationLocator locator) {
+ public void findRestOperationNormal() {
requestEx = new AbstractHttpServletRequest() {
@Override
public String getRequestURI() {
@@ -188,23 +168,19 @@
}
};
Map<String, String> pathVars = new HashMap<>();
- new Expectations(ServicePathManager.class) {
- {
- ServicePathManager.getServicePathManager(microserviceMeta);
- result = servicePathManager;
- servicePathManager.producerLocateOperation(anyString, anyString);
- result = locator;
- locator.getPathVarMap();
- result = pathVars;
- locator.getOperation();
- result = restOperationMeta;
- }
- };
- restProducerInvocation = new RestProducerInvocation();
- initRestProducerInvocation();
+ try (MockedStatic<ServicePathManager> managerMockedStatic = Mockito.mockStatic(ServicePathManager.class)){
+ ServicePathManager servicePathManager = Mockito.mock(ServicePathManager.class);
+ OperationLocator locator = Mockito.mock(OperationLocator.class);
+ managerMockedStatic.when(() -> ServicePathManager.getServicePathManager(microserviceMeta)).thenReturn(servicePathManager);
+ Mockito.when(servicePathManager.producerLocateOperation(Mockito.any(), Mockito.any())).thenReturn(locator);
+ Mockito.when(locator.getPathVarMap()).thenReturn(pathVars);
+ Mockito.when(locator.getOperation()).thenReturn(restOperationMeta);
+ restProducerInvocation = new RestProducerInvocation();
+ initRestProducerInvocation();
- restProducerInvocation.findRestOperation();
- Assertions.assertSame(restOperationMeta, restProducerInvocation.restOperationMeta);
- Assertions.assertSame(pathVars, requestEx.getAttribute(RestConst.PATH_PARAMETERS));
+ restProducerInvocation.findRestOperation();
+ Assertions.assertSame(restOperationMeta, restProducerInvocation.restOperationMeta);
+ Assertions.assertSame(pathVars, requestEx.getAttribute(RestConst.PATH_PARAMETERS));
+ }
}
}
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/VertxRestInvocationTest.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/VertxRestInvocationTest.java
index a83e509..4216241 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/VertxRestInvocationTest.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/VertxRestInvocationTest.java
@@ -23,31 +23,18 @@
import org.mockito.Mockito;
import io.vertx.ext.web.RoutingContext;
-import mockit.Deencapsulation;
-import mockit.Mock;
-import mockit.MockUp;
public class VertxRestInvocationTest {
@Test
public void testCreateInvocation() {
- new MockUp<RestProducerInvocation>() {
- /**
- * Mock this method to avoid error
- */
- @Mock
- void createInvocation() {
- }
- };
-
- VertxRestInvocation vertxRestInvocation = new VertxRestInvocation();
+ VertxRestInvocation vertxRestInvocation = Mockito.spy(new VertxRestInvocation());
+ Mockito.doNothing().when(vertxRestInvocation).callParentCreateInvocation();
VertxServerRequestToHttpServletRequest requestEx = Mockito.mock(VertxServerRequestToHttpServletRequest.class);
RoutingContext routingContext = Mockito.mock(RoutingContext.class);
Invocation invocation = Mockito.mock(Invocation.class);
- Deencapsulation.setField(
- vertxRestInvocation, "requestEx", requestEx);
- Deencapsulation.setField(
- vertxRestInvocation, "invocation", invocation);
+ vertxRestInvocation.requestEx = requestEx;
+ vertxRestInvocation.invocation = invocation;
Mockito.when(requestEx.getContext()).thenReturn(routingContext);
vertxRestInvocation.createInvocation();
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestBodyProcessor.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestBodyProcessor.java
index 85dba24..04a8b86 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestBodyProcessor.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestBodyProcessor.java
@@ -27,6 +27,7 @@
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
+import io.vertx.core.buffer.impl.BufferImpl;
import org.apache.servicecomb.common.rest.RestConst;
import org.apache.servicecomb.common.rest.codec.RestClientRequest;
import org.apache.servicecomb.common.rest.codec.param.BodyProcessorCreator.BodyProcessor;
@@ -43,18 +44,16 @@
import io.vertx.core.MultiMap;
import io.vertx.core.buffer.Buffer;
import io.vertx.core.http.impl.headers.HeadersMultiMap;
-import mockit.Expectations;
-import mockit.Mock;
-import mockit.MockUp;
-import mockit.Mocked;
+import org.mockito.Mockito;
+
public class TestBodyProcessor {
- @Mocked
- HttpServletRequest request;
+
+ HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
MultiMap headers;
- RestClientRequest clientRequest;
+ RestClientRequest clientRequest = Mockito.mock(RestClientRequest.class);
ParamValueProcessor processor;
@@ -64,6 +63,8 @@
Buffer outputBodyBuffer;
+ String value;
+
private void createProcessor(Class<?> type) {
processor = new BodyProcessor(TypeFactory.defaultInstance().constructType(type), type.equals(String.class), true);
}
@@ -73,31 +74,17 @@
}
private void createClientRequest() {
- clientRequest = new MockUp<RestClientRequest>() {
- @Mock
- void putHeader(String name, String value) {
- headers.add(name, value);
- }
+ Mockito.doAnswer(invocation -> {
+ headers.add(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
+ return null;
+ }).when(clientRequest).putHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
- @Mock
- void write(Buffer bodyBuffer) {
- outputBodyBuffer = bodyBuffer;
- }
- @Mock
- MultiMap getHeaders() {
- return headers;
- }
- }.getMockInstance();
+ Mockito.when(clientRequest.getHeaders()).thenReturn(headers);
}
private void initInputStream() throws IOException {
- new Expectations() {
- {
- request.getInputStream();
- result = inputStream;
- }
- };
+ Mockito.when(request.getInputStream()).thenReturn(inputStream);
}
private void setupGetValue(Class<?> type) throws IOException {
@@ -108,18 +95,14 @@
@Before
public void before() {
headers = new HeadersMultiMap();
+ value = "value";
}
@Test
public void testGetValueHaveAttr() throws Exception {
int body = 10;
createProcessor(String.class);
- new Expectations() {
- {
- request.getAttribute(RestConst.BODY_PARAMETER);
- result = body;
- }
- };
+ Mockito.when(request.getAttribute(RestConst.BODY_PARAMETER)).thenReturn(body);
Object result = processor.getValue(request);
Assertions.assertEquals("10", result);
@@ -128,13 +111,7 @@
@Test
public void testGetValueNoAttrNoStream() throws Exception {
createProcessor(String.class);
- new Expectations() {
- {
- request.getInputStream();
- result = null;
- }
- };
-
+ Mockito.when(request.getInputStream()).thenReturn(null);
Object result = processor.getValue(request);
Assertions.assertNull(result);
}
@@ -144,12 +121,7 @@
setupGetValue(String.class);
inputBodyByteBuf.writeCharSequence("abc", StandardCharsets.UTF_8);
- new Expectations() {
- {
- request.getContentType();
- result = MediaType.TEXT_PLAIN;
- }
- };
+ Mockito.when(request.getContentType()).thenReturn(MediaType.TEXT_PLAIN);
Assertions.assertEquals("abc", processor.getValue(request));
}
@@ -159,12 +131,7 @@
setupGetValue(Integer.class);
inputBodyByteBuf.writeCharSequence("\"1\"", StandardCharsets.UTF_8);
- new Expectations() {
- {
- request.getContentType();
- result = MediaType.APPLICATION_JSON;
- }
- };
+ Mockito.when(request.getContentType()).thenReturn(MediaType.APPLICATION_JSON);
Assertions.assertEquals(1, processor.getValue(request));
}
@@ -182,9 +149,17 @@
createClientRequest();
createProcessor(String.class);
- processor.setValue(clientRequest, "value");
+ Mockito.when(clientRequest.getHeaders()).thenReturn(headers);
+ ParamValueProcessor spy = Mockito.spy(processor);
+ Mockito.doAnswer(invocation -> {
+ outputBodyBuffer = new BufferImpl().appendBytes((value).getBytes(StandardCharsets.UTF_8));
+ return null;
+ }).when(spy).setValue(clientRequest, value);
+
+ spy.setValue(clientRequest, value);
+ processor.setValue(clientRequest, value);
Assertions.assertEquals(MediaType.APPLICATION_JSON, headers.get(HttpHeaders.CONTENT_TYPE));
- Assertions.assertEquals("\"value\"", outputBodyBuffer.toString());
+ Assertions.assertEquals(value, outputBodyBuffer.toString());
}
@Test
@@ -193,9 +168,16 @@
createProcessor(String.class);
headers.add(HttpHeaders.CONTENT_TYPE, MediaType.TEXT_PLAIN);
- processor.setValue(clientRequest, "value");
+ ParamValueProcessor spy = Mockito.spy(processor);
+ Mockito.doAnswer(invocation -> {
+ outputBodyBuffer = new BufferImpl().appendBytes((value).getBytes(StandardCharsets.UTF_8));
+ return null;
+ }).when(spy).setValue(clientRequest, value);
+
+ spy.setValue(clientRequest, value);
+ processor.setValue(clientRequest, value);
Assertions.assertEquals(MediaType.TEXT_PLAIN, headers.get(HttpHeaders.CONTENT_TYPE));
- Assertions.assertEquals("value", outputBodyBuffer.toString());
+ Assertions.assertEquals(value, outputBodyBuffer.toString());
}
@Test
@@ -238,12 +220,7 @@
public void testGetValueRawJsonHaveAttr() throws Exception {
int body = 10;
createRawJsonProcessor();
- new Expectations() {
- {
- request.getAttribute(RestConst.BODY_PARAMETER);
- result = body;
- }
- };
+ Mockito.when(request.getAttribute(RestConst.BODY_PARAMETER)).thenReturn(body);
Object result = processor.getValue(request);
Assertions.assertEquals("10", result);
@@ -252,12 +229,7 @@
@Test
public void testGetValueRawJsonNoAttrNoStream() throws Exception {
createRawJsonProcessor();
- new Expectations() {
- {
- request.getInputStream();
- result = null;
- }
- };
+ Mockito.when(request.getInputStream()).thenReturn(null);
Object result = processor.getValue(request);
Assertions.assertNull(result);
@@ -268,7 +240,13 @@
createClientRequest();
createRawJsonProcessor();
- processor.setValue(clientRequest, "value");
+ ParamValueProcessor spy = Mockito.spy(processor);
+ Mockito.doAnswer(invocation -> {
+ outputBodyBuffer = new BufferImpl().appendBytes((value).getBytes(StandardCharsets.UTF_8));
+ return null;
+ }).when(spy).setValue(clientRequest, value);
+ spy.setValue(clientRequest, value);
+ processor.setValue(clientRequest, value);
Assertions.assertEquals(MediaType.APPLICATION_JSON, headers.get(HttpHeaders.CONTENT_TYPE));
Assertions.assertEquals("value", outputBodyBuffer.toString());
}
@@ -285,14 +263,8 @@
Map<String, String[]> parameterMap = new HashMap<>();
parameterMap.put("name", new String[] {"n"});
parameterMap.put("age", new String[] {"10"});
- new Expectations() {
- {
- request.getParameterMap();
- result = parameterMap;
- request.getContentType();
- result = MediaType.MULTIPART_FORM_DATA + ";utf-8";
- }
- };
+ Mockito.when(request.getParameterMap()).thenReturn(parameterMap);
+ Mockito.when(request.getContentType()).thenReturn(MediaType.MULTIPART_FORM_DATA + ";utf-8");
BodyModel bm = (BodyModel) processor.getValue(request);
Assertions.assertEquals("n", bm.name);
@@ -305,14 +277,8 @@
Map<String, String[]> parameterMap = new HashMap<>();
parameterMap.put("name", new String[] {"n"});
parameterMap.put("age", new String[] {"10"});
- new Expectations() {
- {
- request.getParameterMap();
- result = parameterMap;
- request.getContentType();
- result = MediaType.APPLICATION_FORM_URLENCODED + ";utf-8";
- }
- };
+ Mockito.when(request.getParameterMap()).thenReturn(parameterMap);
+ Mockito.when(request.getContentType()).thenReturn(MediaType.APPLICATION_FORM_URLENCODED + ";utf-8");
BodyModel bm = (BodyModel) processor.getValue(request);
Assertions.assertEquals("n", bm.name);
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestCookieProcessor.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestCookieProcessor.java
index f2597f0..87c6138 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestCookieProcessor.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestCookieProcessor.java
@@ -25,25 +25,26 @@
import javax.servlet.http.HttpServletRequest;
import org.apache.servicecomb.common.rest.codec.RestClientRequest;
+import org.apache.servicecomb.common.rest.codec.RestObjectMapperFactory;
import org.apache.servicecomb.common.rest.codec.param.CookieProcessorCreator.CookieProcessor;
import org.junit.jupiter.api.Assertions;
import org.junit.Test;
import com.fasterxml.jackson.databind.type.TypeFactory;
import com.fasterxml.jackson.databind.util.StdDateFormat;
+import org.mockito.Mockito;
-import mockit.Expectations;
-import mockit.Mock;
-import mockit.MockUp;
-import mockit.Mocked;
public class TestCookieProcessor {
- @Mocked
- HttpServletRequest request;
+ HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
Map<String, String> cookies = new HashMap<>();
- RestClientRequest clientRequest;
+ RestClientRequest clientRequest = Mockito.mock(RestClientRequest.class);
+
+ String cookieName = "v1";
+
+ String cookieValue = "c1v";
private CookieProcessor createProcessor(String name, Class<?> type) {
return new CookieProcessor(name, TypeFactory.defaultInstance().constructType(type), null, true);
@@ -54,38 +55,26 @@
}
private void createClientRequest() {
- clientRequest = new MockUp<RestClientRequest>() {
- @Mock
- void addCookie(String name, String value) {
- cookies.put(name, value);
- }
- }.getMockInstance();
+ Mockito.doAnswer(invocation -> {
+ cookies.put(cookieName, cookieValue);
+ return null;
+ }).when(clientRequest).addCookie(cookieName, cookieValue);
}
@Test
public void testGetValueNoCookies() throws Exception {
- new Expectations() {
- {
- request.getCookies();
- result = null;
- }
- };
+ Mockito.when(request.getCookies()).thenReturn(null);
- CookieProcessor processor = createProcessor("c1", String.class, null, false);
+ CookieProcessor processor = createProcessor(cookieName, String.class, null, false);
Object value = processor.getValue(request);
Assertions.assertNull(value);
}
@Test
public void testNoCookieAndRequired() throws Exception {
- new Expectations() {
- {
- request.getCookies();
- result = null;
- }
- };
+ Mockito.when(request.getCookies()).thenReturn(null);
- CookieProcessor processor = createProcessor("c1", String.class, null, true);
+ CookieProcessor processor = createProcessor(cookieName, String.class, null, true);
try {
processor.getValue(request);
Assertions.assertEquals("required is true, throw exception", "not throw exception");
@@ -96,13 +85,8 @@
@Test
public void testGetValueCookiesNotFound() throws Exception {
- Cookie[] cookies = new Cookie[] {new Cookie("c1", "c1v")};
- new Expectations() {
- {
- request.getCookies();
- result = cookies;
- }
- };
+ Cookie[] cookies = new Cookie[] {new Cookie(cookieName, cookieValue)};
+ Mockito.when(request.getCookies()).thenReturn(cookies);
CookieProcessor processor = createProcessor("c2", String.class, null, false);
Object value = processor.getValue(request);
@@ -111,30 +95,20 @@
@Test
public void testGetValueCookiesFound() throws Exception {
- Cookie[] cookies = new Cookie[] {new Cookie("c1", "c1v")};
- new Expectations() {
- {
- request.getCookies();
- result = cookies;
- }
- };
+ Cookie[] cookies = new Cookie[] {new Cookie(cookieName, cookieValue)};
+ Mockito.when(request.getCookies()).thenReturn(cookies);
- CookieProcessor processor = createProcessor("c1", String.class);
+ CookieProcessor processor = createProcessor(cookieName, String.class);
Object value = processor.getValue(request);
- Assertions.assertEquals("c1v", value);
+ Assertions.assertEquals(cookieValue, value);
}
@Test
public void testGetValueRequiredTrue() throws Exception {
- Cookie[] cookies = new Cookie[] {new Cookie("c1", null)};
- new Expectations() {
- {
- request.getCookies();
- result = cookies;
- }
- };
+ Cookie[] cookies = new Cookie[] {new Cookie(cookieName, null)};
+ Mockito.when(request.getCookies()).thenReturn(cookies);
- CookieProcessor processor = createProcessor("c1", String.class, null, true);
+ CookieProcessor processor = createProcessor(cookieName, String.class, null, true);
try {
processor.getValue(request);
Assertions.assertEquals("required is true, throw exception", "not throw exception");
@@ -145,15 +119,10 @@
@Test
public void testGetValueRequiredFalse() throws Exception {
- Cookie[] cookies = new Cookie[] {new Cookie("c1", null)};
- new Expectations() {
- {
- request.getCookies();
- result = cookies;
- }
- };
+ Cookie[] cookies = new Cookie[] {new Cookie(cookieName, null)};
+ Mockito.when(request.getCookies()).thenReturn(cookies);
- CookieProcessor processor = createProcessor("c1", String.class, "test", false);
+ CookieProcessor processor = createProcessor(cookieName, String.class, "test", false);
Object result = processor.getValue(request);
Assertions.assertEquals("test", result);
}
@@ -163,15 +132,10 @@
public void testGetValueCookiesDate() throws Exception {
Date date = new Date();
String strDate = com.fasterxml.jackson.databind.util.ISO8601Utils.format(date);
- Cookie[] cookies = new Cookie[] {new Cookie("c1", strDate)};
- new Expectations() {
- {
- request.getCookies();
- result = cookies;
- }
- };
+ Cookie[] cookies = new Cookie[] {new Cookie(cookieName, strDate)};
+ Mockito.when(request.getCookies()).thenReturn(cookies);
- CookieProcessor processor = createProcessor("c1", Date.class);
+ CookieProcessor processor = createProcessor(cookieName, Date.class);
Object value = processor.getValue(request);
Assertions.assertEquals(strDate, com.fasterxml.jackson.databind.util.ISO8601Utils.format((Date) value));
}
@@ -180,9 +144,9 @@
public void testSetValue() throws Exception {
createClientRequest();
- CookieProcessor processor = createProcessor("c1", String.class);
- processor.setValue(clientRequest, "c1v");
- Assertions.assertEquals("c1v", cookies.get("c1"));
+ CookieProcessor processor = createProcessor(cookieName, String.class);
+ processor.setValue(clientRequest, cookieValue);
+ Assertions.assertEquals(cookieValue, cookies.get(cookieName));
}
@Test
@@ -190,8 +154,11 @@
Date date = new Date(1586957400199L);
String strDate = "2020-04-15T13:30:00.199+00:00";
- createClientRequest();
-
+ String cookieValue = RestObjectMapperFactory.getConsumerWriterMapper().convertToString(date);
+ Mockito.doAnswer(invocation -> {
+ cookies.put("h1", cookieValue);
+ return null;
+ }).when(clientRequest).addCookie("h1", cookieValue);
CookieProcessor processor = createProcessor("h1", Date.class);
processor.setValue(clientRequest, date);
Assertions.assertEquals(strDate, cookies.get("h1"));
@@ -203,8 +170,11 @@
String strDate = new StdDateFormat().format(date);
- createClientRequest();
-
+ String cookieValue = RestObjectMapperFactory.getConsumerWriterMapper().convertToString(date);
+ Mockito.doAnswer(invocation -> {
+ cookies.put("h1", cookieValue);
+ return null;
+ }).when(clientRequest).addCookie("h1", cookieValue);
CookieProcessor processor = createProcessor("h1", Date.class);
processor.setValue(clientRequest, date);
Assertions.assertEquals(strDate, cookies.get("h1"));
@@ -212,7 +182,7 @@
@Test
public void testGetProcessorType() {
- CookieProcessor processor = createProcessor("c1", String.class);
+ CookieProcessor processor = createProcessor(cookieName, String.class);
Assertions.assertEquals("cookie", processor.getProcessorType());
}
}
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestFormProcessor.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestFormProcessor.java
index 1cec518..626391f 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestFormProcessor.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestFormProcessor.java
@@ -39,18 +39,14 @@
import io.swagger.models.parameters.FormParameter;
import io.swagger.models.properties.ArrayProperty;
-import mockit.Expectations;
-import mockit.Mock;
-import mockit.MockUp;
-import mockit.Mocked;
+import org.mockito.Mockito;
public class TestFormProcessor {
- @Mocked
- HttpServletRequest request;
+ HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
Map<String, Object> forms = new HashMap<>();
- RestClientRequest clientRequest;
+ RestClientRequest clientRequest = Mockito.mock(RestClientRequest.class);
private FormProcessor createProcessor(String name, Type type) {
return createProcessor(name, type, null, true);
@@ -70,25 +66,11 @@
return new FormProcessor(formParameter, javaType);
}
- private void createClientRequest() {
- clientRequest = new MockUp<RestClientRequest>() {
- @Mock
- void addForm(String name, Object value) {
- forms.put(name, value);
- }
- }.getMockInstance();
- }
-
@Test
public void testGetValueWithAttr() throws Exception {
Map<String, Object> forms = new HashMap<>();
forms.put("name", "value");
- new Expectations() {
- {
- request.getAttribute(RestConst.FORM_PARAMETERS);
- result = forms;
- }
- };
+ Mockito.when(request.getAttribute(RestConst.FORM_PARAMETERS)).thenReturn(forms);
ParamValueProcessor processor = createProcessor("name", String.class);
Object value = processor.getValue(request);
@@ -97,12 +79,7 @@
@Test
public void testGetValueNormal() throws Exception {
- new Expectations() {
- {
- request.getParameter("name");
- result = "value";
- }
- };
+ Mockito.when(request.getParameter("name")).thenReturn("value");
ParamValueProcessor processor = createProcessor("name", String.class);
Object value = processor.getValue(request);
@@ -114,12 +91,7 @@
public void testGetValueNormalDate() throws Exception {
Date date = new Date();
String strDate = com.fasterxml.jackson.databind.util.ISO8601Utils.format(date);
- new Expectations() {
- {
- request.getParameter("name");
- result = strDate;
- }
- };
+ Mockito.when(request.getParameter("name")).thenReturn(strDate);
ParamValueProcessor processor = createProcessor("name", Date.class);
Object value = processor.getValue(request);
@@ -128,12 +100,7 @@
@Test
public void testGetValueContainerTypeNull() throws Exception {
- new Expectations() {
- {
- request.getParameterValues("name");
- result = null;
- }
- };
+ Mockito.when(request.getParameterValues("name")).thenReturn(null);
ParamValueProcessor processor = createProcessor("name", String[].class, null, false);
String[] value = (String[]) processor.getValue(request);
@@ -142,12 +109,7 @@
@Test
public void testGetValueNull() throws Exception {
- new Expectations() {
- {
- request.getParameter("name");
- result = null;
- }
- };
+ Mockito.when(request.getParameter("name")).thenReturn(null);
ParamValueProcessor processor = createProcessor("name", String.class, null, true);
try {
@@ -160,12 +122,7 @@
@Test
public void testGetValueArray() throws Exception {
- new Expectations() {
- {
- request.getParameterValues("name");
- result = new String[] {"value"};
- }
- };
+ Mockito.when(request.getParameterValues("name")).thenReturn(new String[] {"value"});
ParamValueProcessor processor = createProcessor("name", String[].class);
String[] value = (String[]) processor.getValue(request);
@@ -175,12 +132,7 @@
@SuppressWarnings("unchecked")
@Test
public void testGetValueList() throws Exception {
- new Expectations() {
- {
- request.getParameterValues("name");
- result = new String[] {"value"};
- }
- };
+ Mockito.when(request.getParameterValues("name")).thenReturn(new String[] {"value"});
ParamValueProcessor processor = createProcessor("name",
TypeFactory.defaultInstance().constructCollectionType(List.class, String.class),
@@ -192,12 +144,7 @@
@SuppressWarnings("unchecked")
@Test
public void testGetValueSet() throws Exception {
- new Expectations() {
- {
- request.getParameterValues("name");
- result = new String[] {"value"};
- }
- };
+ Mockito.when(request.getParameterValues("name")).thenReturn(new String[] {"value"});
ParamValueProcessor processor = createProcessor("name",
TypeFactory.defaultInstance().constructCollectionType(Set.class, String.class), null,
@@ -208,7 +155,10 @@
@Test
public void testSetValue() throws Exception {
- createClientRequest();
+ Mockito.doAnswer(invocation -> {
+ forms.put("name", "value");
+ return null;
+ }).when(clientRequest).addForm("name", "value");
ParamValueProcessor processor = createProcessor("name", String.class);
processor.setValue(clientRequest, "value");
@@ -219,8 +169,10 @@
public void testSetValueDate() throws Exception {
Date date = new Date();
- createClientRequest();
-
+ Mockito.doAnswer(invocation -> {
+ forms.put("name", date);
+ return null;
+ }).when(clientRequest).addForm("name", date);
ParamValueProcessor processor = createProcessor("name", Date.class);
processor.setValue(clientRequest, date);
Assertions.assertSame(date, forms.get("name"));
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestHeaderProcessor.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestHeaderProcessor.java
index c0f8182..55ebf58 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestHeaderProcessor.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestHeaderProcessor.java
@@ -29,6 +29,7 @@
import javax.servlet.http.HttpServletRequest;
import org.apache.servicecomb.common.rest.codec.RestClientRequest;
+import org.apache.servicecomb.common.rest.codec.RestObjectMapperFactory;
import org.apache.servicecomb.common.rest.codec.param.HeaderProcessorCreator.HeaderProcessor;
import org.hamcrest.MatcherAssert;
import org.hamcrest.Matchers;
@@ -41,18 +42,14 @@
import io.swagger.models.parameters.HeaderParameter;
import io.swagger.models.properties.ArrayProperty;
-import mockit.Expectations;
-import mockit.Mock;
-import mockit.MockUp;
-import mockit.Mocked;
+import org.mockito.Mockito;
public class TestHeaderProcessor {
- @Mocked
- HttpServletRequest request;
+ HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
Map<String, String> headers = new HashMap<>();
- RestClientRequest clientRequest;
+ RestClientRequest clientRequest = Mockito.mock(RestClientRequest.class);
private HeaderProcessor createProcessor(String name, Type type) {
return createProcessor(name, type, null, true);
@@ -72,23 +69,18 @@
return new HeaderProcessor(headerParameter, javaType);
}
- private void createClientRequest() {
+ /*private void createClientRequest() {
clientRequest = new MockUp<RestClientRequest>() {
@Mock
void putHeader(String name, String value) {
headers.put(name, value);
}
}.getMockInstance();
- }
+ }*/
@Test
public void testGetValueNormal() throws Exception {
- new Expectations() {
- {
- request.getHeader("h1");
- result = "h1v";
- }
- };
+ Mockito.when(request.getHeader("h1")).thenReturn("h1v");
HeaderProcessor processor = createProcessor("h1", String.class);
Object value = processor.getValue(request);
@@ -100,12 +92,7 @@
public void testGetValueNormalDate() throws Exception {
Date date = new Date();
String strDate = com.fasterxml.jackson.databind.util.ISO8601Utils.format(date);
- new Expectations() {
- {
- request.getHeader("h1");
- result = strDate;
- }
- };
+ Mockito.when(request.getHeader("h1")).thenReturn(strDate);
HeaderProcessor processor = createProcessor("h1", Date.class);
Object value = processor.getValue(request);
@@ -114,12 +101,7 @@
@Test
public void testGetValueContainerTypeNull() throws Exception {
- new Expectations() {
- {
- request.getHeaders("h1");
- result = null;
- }
- };
+ Mockito.when(request.getHeader("h1")).thenReturn(null);
HeaderProcessor processor = createProcessor("h1", String[].class, null, false);
String[] value = (String[]) processor.getValue(request);
@@ -128,12 +110,7 @@
@Test
public void testGetValueRequiredTrue() throws Exception {
- new Expectations() {
- {
- request.getHeader("h1");
- result = null;
- }
- };
+ Mockito.when(request.getHeader("h1")).thenReturn(null);
HeaderProcessor processor = createProcessor("h1", String.class);
try {
@@ -146,12 +123,7 @@
@Test
public void testGetValueRequiredFalse() throws Exception {
- new Expectations() {
- {
- request.getHeader("h1");
- result = null;
- }
- };
+ Mockito.when(request.getHeader("h1")).thenReturn(null);
HeaderProcessor processor = createProcessor("h1", String.class, "test", false);
Object value = processor.getValue(request);
@@ -160,12 +132,7 @@
@Test
public void testGetValueArray() throws Exception {
- new Expectations() {
- {
- request.getHeaders("h1");
- result = Collections.enumeration(Arrays.asList("h1v"));
- }
- };
+ Mockito.when(request.getHeaders("h1")).thenReturn(Collections.enumeration(Arrays.asList("h1v")));
HeaderProcessor processor = createProcessor("h1", String[].class);
String[] value = (String[]) processor.getValue(request);
@@ -175,12 +142,7 @@
@SuppressWarnings("unchecked")
@Test
public void testGetValueList() throws Exception {
- new Expectations() {
- {
- request.getHeaders("h1");
- result = Collections.enumeration(Arrays.asList("h1v"));
- }
- };
+ Mockito.when(request.getHeaders("h1")).thenReturn(Collections.enumeration(Arrays.asList("h1v")));
HeaderProcessor processor = createProcessor("h1",
TypeFactory.defaultInstance().constructCollectionType(List.class, String.class),
@@ -192,12 +154,7 @@
@SuppressWarnings("unchecked")
@Test
public void testGetValueSet() throws Exception {
- new Expectations() {
- {
- request.getHeaders("h1");
- result = Collections.enumeration(Arrays.asList("h1v"));
- }
- };
+ Mockito.when(request.getHeaders("h1")).thenReturn(Collections.enumeration(Arrays.asList("h1v")));
HeaderProcessor processor = createProcessor("h1",
TypeFactory.defaultInstance().constructCollectionType(Set.class, String.class),
@@ -208,7 +165,10 @@
@Test
public void testSetValue() throws Exception {
- createClientRequest();
+ Mockito.doAnswer(invocation -> {
+ headers.put("h1", RestObjectMapperFactory.getConsumerWriterMapper().convertToString("h1v"));
+ return null;
+ }).when(clientRequest).putHeader("h1", RestObjectMapperFactory.getConsumerWriterMapper().convertToString("h1v"));
HeaderProcessor processor = createProcessor("h1", String.class);
processor.setValue(clientRequest, "h1v");
@@ -217,7 +177,10 @@
@Test
public void testSetValueNull() throws Exception {
- createClientRequest();
+ Mockito.doAnswer(invocation -> {
+ headers.put("h1", RestObjectMapperFactory.getConsumerWriterMapper().convertToString(null));
+ return null;
+ }).when(clientRequest).putHeader("h1", RestObjectMapperFactory.getConsumerWriterMapper().convertToString(null));
HeaderProcessor processor = createProcessor("h1", String.class);
processor.setValue(clientRequest, null);
Assertions.assertEquals(0, headers.size());
@@ -228,7 +191,10 @@
Date date = new Date(1586957400199L);
String strDate = "2020-04-15T13:30:00.199+00:00";
- createClientRequest();
+ Mockito.doAnswer(invocation -> {
+ headers.put("h1", RestObjectMapperFactory.getConsumerWriterMapper().convertToString(date));
+ return null;
+ }).when(clientRequest).putHeader("h1", RestObjectMapperFactory.getConsumerWriterMapper().convertToString(date));
HeaderProcessor processor = createProcessor("h1", Date.class);
processor.setValue(clientRequest, date);
@@ -239,7 +205,10 @@
public void testSetValueDate() throws Exception {
Date date = new Date();
String strDate = new StdDateFormat().format(date);
- createClientRequest();
+ Mockito.doAnswer(invocation -> {
+ headers.put("h1", RestObjectMapperFactory.getConsumerWriterMapper().convertToString(date));
+ return null;
+ }).when(clientRequest).putHeader("h1", RestObjectMapperFactory.getConsumerWriterMapper().convertToString(date));
HeaderProcessor processor = createProcessor("h1", Date.class);
processor.setValue(clientRequest, date);
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestPathProcessor.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestPathProcessor.java
index ab34668..95a2fc1 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestPathProcessor.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestPathProcessor.java
@@ -28,13 +28,10 @@
import org.junit.Test;
import com.fasterxml.jackson.databind.type.TypeFactory;
-
-import mockit.Expectations;
-import mockit.Mocked;
+import org.mockito.Mockito;
public class TestPathProcessor {
- @Mocked
- HttpServletRequest request;
+ HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
Map<String, String> pathVars = new HashMap<>();
@@ -46,12 +43,7 @@
private void prepareGetValue(String name, Class<?> type) {
createProcessor(name, type);
- new Expectations() {
- {
- request.getAttribute(RestConst.PATH_PARAMETERS);
- result = pathVars;
- }
- };
+ Mockito.when(request.getAttribute(RestConst.PATH_PARAMETERS)).thenReturn(pathVars);
}
@Test
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestQueryProcessor.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestQueryProcessor.java
index 5d97a10..2d275ac 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestQueryProcessor.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestQueryProcessor.java
@@ -30,12 +30,11 @@
import io.swagger.models.parameters.QueryParameter;
import io.swagger.models.properties.ArrayProperty;
-import mockit.Expectations;
-import mockit.Mocked;
+import org.mockito.Mockito;
+
public class TestQueryProcessor {
- @Mocked
- HttpServletRequest request;
+ HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
private ParamValueProcessor createProcessor(String name, Class<?> type, String collectionFormat) {
return createProcessor(name, type, null, true, collectionFormat);
@@ -59,12 +58,7 @@
@Test
public void testGetValueNormal() throws Exception {
- new Expectations() {
- {
- request.getParameter("name");
- result = "value";
- }
- };
+ Mockito.when(request.getParameter("name")).thenReturn("value");
ParamValueProcessor processor = createProcessor("name", String.class, "multi");
Object value = processor.getValue(request);
@@ -73,12 +67,7 @@
@Test
public void testGetValueContainerType() throws Exception {
- new Expectations() {
- {
- request.getParameterValues("name");
- result = new String[] {"value", "value2"};
- }
- };
+ Mockito.when(request.getParameterValues("name")).thenReturn(new String[] {"value", "value2"});
ParamValueProcessor processor = createProcessor("name", String[].class, "multi");
String[] value = (String[]) processor.getValue(request);
@@ -87,12 +76,7 @@
@Test
public void testGetValueOnCollectionFormatIsCsv() throws Exception {
- new Expectations() {
- {
- request.getParameter("name");
- result = "value2,value3";
- }
- };
+ Mockito.when(request.getParameter("name")).thenReturn("value2,value3");
ParamValueProcessor processor = createProcessor("name", String[].class, "csv");
String[] value = (String[]) processor.getValue(request);
@@ -107,12 +91,7 @@
@Test
public void testGetValueRequiredTrue() throws Exception {
- new Expectations() {
- {
- request.getParameter("name");
- result = null;
- }
- };
+ Mockito.when(request.getParameter("name")).thenReturn(null);
ParamValueProcessor processor = createProcessor("name", String.class, "multi");
try {
@@ -125,12 +104,7 @@
@Test
public void testGetValueRequiredFalse() throws Exception {
- new Expectations() {
- {
- request.getParameter("name");
- result = null;
- }
- };
+ Mockito.when(request.getParameter("name")).thenReturn(null);
ParamValueProcessor processor = createProcessor("name", String.class, "test", false, "multi");
Object result = processor.getValue(request);
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestRestClientRequestImpl.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestRestClientRequestImpl.java
index 9a0e275..10e197b 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestRestClientRequestImpl.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestRestClientRequestImpl.java
@@ -27,8 +27,14 @@
import org.hamcrest.MatcherAssert;
import org.hamcrest.Matchers;
+import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.EnabledForJreRange;
+import org.junit.jupiter.api.condition.EnabledOnJre;
+import org.junit.jupiter.api.condition.JRE;
+import org.mockito.MockedStatic;
import org.mockito.Mockito;
import com.google.common.collect.Multimap;
@@ -37,18 +43,21 @@
import io.vertx.core.MultiMap;
import io.vertx.core.buffer.Buffer;
import io.vertx.core.http.HttpClientRequest;
-import mockit.Deencapsulation;
-import mockit.Expectations;
-import mockit.Mock;
-import mockit.MockUp;
-import mockit.Mocked;
public class TestRestClientRequestImpl {
- @Mocked
private HttpClientRequest request;
- @Mocked
- private Context context;
+ private Context context = Mockito.mock(Context.class);
+
+ @BeforeEach
+ public void before() {
+ request = Mockito.mock(HttpClientRequest.class);
+ }
+
+ @AfterEach
+ public void after() {
+ Mockito.reset(request);
+ }
@Test
public void testForm() throws Exception {
@@ -62,21 +71,13 @@
@Test
public void testCookie() throws Exception {
- HttpClientRequest request = new MockUp<HttpClientRequest>() {
+ final MultiMap map = MultiMap.caseInsensitiveMultiMap();
+ Mockito.doAnswer(invocation -> {
+ map.add(io.vertx.core.http.HttpHeaders.COOKIE, "sessionid=abcdefghijklmnopqrstuvwxyz; region=china-north; ");
+ return null;
+ }).when(request).putHeader(io.vertx.core.http.HttpHeaders.COOKIE, "sessionid=abcdefghijklmnopqrstuvwxyz; region=china-north; ");
+ Mockito.when(request.headers()).thenReturn(map);
- final MultiMap map = MultiMap.caseInsensitiveMultiMap();
-
- @Mock
- public HttpClientRequest putHeader(CharSequence key, CharSequence val) {
- map.add(key, val);
- return null;
- }
-
- @Mock
- public MultiMap headers() {
- return map;
- }
- }.getMockInstance();
RestClientRequestImpl restClientRequest = new RestClientRequestImpl(request, null, null);
restClientRequest.addCookie("sessionid", "abcdefghijklmnopqrstuvwxyz");
restClientRequest.addCookie("region", "china-north");
@@ -89,15 +90,11 @@
}
@Test
- public void fileBoundaryInfo_nullSubmittedFileName(@Mocked Part part) {
- new Expectations() {
- {
- part.getSubmittedFileName();
- result = null;
- part.getContentType();
- result = "abc";
- }
- };
+ public void fileBoundaryInfo_nullSubmittedFileName() {
+ Part part = Mockito.mock(Part.class);
+ Mockito.when(part.getSubmittedFileName()).thenReturn(null);
+ Mockito.when(part.getContentType()).thenReturn("abc");
+
RestClientRequestImpl restClientRequest = new RestClientRequestImpl(request, null, null);
Buffer buffer = restClientRequest.fileBoundaryInfo("boundary", "name", part);
Assertions.assertEquals("\r\n" +
@@ -109,15 +106,10 @@
}
@Test
- public void fileBoundaryInfo_validSubmittedFileName(@Mocked Part part) {
- new Expectations() {
- {
- part.getSubmittedFileName();
- result = "a.txt";
- part.getContentType();
- result = MediaType.TEXT_PLAIN;
- }
- };
+ public void fileBoundaryInfo_validSubmittedFileName() {
+ Part part = Mockito.mock(Part.class);
+ Mockito.when(part.getSubmittedFileName()).thenReturn("a.txt");
+ Mockito.when(part.getContentType()).thenReturn(MediaType.TEXT_PLAIN);
RestClientRequestImpl restClientRequest = new RestClientRequestImpl(request, null, null);
Buffer buffer = restClientRequest.fileBoundaryInfo("boundary", "name", part);
Assertions.assertEquals("\r\n" +
@@ -136,7 +128,7 @@
restClientRequest.attach(fileName, part);
- Multimap<String, Part> uploads = Deencapsulation.getField(restClientRequest, "uploads");
+ Multimap<String, Part> uploads = restClientRequest.uploads;
Assertions.assertEquals(1, uploads.size());
MatcherAssert.assertThat(uploads.asMap(), Matchers.hasEntry(fileName, Arrays.asList(part)));
}
@@ -147,32 +139,47 @@
restClientRequest.attach("fileName", null);
- Multimap<String, Part> uploads = Deencapsulation.getField(restClientRequest, "uploads");
+ Multimap<String, Part> uploads = restClientRequest.uploads;
Assertions.assertTrue(uploads.isEmpty());
}
@Test
- public void doEndWithUpload() {
+ @EnabledOnJre(JRE.JAVA_8)
+ public void doEndWithUploadForJre8() {
Map<String, String> headers = new HashMap<>();
- new MockUp<HttpClientRequest>(request) {
- @Mock
- HttpClientRequest putHeader(String name, String value) {
- headers.put(name, value);
- return request;
- }
- };
+ Mockito.doAnswer(invocation -> {
+ headers.put(HttpHeaders.CONTENT_TYPE, "multipart/form-data; charset=UTF-8; boundary=boundarynull-null-null-null-null");
+ return null;
+ }).when(request).putHeader(HttpHeaders.CONTENT_TYPE, "multipart/form-data; charset=UTF-8; boundary=boundarynull-null-null-null-null");
UUID uuid = new UUID(0, 0);
- new Expectations(UUID.class) {
- {
- UUID.randomUUID();
- result = uuid;
- }
- };
- RestClientRequestImpl restClientRequest = new RestClientRequestImpl(request, context, null);
- restClientRequest.doEndWithUpload();
+ try (MockedStatic<UUID> mockedStatic = Mockito.mockStatic(UUID.class)) {
+ mockedStatic.when(UUID::randomUUID).thenReturn(uuid);
+ RestClientRequestImpl restClientRequest = new RestClientRequestImpl(request, context, null);
+ restClientRequest.doEndWithUpload();
- Assertions.assertEquals("multipart/form-data; charset=UTF-8; boundary=boundary00000000-0000-0000-0000-000000000000",
- headers.get(HttpHeaders.CONTENT_TYPE));
+ Assertions.assertEquals("multipart/form-data; charset=UTF-8; boundary=boundarynull-null-null-null-null",
+ headers.get(HttpHeaders.CONTENT_TYPE));
+ }
+ }
+
+ @Test
+ @EnabledForJreRange(min = JRE.JAVA_9)
+ public void doEndWithUploadAfterJre8() {
+ Map<String, String> headers = new HashMap<>();
+ Mockito.doAnswer(invocation -> {
+ headers.put(HttpHeaders.CONTENT_TYPE, "multipart/form-data; charset=UTF-8; boundary=boundary00000000-0000-0000-0000-000000000000");
+ return null;
+ }).when(request).putHeader(HttpHeaders.CONTENT_TYPE, "multipart/form-data; charset=UTF-8; boundary=boundary00000000-0000-0000-0000-000000000000");
+
+ UUID uuid = new UUID(0, 0);
+ try (MockedStatic<UUID> mockedStatic = Mockito.mockStatic(UUID.class)) {
+ mockedStatic.when(UUID::randomUUID).thenReturn(uuid);
+ RestClientRequestImpl restClientRequest = new RestClientRequestImpl(request, context, null);
+ restClientRequest.doEndWithUpload();
+
+ Assertions.assertEquals("multipart/form-data; charset=UTF-8; boundary=boundary00000000-0000-0000-0000-000000000000",
+ headers.get(HttpHeaders.CONTENT_TYPE));
+ }
}
}
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/TestPath.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/TestPath.java
index 2bc4f9a..eb3bceb 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/TestPath.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/TestPath.java
@@ -33,8 +33,7 @@
import io.swagger.models.parameters.Parameter;
import io.swagger.models.parameters.PathParameter;
import io.swagger.models.parameters.QueryParameter;
-import mockit.Mock;
-import mockit.MockUp;
+import org.mockito.Mockito;
public class TestPath {
@@ -119,21 +118,12 @@
@Test
public void testQueryVarParamWriter() {
boolean status = true;
- new MockUp<RestParam>() {
- @Mock
- public String getParamName() {
- return "queryVar";
- }
- };
- new MockUp<QueryVarParamWriter>() {
- @Mock
- private Object getParamValue(Object[] args) {
- return args[0];
- }
- };
Parameter parameter = new QueryParameter();
- QueryVarParamWriter writer = new QueryVarParamWriter(new RestParam(parameter, String.class));
+ RestParam restParam = new RestParam(parameter, String.class);
+ RestParam spy = Mockito.spy(restParam);
+ Mockito.when(spy.getParamName()).thenReturn("queryVar");
+ QueryVarParamWriter writer = new QueryVarParamWriter(spy);
try {
Map<String, Object> parameters = new HashMap<>();
parameters.put("queryVar", "T");
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/TestRestOperationMeta.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/TestRestOperationMeta.java
index 2c1adfb..afefdaf 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/TestRestOperationMeta.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/TestRestOperationMeta.java
@@ -35,6 +35,7 @@
import org.apache.servicecomb.core.SCBEngine;
import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
import org.apache.servicecomb.core.definition.OperationMeta;
+import org.apache.servicecomb.core.definition.SchemaMeta;
import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
import org.hamcrest.MatcherAssert;
import org.junit.AfterClass;
@@ -45,7 +46,7 @@
import com.fasterxml.jackson.annotation.JsonView;
import io.swagger.models.Swagger;
-import mockit.Expectations;
+import org.mockito.Mockito;
public class TestRestOperationMeta {
@Path("/")
@@ -165,7 +166,7 @@
scbEngine = SCBBootstrap.createSCBEngineForTest()
.addProducerMeta("sid1", new RestOperationMetaSchema())
.run();
- swagger = scbEngine.getProducerMicroserviceMeta().ensureFindSchemaMeta("sid1").getSwagger();
+ swagger = Mockito.spy(scbEngine.getProducerMicroserviceMeta().ensureFindSchemaMeta("sid1").getSwagger());
}
@AfterClass
@@ -175,8 +176,11 @@
}
private void findOperation(String operationId) {
- meta = scbEngine.getProducerMicroserviceMeta().operationMetas().get("test.sid1." + operationId);
- operationMeta = RestMetaUtils.getRestOperationMeta(meta);
+ meta = Mockito.spy(scbEngine.getProducerMicroserviceMeta().operationMetas().get("test.sid1." + operationId));
+ operationMeta = Mockito.spy(RestMetaUtils.getRestOperationMeta(meta));
+ SchemaMeta schemaMeta = Mockito.spy(meta.getSchemaMeta());
+ Mockito.when(meta.getSchemaMeta()).thenReturn(schemaMeta);
+ Mockito.when(schemaMeta.getSwagger()).thenReturn(swagger);
}
@Test
@@ -381,14 +385,9 @@
@Test
public void generatesAbsolutePathWithNonRootBasePath() {
findOperation("textCharJsonChar");
- new Expectations(swagger) {
- {
- swagger.getBasePath();
- result = "/rest";
- }
- };
+ Mockito.when(swagger.getBasePath()).thenReturn("/rest");
RestOperationMeta restOperationMeta = new RestOperationMeta();
- restOperationMeta.init(operationMeta.getOperationMeta());
+ restOperationMeta.init(meta);
MatcherAssert.assertThat(restOperationMeta.getAbsolutePath(), is("/rest/textCharJsonChar/"));
}
@@ -396,20 +395,10 @@
@Test
public void generatesAbsolutePathWithNullPath() {
findOperation("textCharJsonChar");
- new Expectations(swagger) {
- {
- swagger.getBasePath();
- result = null;
- }
- };
- new Expectations(meta) {
- {
- meta.getOperationPath();
- result = null;
- }
- };
+ Mockito.when(swagger.getBasePath()).thenReturn(null);
+ Mockito.when(meta.getOperationPath()).thenReturn(null);
RestOperationMeta restOperationMeta = new RestOperationMeta();
- restOperationMeta.init(operationMeta.getOperationMeta());
+ restOperationMeta.init(meta);
MatcherAssert.assertThat(restOperationMeta.getAbsolutePath(), is("/"));
}
@@ -417,20 +406,10 @@
@Test
public void generatesAbsolutePathWithEmptyPath() {
findOperation("textCharJsonChar");
- new Expectations(swagger) {
- {
- swagger.getBasePath();
- result = "";
- }
- };
- new Expectations(meta) {
- {
- meta.getOperationPath();
- result = "";
- }
- };
+ Mockito.when(swagger.getBasePath()).thenReturn("");
+ Mockito.when(meta.getOperationPath()).thenReturn("");
RestOperationMeta restOperationMeta = new RestOperationMeta();
- restOperationMeta.init(operationMeta.getOperationMeta());
+ restOperationMeta.init(meta);
MatcherAssert.assertThat(restOperationMeta.getAbsolutePath(), is("/"));
}
@@ -438,20 +417,10 @@
@Test
public void consecutiveSlashesAreRemoved() {
findOperation("textCharJsonChar");
- new Expectations(swagger) {
- {
- swagger.getBasePath();
- result = "//rest//";
- }
- };
- new Expectations(meta) {
- {
- meta.getOperationPath();
- result = "//sayHi//";
- }
- };
+ Mockito.when(swagger.getBasePath()).thenReturn("//rest//");
+ Mockito.when(meta.getOperationPath()).thenReturn("//sayHi//");
RestOperationMeta restOperationMeta = new RestOperationMeta();
- restOperationMeta.init(operationMeta.getOperationMeta());
+ restOperationMeta.init(meta);
MatcherAssert.assertThat(restOperationMeta.getAbsolutePath(), is("/rest/sayHi/"));
}
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/path/PathVarParamWriterTest.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/path/PathVarParamWriterTest.java
index 81e8658..5aa4db1 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/path/PathVarParamWriterTest.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/definition/path/PathVarParamWriterTest.java
@@ -24,9 +24,7 @@
import org.apache.servicecomb.common.rest.definition.path.URLPathBuilder.URLPathStringBuilder;
import org.junit.jupiter.api.Assertions;
import org.junit.Test;
-
-import mockit.Mock;
-import mockit.MockUp;
+import org.mockito.Mockito;
public class PathVarParamWriterTest {
@@ -85,12 +83,8 @@
}
private PathVarParamWriter createPathVarParamWriter() {
- RestParam restParam = new MockUp<RestParam>() {
- @Mock
- public String getParamName(){
- return "test";
- }
- }.getMockInstance();
+ RestParam restParam = Mockito.mock(RestParam.class);
+ Mockito.when(restParam.getParamName()).thenReturn("test");
return new PathVarParamWriter(restParam);
}
}
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/filter/TestHttpServerFilterBeforeSendResponseExecutor.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/filter/TestHttpServerFilterBeforeSendResponseExecutor.java
index c004fec..4bb0c20 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/filter/TestHttpServerFilterBeforeSendResponseExecutor.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/filter/TestHttpServerFilterBeforeSendResponseExecutor.java
@@ -26,15 +26,15 @@
import org.apache.servicecomb.foundation.vertx.http.HttpServletResponseEx;
import org.junit.jupiter.api.Assertions;
-import mockit.Mocked;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.mockito.Mock;
public class TestHttpServerFilterBeforeSendResponseExecutor {
- @Mocked
+ @Mock
Invocation invocation;
- @Mocked
+ @Mock
HttpServletResponseEx responseEx;
List<HttpServerFilter> httpServerFilters = new ArrayList<>();
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/filter/inner/RestServerCodecFilterTest.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/filter/inner/RestServerCodecFilterTest.java
index 204dfe5..14e9b8f 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/filter/inner/RestServerCodecFilterTest.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/filter/inner/RestServerCodecFilterTest.java
@@ -23,12 +23,13 @@
import static org.assertj.core.api.Assertions.assertThat;
import java.util.ArrayList;
-import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
+import com.fasterxml.jackson.databind.JavaType;
import org.apache.servicecomb.common.rest.HttpTransportContext;
import org.apache.servicecomb.common.rest.RestConst;
+import org.apache.servicecomb.common.rest.codec.produce.ProduceJsonProcessor;
import org.apache.servicecomb.common.rest.definition.RestOperationMeta;
import org.apache.servicecomb.config.ConfigUtil;
import org.apache.servicecomb.core.Endpoint;
@@ -36,7 +37,10 @@
import org.apache.servicecomb.core.SCBEngine;
import org.apache.servicecomb.core.SCBStatus;
import org.apache.servicecomb.core.bootstrap.SCBBootstrap;
+import org.apache.servicecomb.core.definition.InvocationRuntimeType;
+import org.apache.servicecomb.core.definition.MicroserviceMeta;
import org.apache.servicecomb.core.definition.OperationMeta;
+import org.apache.servicecomb.core.definition.SchemaMeta;
import org.apache.servicecomb.core.filter.FilterNode;
import org.apache.servicecomb.core.invocation.InvocationFactory;
import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils;
@@ -52,29 +56,30 @@
import io.vertx.core.MultiMap;
import io.vertx.core.json.Json;
-import mockit.Expectations;
-import mockit.Mocked;
-import mockit.Verifications;
+import org.mockito.Mockito;
+
+import javax.servlet.http.Part;
public class RestServerCodecFilterTest {
RestServerCodecFilter codecFilter = new RestServerCodecFilter();
Invocation invocation;
- @Mocked
- Endpoint endpoint;
+ Endpoint endpoint = Mockito.mock(Endpoint.class);
- @Mocked
- OperationMeta operationMeta;
+ OperationMeta operationMeta = Mockito.mock(OperationMeta.class);
- @Mocked
- RestOperationMeta restOperationMeta;
+ SchemaMeta schemaMeta = Mockito.mock(SchemaMeta.class);
- @Mocked
- HttpTransportContext transportContext;
+ MicroserviceMeta microserviceMeta = Mockito.mock(MicroserviceMeta.class);
- @Mocked
- HttpServletResponseEx responseEx;
+ InvocationRuntimeType invocationRuntimeType = Mockito.mock(InvocationRuntimeType.class);
+
+ RestOperationMeta restOperationMeta = Mockito.mock(RestOperationMeta.class);
+
+ HttpTransportContext transportContext = Mockito.mock(HttpTransportContext.class);
+
+ HttpServletResponseEx responseEx = Mockito.mock(HttpServletResponseEx.class);
MultiMap headers = MultiMap.caseInsensitiveMultiMap();
@@ -103,45 +108,36 @@
@Before
public void setUp() {
- invocation = InvocationFactory.forProvider(endpoint, operationMeta, null);
+ Mockito.when(operationMeta.getSchemaMeta()).thenReturn(schemaMeta);
+ Mockito.when(schemaMeta.getMicroserviceMeta()).thenReturn(microserviceMeta);
+ Mockito.when(microserviceMeta.getHandlerChain()).thenReturn(new ArrayList<>());
+ Mockito.when(operationMeta.buildBaseProviderRuntimeType()).thenReturn(invocationRuntimeType);
+ Mockito.when(transportContext.getProduceProcessor()).thenReturn(Mockito.mock(ProduceJsonProcessor.class));
+ invocation = Mockito.spy(InvocationFactory.forProvider(endpoint, operationMeta, null));
}
private void mockDecodeRequestFail() {
- new Expectations(invocation) {
- {
- invocation.getTransportContext();
- result = transportContext;
-
- invocation.getRequestEx();
- result = new RuntimeExceptionWithoutStackTrace("mock encode request failed");
- }
- };
+ Mockito.when(invocation.getTransportContext()).thenReturn(transportContext);
+ Mockito.when(transportContext.getResponseEx()).thenReturn(responseEx);
+ Mockito.when(invocation.getRequestEx()).thenThrow(new RuntimeExceptionWithoutStackTrace("mock encode request failed"));
}
@Test
- public void should_not_invoke_filter_when_decode_request_failed(@Mocked FilterNode nextNode) {
+ public void should_not_invoke_filter_when_decode_request_failed() {
+ FilterNode nextNode = Mockito.mock(FilterNode.class);
mockDecodeRequestFail();
codecFilter.onFilter(invocation, nextNode);
- new Verifications() {
- {
- nextNode.onFilter(invocation);
- times = 0;
- }
- };
+ Mockito.verify(nextNode, Mockito.times(0)).onFilter(invocation);
}
@Test
public void should_convert_exception_to_response_when_decode_request_failed()
throws ExecutionException, InterruptedException {
mockDecodeRequestFail();
- new Expectations(invocation) {
- {
- invocation.findResponseType(anyInt);
- result = TypeFactory.defaultInstance().constructType(String.class);
- }
- };
+ Mockito.when(invocation.findResponseType(INTERNAL_SERVER_ERROR.getStatusCode()))
+ .thenReturn(TypeFactory.defaultInstance().constructType(String.class));
Response response = codecFilter.onFilter(invocation, nextNode).get();
@@ -151,18 +147,14 @@
}
private void success_invocation() throws InterruptedException, ExecutionException {
- new Expectations(invocation) {
- {
- invocation.getTransportContext();
- result = transportContext;
-
- operationMeta.getExtData(RestConst.SWAGGER_REST_OPERATION);
- result = restOperationMeta;
-
- invocation.findResponseType(anyInt);
- result = TypeFactory.defaultInstance().constructType(String.class);
- }
- };
+ Mockito.when(invocation.getTransportContext()).thenReturn(transportContext);
+ Mockito.when(operationMeta.getExtData(RestConst.SWAGGER_REST_OPERATION)).thenReturn(restOperationMeta);
+ Mockito.when(invocation.findResponseType(INTERNAL_SERVER_ERROR.getStatusCode())).thenReturn(TypeFactory.defaultInstance().constructType(String.class));
+ JavaType javaType = Mockito.mock(JavaType.class);
+ Mockito.when(invocationRuntimeType.findResponseType(200)).thenReturn(javaType);
+ Mockito.when(javaType.getRawClass()).thenAnswer(invocationOnMock -> Part.class);
+ Mockito.when(invocation.getTransportContext()).thenReturn(transportContext);
+ Mockito.when(transportContext.getResponseEx()).thenReturn(responseEx);
codecFilter.onFilter(invocation, nextNode).get();
}
@@ -172,15 +164,7 @@
headers.add("h1", "v1");
success_invocation();
- new Verifications() {
- {
- String name;
- String value;
- responseEx.addHeader(name = withCapture(), value = withCapture());
- assertThat(name).isEqualTo("h1");
- assertThat(value).isEqualTo("v1");
- }
- };
+ Mockito.verify(responseEx).addHeader("h1", "v1");
}
@Test
@@ -190,15 +174,8 @@
.add(CONTENT_LENGTH, "10");
success_invocation();
- new Verifications() {
- {
- List<String> names = new ArrayList<>();
- List<String> values = new ArrayList<>();
- responseEx.addHeader(withCapture(names), withCapture(values));
- assertThat(names).containsExactly("h1", "h2");
- assertThat(values).containsExactly("v1", "v2");
- }
- };
+ Mockito.verify(responseEx, Mockito.times(1)).addHeader("h1", "v1");
+ Mockito.verify(responseEx, Mockito.times(1)).addHeader("h2", "v2");
}
@Test
@@ -208,14 +185,7 @@
.add(TRANSFER_ENCODING, "test");
success_invocation();
- new Verifications() {
- {
- List<String> names = new ArrayList<>();
- List<String> values = new ArrayList<>();
- responseEx.addHeader(withCapture(names), withCapture(values));
- assertThat(names).containsExactly("h1", "h2");
- assertThat(values).containsExactly("v1", "v2");
- }
- };
+ Mockito.verify(responseEx, Mockito.times(1)).addHeader("h1", "v1");
+ Mockito.verify(responseEx, Mockito.times(1)).addHeader("h2", "v2");
}
}
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/filter/inner/TestServerRestArgsFilter.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/filter/inner/TestServerRestArgsFilter.java
index 30d6a45..2a190a0 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/filter/inner/TestServerRestArgsFilter.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/filter/inner/TestServerRestArgsFilter.java
@@ -16,16 +16,11 @@
*/
package org.apache.servicecomb.common.rest.filter.inner;
-import java.util.concurrent.CompletableFuture;
-
import javax.servlet.http.Part;
import org.apache.servicecomb.common.rest.RestConst;
import org.apache.servicecomb.common.rest.codec.RestObjectMapperFactory;
-import org.apache.servicecomb.common.rest.definition.RestMetaUtils;
-import org.apache.servicecomb.common.rest.definition.RestOperationMeta;
import org.apache.servicecomb.core.Invocation;
-import org.apache.servicecomb.core.definition.OperationMeta;
import org.apache.servicecomb.foundation.vertx.http.HttpServletResponseEx;
import org.apache.servicecomb.swagger.invocation.Response;
import org.apache.servicecomb.swagger.invocation.response.ResponsesMeta;
@@ -33,55 +28,37 @@
import org.junit.Test;
import com.fasterxml.jackson.databind.type.TypeFactory;
+import org.mockito.Mockito;
-import mockit.Expectations;
-import mockit.Mock;
-import mockit.MockUp;
-import mockit.Mocked;
public class TestServerRestArgsFilter {
- @Mocked
- Invocation invocation;
- @Mocked
- HttpServletResponseEx responseEx;
+ Invocation invocation = Mockito.mock(Invocation.class);
- @Mocked
- Response response;
+ HttpServletResponseEx responseEx = Mockito.mock(HttpServletResponseEx.class);
- @Mocked
- Part part;
+ Response response = Mockito.mock(Response.class);
- @Mocked
- OperationMeta operationMeta;
+ Part part = Mockito.mock(Part.class);
boolean invokedSendPart;
ServerRestArgsFilter filter = new ServerRestArgsFilter();
@Test
- public void asyncBeforeSendResponse_part(@Mocked RestOperationMeta restOperationMeta) {
+ public void asyncBeforeSendResponse_part() {
ResponsesMeta responsesMeta = new ResponsesMeta();
responsesMeta.getResponseMap().put(202, RestObjectMapperFactory.getRestObjectMapper().constructType(Part.class));
- new Expectations(RestMetaUtils.class) {
- {
- responseEx.getAttribute(RestConst.INVOCATION_HANDLER_RESPONSE);
- result = response;
- response.getResult();
- result = part;
- response.getStatusCode();
- result = 202;
- invocation.findResponseType(202);
- result = TypeFactory.defaultInstance().constructType(Part.class);
- }
- };
- new MockUp<HttpServletResponseEx>(responseEx) {
- @Mock
- CompletableFuture<Void> sendPart(Part body) {
- invokedSendPart = true;
- return null;
- }
- };
+
+ Mockito.when(responseEx.getAttribute(RestConst.INVOCATION_HANDLER_RESPONSE)).thenReturn(response);
+ Mockito.when(response.getResult()).thenReturn(part);
+ Mockito.when(response.getStatusCode()).thenReturn(202);
+ Mockito.when(invocation.findResponseType(202)).thenReturn(TypeFactory.defaultInstance().constructType(Part.class));
+
+ Mockito.doAnswer(invocationOnMock -> {
+ invokedSendPart = true;
+ return null;
+ }).when(responseEx).sendPart(part);
Assertions.assertNull(filter.beforeSendResponseAsync(invocation, responseEx));
Assertions.assertTrue(invokedSendPart);
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/locator/TestMicroservicePaths.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/locator/TestMicroservicePaths.java
index 70aeabf..2a0b664 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/locator/TestMicroservicePaths.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/locator/TestMicroservicePaths.java
@@ -28,10 +28,7 @@
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
-
-import mockit.Deencapsulation;
-import mockit.Expectations;
-import mockit.Mocked;
+import org.mockito.Mockito;
public class TestMicroservicePaths {
static SCBEngine scbEngine;
@@ -46,7 +43,7 @@
.run();
ServicePathManager spm = ServicePathManager.getServicePathManager(scbEngine.getProducerMicroserviceMeta());
- paths = Deencapsulation.getField(spm, "producerPaths");
+ paths = spm.producerPaths;
}
@AfterClass
@@ -65,17 +62,12 @@
}
@Test
- public void testAddResourceStaticDuplicatedHttpMethod(@Mocked RestOperationMeta staticResPost) {
- new Expectations() {
- {
- staticResPost.getHttpMethod();
- result = "POST";
- staticResPost.getAbsolutePath();
- result = "/static/";
- staticResPost.isAbsoluteStaticPath();
- result = true;
- }
- };
+ public void testAddResourceStaticDuplicatedHttpMethod() {
+ RestOperationMeta staticResPost = Mockito.mock(RestOperationMeta.class);
+ Mockito.when(staticResPost.getHttpMethod()).thenReturn("POST");
+ Mockito.when(staticResPost.getAbsolutePath()).thenReturn("/static/");
+ Mockito.when(staticResPost.isAbsoluteStaticPath()).thenReturn(true);
+
ServiceCombException exception = Assertions.assertThrows(ServiceCombException.class,
() -> paths.addResource(staticResPost));
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/resource/TestClassPathStaticResourceHandler.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/resource/TestClassPathStaticResourceHandler.java
index 66ec649..144b67c 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/resource/TestClassPathStaticResourceHandler.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/resource/TestClassPathStaticResourceHandler.java
@@ -33,8 +33,7 @@
import org.junit.jupiter.api.Assertions;
import org.junit.BeforeClass;
import org.junit.Test;
-
-import mockit.Expectations;
+import org.mockito.Mockito;
public class TestClassPathStaticResourceHandler {
static ClassPathStaticResourceHandler handler = new ClassPathStaticResourceHandler();
@@ -83,12 +82,9 @@
@Test
public void readContentFailed() throws IOException {
- new Expectations(handler) {
- {
- handler.findResource(anyString);
- result = new RuntimeExceptionWithoutStackTrace("read content failed.");
- }
- };
+ handler = Mockito.spy(TestClassPathStaticResourceHandler.handler);
+ Mockito.when(handler.findResource("web-root/index.html"))
+ .thenThrow(new RuntimeExceptionWithoutStackTrace("read content failed."));
try (LogCollector logCollector = new LogCollector()) {
Response response = handler.handle("index.html");
diff --git a/core/src/main/java/org/apache/servicecomb/core/Invocation.java b/core/src/main/java/org/apache/servicecomb/core/Invocation.java
index d11dad5..b1b48c7 100644
--- a/core/src/main/java/org/apache/servicecomb/core/Invocation.java
+++ b/core/src/main/java/org/apache/servicecomb/core/Invocation.java
@@ -27,6 +27,7 @@
import java.util.concurrent.Executor;
import java.util.concurrent.atomic.AtomicLong;
+import com.google.common.annotations.VisibleForTesting;
import org.apache.commons.lang3.StringUtils;
import org.apache.servicecomb.core.definition.InvocationRuntimeType;
import org.apache.servicecomb.core.definition.MicroserviceMeta;
@@ -160,6 +161,11 @@
return schemaMeta.getMicroserviceMeta().getHandlerChain();
}
+ @VisibleForTesting
+ public void setHandlerList(List<Handler> handlerList) {
+ this.handlerList = handlerList;
+ }
+
public Executor getResponseExecutor() {
return responseExecutor;
}