You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2020/01/23 09:16:00 UTC
[servicecomb-java-chassis] 01/03: [SCB-1734]add a test case for
bean with aXXX property and some refactoring
This is an automated email from the ASF dual-hosted git repository.
liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
commit 2573778d610e7633184fe379af8d02edd9a537c1
Author: liubao <bi...@qq.com>
AuthorDate: Wed Jan 22 14:39:39 2020 +0800
[SCB-1734]add a test case for bean with aXXX property and some refactoring
---
.../org/apache/servicecomb/core/Invocation.java | 3 +-
.../servicecomb/demo/model/SpecialNameModel.java | 22 ++-
.../apache/servicecomb/demo/tccserver/TestTcc.java | 27 ---
.../demo/springmvc/client/TestWeakSpringmvc.java | 25 ++-
.../demo/springmvc/server/WeakSpringmvc.java | 7 +
.../foundation/protobuf/ProtoMapperFactory.java | 1 -
.../transport/highway/HighwayCodec.java | 2 +-
.../transport/highway/HighwayOutputStream.java | 24 ++-
.../transport/highway/message/LoginRequest.java | 5 +-
.../transport/highway/message/LoginResponse.java | 4 +-
.../transport/highway/message/RequestHeader.java | 9 +-
.../transport/highway/message/ResponseHeader.java | 5 +-
.../highway/TestHighwayServerConnection.java | 193 ---------------------
13 files changed, 62 insertions(+), 265 deletions(-)
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 6b81b9a..552d3b9 100644
--- a/core/src/main/java/org/apache/servicecomb/core/Invocation.java
+++ b/core/src/main/java/org/apache/servicecomb/core/Invocation.java
@@ -250,8 +250,7 @@ public class Invocation extends SwaggerInvocation {
this.invocationArguments = swaggerArguments;
}
}
-
- // TODO: WEAK add release notes to tell this change in 2.0.0
+
public Object[] toProducerArguments() {
Method method = operationMeta.getSwaggerProducerOperation().getProducerMethod();
Object[] args = new Object[method.getParameterCount()];
diff --git a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerInvoke.java b/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/model/SpecialNameModel.java
similarity index 60%
rename from transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerInvoke.java
rename to demo/demo-schema/src/main/java/org/apache/servicecomb/demo/model/SpecialNameModel.java
index e2f2547..dfacc03 100644
--- a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerInvoke.java
+++ b/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/model/SpecialNameModel.java
@@ -15,18 +15,22 @@
* limitations under the License.
*/
-package org.apache.servicecomb.transport.highway;
+package org.apache.servicecomb.demo.model;
-import org.junit.Test;
+import com.fasterxml.jackson.annotation.JsonProperty;
-public class TestHighwayServerInvoke {
- @Test
- public void test() {
- // TODO: add an integration tests to test metrics for highway works
+public class SpecialNameModel {
+ // names starts with only one lower case , although getter/setter generated by IDE is correct,
+ // will cause jackson generate incorrect swagger names.
+ // @JsonProperty must be used to make json work in a predictable way.
+ @JsonProperty("aIntName")
+ private int aIntName;
+
+ public int getaIntName() {
+ return aIntName;
}
- @Test
- public void testFlowControlQps() {
- // TODO : add an integration tests to test flow control for higwway works
+ public void setaIntName(int aIntName) {
+ this.aIntName = aIntName;
}
}
diff --git a/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/tccserver/TestTcc.java b/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/tccserver/TestTcc.java
deleted file mode 100644
index be5f1df..0000000
--- a/demo/demo-schema/src/main/java/org/apache/servicecomb/demo/tccserver/TestTcc.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.servicecomb.demo.tccserver;
-
-import org.apache.servicecomb.demo.server.TestRequest;
-import org.apache.servicecomb.demo.server.User;
-
-public interface TestTcc {
- User wrapParam(TestRequest request);
-
- User splitParam(int index, User user);
-}
diff --git a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestWeakSpringmvc.java b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestWeakSpringmvc.java
index 36d4c91..a2f9817 100644
--- a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestWeakSpringmvc.java
+++ b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestWeakSpringmvc.java
@@ -25,6 +25,7 @@ import java.util.Map;
import org.apache.servicecomb.core.provider.consumer.InvokerUtils;
import org.apache.servicecomb.demo.CategorizedTestCase;
import org.apache.servicecomb.demo.TestMgr;
+import org.apache.servicecomb.demo.model.SpecialNameModel;
import org.apache.servicecomb.demo.server.GenericsModel;
import org.apache.servicecomb.foundation.common.utils.JsonUtils;
import org.apache.servicecomb.provider.pojo.RpcReference;
@@ -89,6 +90,10 @@ interface GenericsModelInf {
GenericsModel genericParamsModel(int code, GenericsModel model);
}
+interface SpecialNameModelInf {
+ SpecialNameModel specialNameModel(int code, SpecialNameModel model);
+}
+
@Component
public class TestWeakSpringmvc implements CategorizedTestCase {
@RpcReference(microserviceName = "springmvc", schemaId = "weakSpringmvc")
@@ -103,6 +108,9 @@ public class TestWeakSpringmvc implements CategorizedTestCase {
@RpcReference(microserviceName = "springmvc", schemaId = "weakSpringmvc")
private GenericsModelInf genericsModelInf;
+ @RpcReference(microserviceName = "springmvc", schemaId = "weakSpringmvc")
+ private SpecialNameModelInf specialNameModelInf;
+
private RestTemplate restTemplate = RestTemplateBuilder.create();
@Override
@@ -117,14 +125,23 @@ public class TestWeakSpringmvc implements CategorizedTestCase {
@Override
public void testAllTransport() throws Exception {
- getDiffName();
+ testDiffName();
testGenerics();
- getGenericsModel();
+ testGenericsModel();
+
+ testSpecailNameModel();
+ }
+
+ private void testSpecailNameModel() {
+ SpecialNameModel model = new SpecialNameModel();
+ model.setaIntName(30);
+ SpecialNameModel result = specialNameModelInf.specialNameModel(0, model);
+ TestMgr.check(30, result.getaIntName());
}
- private void getGenericsModel() throws JsonProcessingException {
+ private void testGenericsModel() throws JsonProcessingException {
GenericsModel model = new GenericsModel();
model.setName("model");
List<List<String>> namesList = new ArrayList<>();
@@ -154,7 +171,7 @@ public class TestWeakSpringmvc implements CategorizedTestCase {
TestMgr.check("hello", nameListResult.get(0).get(0));
}
- private void getDiffName() {
+ private void testDiffName() {
TestMgr.check(7, diffNames.differentName(2, 3));
TestMgr.check(8, diffNames2.differentName(2, 3));
TestMgr.check(7, restTemplate.getForObject("cse://springmvc/weakSpringmvc/diffNames?x=2&y=3", Integer.class));
diff --git a/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/WeakSpringmvc.java b/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/WeakSpringmvc.java
index 2777572..bb75d6a 100644
--- a/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/WeakSpringmvc.java
+++ b/demo/demo-springmvc/springmvc-server/src/main/java/org/apache/servicecomb/demo/springmvc/server/WeakSpringmvc.java
@@ -19,6 +19,7 @@ package org.apache.servicecomb.demo.springmvc.server;
import java.util.List;
+import org.apache.servicecomb.demo.model.SpecialNameModel;
import org.apache.servicecomb.demo.server.GenericsModel;
import org.apache.servicecomb.provider.rest.common.RestSchema;
import org.springframework.http.MediaType;
@@ -49,4 +50,10 @@ public class WeakSpringmvc {
public GenericsModel genericParamsModel(@RequestParam("code") int code, @RequestBody GenericsModel model) {
return model;
}
+
+ @GetMapping(path = "/specialNameModel")
+ @ApiOperation(value = "specialNameModel", nickname = "specialNameModel")
+ public SpecialNameModel specialNameModel(@RequestParam("code") int code, @RequestBody SpecialNameModel model) {
+ return model;
+ }
}
diff --git a/foundations/foundation-protobuf/src/main/java/org/apache/servicecomb/foundation/protobuf/ProtoMapperFactory.java b/foundations/foundation-protobuf/src/main/java/org/apache/servicecomb/foundation/protobuf/ProtoMapperFactory.java
index f1b6774..15cf994 100644
--- a/foundations/foundation-protobuf/src/main/java/org/apache/servicecomb/foundation/protobuf/ProtoMapperFactory.java
+++ b/foundations/foundation-protobuf/src/main/java/org/apache/servicecomb/foundation/protobuf/ProtoMapperFactory.java
@@ -37,7 +37,6 @@ public class ProtoMapperFactory {
public ProtoMapperFactory() {
jsonMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
jsonMapper.setSerializationInclusion(Include.NON_NULL);
-// jsonMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.OBJECT_AND_NON_CONCRETE, JsonTypeInfo.As.PROPERTY);
beanDescriptorManager = new BeanDescriptorManager(jsonMapper.getSerializationConfig());
}
diff --git a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayCodec.java b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayCodec.java
index bb28651..61423f2 100644
--- a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayCodec.java
+++ b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayCodec.java
@@ -68,7 +68,7 @@ public final class HighwayCodec {
List<Parameter> swaggerParameters = operationMeta.getSwaggerOperation()
.getParameters();
for (Parameter parameter : swaggerParameters) {
- if (!parameter.getRequired() && swaggerArguments.get(parameter.getName()) == null) {
+ if (swaggerArguments.get(parameter.getName()) == null) {
Type type = swaggerProducerOperation.getSwaggerParameterType(parameter.getName());
if (type instanceof Class) {
if (((Class) type).isPrimitive()) {
diff --git a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayOutputStream.java b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayOutputStream.java
index 3eac978..b0eb3e8 100644
--- a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayOutputStream.java
+++ b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/HighwayOutputStream.java
@@ -32,32 +32,30 @@ public class HighwayOutputStream extends TcpOutputStream {
write(RequestHeader.getRootSerializer().serialize(header), requestRootSerializer.serialize(body));
}
- public void write(ResponseHeader header, ResponseRootSerializer responseRootSerializer, Object body) throws Exception {
+ public void write(ResponseHeader header, ResponseRootSerializer responseRootSerializer, Object body)
+ throws Exception {
write(ResponseHeader.getRootSerializer().serialize(header), responseRootSerializer.serialize(body));
}
- public void write(RequestHeader header, RootSerializer bodySchema, Object body) throws Exception {
- write(RequestHeader.getRootSerializer(), header, bodySchema, body);
+ public void write(RequestHeader header, RootSerializer bodySerializer, Object body) throws Exception {
+ write(RequestHeader.getRootSerializer(), header, bodySerializer, body);
}
- public void write(ResponseHeader header, RootSerializer bodySchema, Object body) throws Exception {
- write(ResponseHeader.getRootSerializer(), header, bodySchema, body);
+ public void write(ResponseHeader header, RootSerializer bodySerializer, Object body) throws Exception {
+ write(ResponseHeader.getRootSerializer(), header, bodySerializer, body);
}
- public void write(RootSerializer headerSchema, Object header, RootSerializer bodySchema, Object body)
+ public void write(RootSerializer headerSerializer, Object header, RootSerializer bodySerializer, Object body)
throws Exception {
byte[] headerBytes = new byte[0];
byte[] bodyBytes = new byte[0];
- // 写header
- if (headerSchema != null) {
- headerBytes = headerSchema.serialize(header);
+ if (headerSerializer != null) {
+ headerBytes = headerSerializer.serialize(header);
}
- // 写body
- // void时bodySchema为null
- if (bodySchema != null) {
- bodyBytes = bodySchema.serialize(body);
+ if (bodySerializer != null) {
+ bodyBytes = bodySerializer.serialize(body);
}
write(headerBytes, bodyBytes);
diff --git a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/message/LoginRequest.java b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/message/LoginRequest.java
index 191153e..c462b52 100644
--- a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/message/LoginRequest.java
+++ b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/message/LoginRequest.java
@@ -23,10 +23,10 @@ import org.apache.servicecomb.foundation.protobuf.RootSerializer;
import io.vertx.core.buffer.Buffer;
public class LoginRequest {
- // TODO : WEAK refactor reuse
private static ProtoMapperFactory protoMapperFactory = new ProtoMapperFactory();
- private static RootDeserializer<LoginRequest> rootDeserializer = protoMapperFactory.createFromName("LoginRequest.proto")
+ private static RootDeserializer<LoginRequest> rootDeserializer = protoMapperFactory
+ .createFromName("LoginRequest.proto")
.createRootDeserializer("LoginRequest", LoginRequest.class);
private static RootSerializer rootSerializer = protoMapperFactory.createFromName("LoginRequest.proto")
@@ -60,5 +60,4 @@ public class LoginRequest {
public void setZipName(String zipName) {
this.zipName = zipName;
}
-
}
diff --git a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/message/LoginResponse.java b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/message/LoginResponse.java
index a27fc7d..b084f8a 100644
--- a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/message/LoginResponse.java
+++ b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/message/LoginResponse.java
@@ -23,10 +23,10 @@ import org.apache.servicecomb.foundation.protobuf.RootSerializer;
import io.vertx.core.buffer.Buffer;
public class LoginResponse {
- // TODO : WEAK refactor reuse
private static ProtoMapperFactory protoMapperFactory = new ProtoMapperFactory();
- private static RootDeserializer<LoginResponse> rootDeserializer = protoMapperFactory.createFromName("LoginResponse.proto")
+ private static RootDeserializer<LoginResponse> rootDeserializer = protoMapperFactory
+ .createFromName("LoginResponse.proto")
.createRootDeserializer("LoginResponse", LoginResponse.class);
private static RootSerializer rootSerializer = protoMapperFactory.createFromName("LoginResponse.proto")
diff --git a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/message/RequestHeader.java b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/message/RequestHeader.java
index 1835e25..e334ccb 100644
--- a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/message/RequestHeader.java
+++ b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/message/RequestHeader.java
@@ -25,15 +25,11 @@ import org.apache.servicecomb.foundation.protobuf.RootSerializer;
import io.vertx.core.buffer.Buffer;
-/**
- * tag的缺失、乱序,是因为要兼容历史版本
- * 1.tag(4),是历史版本中的压缩算法名,转移到login消息中传递
- */
public class RequestHeader {
- // TODO : WEAK refactor reuse
private static ProtoMapperFactory protoMapperFactory = new ProtoMapperFactory();
- private static RootDeserializer<RequestHeader> rootDeserializer = protoMapperFactory.createFromName("RequestHeader.proto")
+ private static RootDeserializer<RequestHeader> rootDeserializer = protoMapperFactory
+ .createFromName("RequestHeader.proto")
.createRootDeserializer("RequestHeader", RequestHeader.class);
private static RootSerializer rootSerializer = protoMapperFactory.createFromName("RequestHeader.proto")
@@ -61,7 +57,6 @@ public class RequestHeader {
private Map<String, String> context;
- //CHECKSTYLE:ON
public int getMsgType() {
return msgType;
}
diff --git a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/message/ResponseHeader.java b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/message/ResponseHeader.java
index 262ac71..65488c2 100644
--- a/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/message/ResponseHeader.java
+++ b/transports/transport-highway/src/main/java/org/apache/servicecomb/transport/highway/message/ResponseHeader.java
@@ -27,10 +27,10 @@ import org.apache.servicecomb.swagger.invocation.response.Headers;
import io.vertx.core.buffer.Buffer;
public class ResponseHeader {
- // TODO : refactor reuse
private static ProtoMapperFactory protoMapperFactory = new ProtoMapperFactory();
- private static RootDeserializer<ResponseHeader> rootDeserializer = protoMapperFactory.createFromName("ResponseHeader.proto")
+ private static RootDeserializer<ResponseHeader> rootDeserializer = protoMapperFactory
+ .createFromName("ResponseHeader.proto")
.createRootDeserializer("ResponseHeader", ResponseHeader.class);
private static RootSerializer rootSerializer = protoMapperFactory.createFromName("ResponseHeader.proto")
@@ -64,7 +64,6 @@ public class ResponseHeader {
this.flags = flags;
}
- //CHECKSTYLE:ON: magicnumber
public int getStatusCode() {
return statusCode;
}
diff --git a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerConnection.java b/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerConnection.java
deleted file mode 100644
index d8ed159..0000000
--- a/transports/transport-highway/src/test/java/org/apache/servicecomb/transport/highway/TestHighwayServerConnection.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.servicecomb.transport.highway;
-
-public class TestHighwayServerConnection {
- // TODO : WK unit test
-// private static WrapSchema requestHeaderSchema =
-// ScopedProtobufSchemaManager.INSTANCE.getOrCreateSchema(RequestHeader.class);
-//
-// private static WrapSchema setParameterRequestSchema =
-// ScopedProtobufSchemaManager.INSTANCE.getOrCreateSchema(LoginRequest.class);
-//
-// HighwayServerConnection connection;
-//
-// @Mocked
-// Endpoint endpoint;
-//
-// @Mocked
-// NetSocketImpl netSocket;
-//
-// RequestHeader header = new RequestHeader();
-//
-// @Before
-// public void init() {
-// new Expectations() {
-// {
-// netSocket.remoteAddress();
-// result = new SocketAddressImpl(new InetSocketAddress("127.0.0.1", 80));
-// }
-// };
-// connection = new HighwayServerConnection(endpoint);
-// connection.init(netSocket);
-//
-// header = new RequestHeader();
-// }
-//
-// @Test
-// public void testInvalidMsgType() throws Exception {
-// header.setMsgType((byte) 100);
-// Buffer headerBuffer = createBuffer(requestHeaderSchema, header);
-//
-// try {
-// connection.handle(0, headerBuffer, null);
-// throw new Error("must error");
-// } catch (Throwable e) {
-// Assert.assertEquals("Unknown tcp msgType 100", e.getMessage());
-// }
-// }
-//
-// @Test
-// public void testReqeustHeaderError() throws Exception {
-// header.setMsgType(MsgType.LOGIN);
-// Buffer headerBuffer = createBuffer(requestHeaderSchema, header);
-//
-// headerBuffer.setByte(0, (byte) 100);
-//
-// connection.handle(0, headerBuffer, null);
-//
-// Assert.assertEquals(null, connection.getProtocol());
-// Assert.assertEquals(null, connection.getZipName());
-// }
-//
-// @Test
-// public void testSetParameterNormal() throws Exception {
-// header.setMsgType(MsgType.LOGIN);
-// Buffer headerBuffer = createBuffer(requestHeaderSchema, header);
-//
-// LoginRequest body = new LoginRequest();
-// body.setProtocol("p");
-// body.setZipName("z");
-// Buffer bodyBuffer = createBuffer(setParameterRequestSchema, body);
-//
-// connection.handle(0, headerBuffer, bodyBuffer);
-//
-// Assert.assertEquals("p", connection.getProtocol());
-// Assert.assertEquals("z", connection.getZipName());
-// }
-//
-// @Test
-// public void testSetParameterError() throws Exception {
-// header.setMsgType(MsgType.LOGIN);
-// Buffer headerBuffer = createBuffer(requestHeaderSchema, header);
-//
-// LoginRequest body = new LoginRequest();
-// body.setProtocol("p");
-// body.setZipName("z");
-// Buffer bodyBuffer = createBuffer(setParameterRequestSchema, body);
-// bodyBuffer.setByte(0, (byte) 100);
-//
-// connection.handle(0, headerBuffer, bodyBuffer);
-//
-// Assert.assertEquals(null, connection.getProtocol());
-// Assert.assertEquals(null, connection.getZipName());
-// }
-//
-// @Test
-// public void testRequestNormal(@Mocked MicroserviceMeta microserviceMeta, @Mocked OperationMeta operationMeta,
-// @Mocked SchemaMeta schemaMeta) throws Exception {
-// header.setMsgType(MsgType.REQUEST);
-// Buffer headerBuffer = createBuffer(requestHeaderSchema, header);
-//
-// Buffer bodyBuffer = Buffer.buffer();
-// new Expectations(SCBEngine.class) {
-// {
-// SCBEngine.getInstance().getProducerMicroserviceMeta();
-// result = microserviceMeta;
-// }
-// };
-// new Expectations() {
-// {
-// microserviceMeta.ensureFindSchemaMeta(header.getSchemaId());
-// result = schemaMeta;
-// }
-// };
-//
-// new Expectations(ProtobufManager.class) {
-// {
-// ProtobufManager.getOrCreateOperation(operationMeta);
-// result = null;
-// }
-// };
-//
-// Holder<Boolean> holder = new Holder<>();
-// new MockUp<HighwayServerInvoke>() {
-// @Mock
-// public boolean init(NetSocket netSocket, long msgId,
-// RequestHeader header, Buffer bodyBuffer) {
-// return true;
-// }
-//
-// @Mock
-// public void execute() {
-// holder.value = true;
-// }
-// };
-//
-// connection.handle(0, headerBuffer, bodyBuffer);
-//
-// Assert.assertEquals(null, connection.getProtocol());
-// Assert.assertEquals(null, connection.getZipName());
-// Assert.assertEquals(true, holder.value);
-// }
-//
-// @Test
-// public void testRequestError() throws Exception {
-// header.setMsgType(MsgType.REQUEST);
-// Buffer headerBuffer = createBuffer(requestHeaderSchema, header);
-//
-// Buffer bodyBuffer = Buffer.buffer();
-//
-// Holder<Boolean> holder = new Holder<>(false);
-// new MockUp<HighwayServerInvoke>() {
-// @Mock
-// public boolean init(NetSocket netSocket, long msgId,
-// RequestHeader header, Buffer bodyBuffer) {
-// return false;
-// }
-// };
-//
-// connection.handle(0, headerBuffer, bodyBuffer);
-//
-// Assert.assertEquals(null, connection.getProtocol());
-// Assert.assertEquals(null, connection.getZipName());
-// Assert.assertEquals(false, holder.value);
-// }
-//
-// protected Buffer createBuffer(WrapSchema schema, Object value) throws Exception {
-// Buffer headerBuffer;
-// LinkedBuffer linkedBuffer = LinkedBuffer.allocate();
-// ProtobufOutput output = new ProtobufOutput(linkedBuffer);
-// schema.writeObject(output, value);
-// try (BufferOutputStream os = new BufferOutputStream()) {
-// LinkedBuffer.writeTo(os, linkedBuffer);
-//
-// headerBuffer = os.getBuffer();
-// }
-// return headerBuffer;
-// }
-}