Refactor test cases for Sentinel gRPC Adapter (#101)

- Added a GrpcTestServer to abstract common server logic
- Refactor with new added `GrpcTestServer`
This commit is contained in:
refactormachine 2018-08-30 18:57:23 +03:00 committed by Eric Zhao
parent 2772f189ab
commit b61be268a3
3 changed files with 39 additions and 48 deletions

View File

@ -0,0 +1,33 @@
package com.alibaba.csp.sentinel.adapter.grpc;
import io.grpc.Server;
import io.grpc.ServerBuilder;
import java.io.IOException;
class GrpcTestServer {
private Server server;
GrpcTestServer() {
}
void start(int port, boolean shouldintercept) throws IOException {
if (server != null) {
throw new IllegalStateException("Server already running!");
}
ServerBuilder<?> serverBuild = ServerBuilder.forPort(port)
.addService(new FooServiceImpl());
if (shouldintercept) {
serverBuild.intercept(new SentinelGrpcServerInterceptor());
}
server = serverBuild.build();
server.start();
}
void stop() {
if (server != null) {
server.shutdown();
server = null;
}
}
}

View File

@ -15,7 +15,6 @@
*/
package com.alibaba.csp.sentinel.adapter.grpc;
import java.io.IOException;
import java.util.Collections;
import com.alibaba.csp.sentinel.EntryType;
@ -27,10 +26,7 @@ import com.alibaba.csp.sentinel.slots.block.flow.FlowRule;
import com.alibaba.csp.sentinel.slots.block.flow.FlowRuleManager;
import com.alibaba.csp.sentinel.slots.clusterbuilder.ClusterBuilderSlot;
import io.grpc.Server;
import io.grpc.ServerBuilder;
import io.grpc.StatusRuntimeException;
import org.junit.Test;
import static org.junit.Assert.*;
@ -43,8 +39,7 @@ public class SentinelGrpcClientInterceptorTest {
private final String resourceName = "com.alibaba.sentinel.examples.FooService/sayHello";
private final int threshold = 2;
private Server server;
private final GrpcTestServer server = new GrpcTestServer();
private void configureFlowRule() {
FlowRule rule = new FlowRule()
@ -61,7 +56,7 @@ public class SentinelGrpcClientInterceptorTest {
final int port = 19328;
configureFlowRule();
prepareServer(port);
server.start(port, false);
FooServiceClient client = new FooServiceClient("localhost", port, new SentinelGrpcClientInterceptor());
final int total = 8;
@ -81,7 +76,7 @@ public class SentinelGrpcClientInterceptorTest {
assertEquals(total - threshold, blockedQps);
assertEquals(threshold, passQps);
stopServer();
server.stop();
}
private void sendRequest(FooServiceClient client) {
@ -94,20 +89,4 @@ public class SentinelGrpcClientInterceptorTest {
}
}
private void prepareServer(int port) throws IOException {
if (server != null) {
throw new IllegalStateException("Server already running!");
}
server = ServerBuilder.forPort(port)
.addService(new FooServiceImpl())
.build();
server.start();
}
private void stopServer() {
if (server != null) {
server.shutdown();
server = null;
}
}
}

View File

@ -15,7 +15,6 @@
*/
package com.alibaba.csp.sentinel.adapter.grpc;
import java.io.IOException;
import java.util.Collections;
import com.alibaba.csp.sentinel.EntryType;
@ -27,10 +26,7 @@ import com.alibaba.csp.sentinel.slots.block.flow.FlowRule;
import com.alibaba.csp.sentinel.slots.block.flow.FlowRuleManager;
import com.alibaba.csp.sentinel.slots.clusterbuilder.ClusterBuilderSlot;
import io.grpc.Server;
import io.grpc.ServerBuilder;
import io.grpc.StatusRuntimeException;
import org.junit.Test;
import static org.junit.Assert.*;
@ -43,8 +39,8 @@ public class SentinelGrpcServerInterceptorTest {
private final String resourceName = "com.alibaba.sentinel.examples.FooService/anotherHello";
private final int threshold = 4;
private final GrpcTestServer server = new GrpcTestServer();
private Server server;
private FooServiceClient client;
private void configureFlowRule() {
@ -63,7 +59,7 @@ public class SentinelGrpcServerInterceptorTest {
client = new FooServiceClient("localhost", port);
configureFlowRule();
prepareServer(port);
server.start(port, true);
final int total = 8;
for (int i = 0; i < total; i++) {
@ -82,7 +78,7 @@ public class SentinelGrpcServerInterceptorTest {
assertEquals(total - threshold, blockedQps);
assertEquals(threshold, passQps);
stopServer();
server.stop();
}
private void sendRequest() {
@ -94,21 +90,4 @@ public class SentinelGrpcServerInterceptorTest {
}
}
private void prepareServer(int port) throws IOException {
if (server != null) {
throw new IllegalStateException("Server already running!");
}
server = ServerBuilder.forPort(port)
.addService(new FooServiceImpl())
.intercept(new SentinelGrpcServerInterceptor())
.build();
server.start();
}
private void stopServer() {
if (server != null) {
server.shutdown();
server = null;
}
}
}