Skip to content

Commit 0ca8dd0

Browse files
committed
feat: add test case
1 parent ed30f54 commit 0ca8dd0

1 file changed

Lines changed: 136 additions & 0 deletions

File tree

trpc-selector/trpc-selector-open-polaris/src/test/java/com/tencent/trpc/selector/open/polaris/PolarisSelectorTest.java

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -574,4 +574,140 @@ public void testRemoteAddress() {
574574
CompletableFuture.allOf(stage.toCompletableFuture()).join();
575575
Assert.assertNull(errorRef.get());
576576
}
577+
578+
@Test
579+
public void testSpringHeaders() throws Exception {
580+
PolarisSelector clusterNaming = new PolarisSelector();
581+
clusterNaming.setPluginConfig(selectorConfig);
582+
clusterNaming.init();
583+
584+
ServiceId serviceId = DataTest.newServiceId();
585+
Request request = DataTest.mockRequest();
586+
RpcClientContext context = new RpcClientContext();
587+
588+
Object mockHeaders = new Object() {
589+
public String getFirst(String headerName) {
590+
return "header-value";
591+
}
592+
};
593+
context.getReqAttachMap().put("headers", mockHeaders);
594+
Mockito.when(request.getContext()).thenReturn(context);
595+
596+
CompletionStage<ServiceInstance> future = clusterNaming.asyncSelectOne(serviceId, request);
597+
AtomicReference<Throwable> errorRef = new AtomicReference<>();
598+
CompletionStage<ServiceInstance> stage = future.whenComplete((res, err) -> {
599+
if (err != null) {
600+
errorRef.set(err);
601+
}
602+
});
603+
CompletableFuture.allOf(stage.toCompletableFuture()).join();
604+
Assert.assertNull(errorRef.get());
605+
}
606+
607+
@Test
608+
public void testHeadersException() {
609+
PolarisSelector clusterNaming = new PolarisSelector();
610+
clusterNaming.setPluginConfig(selectorConfig);
611+
clusterNaming.init();
612+
613+
ServiceId serviceId = DataTest.newServiceId();
614+
Request request = DataTest.mockRequest();
615+
RpcClientContext context = new RpcClientContext();
616+
617+
Object mockHeaders = new Object();
618+
context.getReqAttachMap().put("headers", mockHeaders);
619+
Mockito.when(request.getContext()).thenReturn(context);
620+
621+
CompletionStage<ServiceInstance> future = clusterNaming.asyncSelectOne(serviceId, request);
622+
AtomicReference<Throwable> errorRef = new AtomicReference<>();
623+
CompletionStage<ServiceInstance> stage = future.whenComplete((res, err) -> {
624+
if (err != null) {
625+
errorRef.set(err);
626+
}
627+
});
628+
CompletableFuture.allOf(stage.toCompletableFuture()).join();
629+
Assert.assertNull(errorRef.get());
630+
}
631+
632+
@Test
633+
public void testNoCriteria() {
634+
PolarisSelector clusterNaming = new PolarisSelector();
635+
clusterNaming.setPluginConfig(selectorConfig);
636+
clusterNaming.init();
637+
638+
ServiceId serviceId = DataTest.newServiceId();
639+
Request request = DataTest.mockRequest();
640+
RequestMeta meta = new RequestMeta();
641+
Mockito.when(request.getMeta()).thenReturn(meta);
642+
643+
CompletionStage<ServiceInstance> future = clusterNaming.asyncSelectOne(serviceId, request);
644+
AtomicReference<Throwable> errorRef = new AtomicReference<>();
645+
CompletionStage<ServiceInstance> stage = future.whenComplete((res, err) -> {
646+
if (err != null) {
647+
errorRef.set(err);
648+
}
649+
});
650+
CompletableFuture.allOf(stage.toCompletableFuture()).join();
651+
Assert.assertNull(errorRef.get());
652+
}
653+
654+
@Test
655+
public void testWithExtMap() {
656+
Map<String, Object> extMap = new HashMap<>();
657+
extMap.put("worker_pool", "selector_pool1");
658+
extMap.put("test_key", "test_value");
659+
PluginConfig config = new PluginConfig("selector_ext", PolarisSelector.class, extMap);
660+
661+
PolarisSelector selector = new PolarisSelector();
662+
selector.setPluginConfig(config);
663+
selector.init();
664+
Assert.assertNotNull(selector.getPolarisAPI());
665+
selector.destroy();
666+
}
667+
668+
@Test
669+
public void testReqNoNamespace() {
670+
PolarisSelector clusterNaming = new PolarisSelector();
671+
clusterNaming.setPluginConfig(selectorConfig);
672+
clusterNaming.init();
673+
674+
ServiceId serviceId = new ServiceId();
675+
serviceId.setServiceName(DataTest.getService());
676+
serviceId.setVersion("1.0");
677+
serviceId.setGroup("group");
678+
serviceId.setParameters(new HashMap<>());
679+
680+
CompletionStage<ServiceInstance> future = clusterNaming.asyncSelectOne(serviceId, DataTest.request);
681+
AtomicReference<Throwable> errorRef = new AtomicReference<>();
682+
CompletionStage<ServiceInstance> stage = future.whenComplete((res, err) -> {
683+
if (err != null) {
684+
errorRef.set(err);
685+
}
686+
});
687+
CompletableFuture.allOf(stage.toCompletableFuture()).join();
688+
Assert.assertNull(errorRef.get());
689+
}
690+
691+
@Test
692+
public void testAllReqNoNamespace() {
693+
PolarisSelector clusterNaming = new PolarisSelector();
694+
clusterNaming.setPluginConfig(selectorConfig);
695+
clusterNaming.init();
696+
697+
ServiceId serviceId = new ServiceId();
698+
serviceId.setServiceName(DataTest.getService());
699+
serviceId.setVersion("1.0");
700+
serviceId.setGroup("group");
701+
serviceId.setParameters(new HashMap<>());
702+
703+
CompletionStage<List<ServiceInstance>> future = clusterNaming.asyncSelectAll(serviceId, DataTest.request);
704+
AtomicReference<Throwable> errorRef = new AtomicReference<>();
705+
CompletionStage<List<ServiceInstance>> stage = future.whenComplete((res, err) -> {
706+
if (err != null) {
707+
errorRef.set(err);
708+
}
709+
});
710+
CompletableFuture.allOf(stage.toCompletableFuture()).join();
711+
Assert.assertNull(errorRef.get());
712+
}
577713
}

0 commit comments

Comments
 (0)