From 2fbb0ebd98297aae70a5b2ab1a408654cec70707 Mon Sep 17 00:00:00 2001 From: gzhao9 <74684732+gzhao9@users.noreply.github.com> Date: Wed, 4 Oct 2023 18:39:48 -0400 Subject: [PATCH 1/3] Refactor the test in the package org. Apache. Dubbo. Reactive. I observed and found the responseObserver mock. In ManyToManyMethodHandlerTest, ManyToOneMethodHandlerTest and OneToManyMethodHandlerTest these three have repeatedly creating problems in the test class. To avoid duplicate creation. I created a class called creatObserverAdapter and set the get method. In the test cases of the three test classes, the get method is used to avoid the repeated creation of mocks and stubs. --- .../reactive/ManyToManyMethodHandlerTest.java | 21 ++++---- .../reactive/ManyToOneMethodHandlerTest.java | 47 +++++++----------- .../reactive/OneToManyMethodHandlerTest.java | 36 ++++++-------- .../dubbo/reactive/creatObserverAdapter.java | 49 +++++++++++++++++++ 4 files changed, 94 insertions(+), 59 deletions(-) create mode 100644 dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/creatObserverAdapter.java diff --git a/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/ManyToManyMethodHandlerTest.java b/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/ManyToManyMethodHandlerTest.java index b1c642967b2e..4c7ebf22aace 100644 --- a/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/ManyToManyMethodHandlerTest.java +++ b/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/ManyToManyMethodHandlerTest.java @@ -22,6 +22,7 @@ import org.apache.dubbo.rpc.protocol.tri.observer.ServerCallToObserverAdapter; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Mockito; @@ -37,19 +38,17 @@ * Unit test for ManyToManyMethodHandler */ public final class ManyToManyMethodHandlerTest { - @Test void testInvoke() throws ExecutionException, InterruptedException { - AtomicInteger nextCounter = new AtomicInteger(); - AtomicInteger completeCounter = new AtomicInteger(); - AtomicInteger errorCounter = new AtomicInteger(); - ServerCallToObserverAdapter responseObserver = Mockito.mock(ServerCallToObserverAdapter.class); - doAnswer(o -> nextCounter.incrementAndGet()) - .when(responseObserver).onNext(anyString()); - doAnswer(o -> completeCounter.incrementAndGet()) - .when(responseObserver).onCompleted(); - doAnswer(o -> errorCounter.incrementAndGet()) - .when(responseObserver).onError(any(Throwable.class)); + + creatObserverAdapter creator=new creatObserverAdapter(); + + ServerCallToObserverAdapter responseObserver=creator.getResponseObserver(); + + AtomicInteger nextCounter = creator.getNextCounter(); + AtomicInteger completeCounter = creator.getCompleteCounter(); + AtomicInteger errorCounter = creator.getErrorCounter(); + ManyToManyMethodHandler handler = new ManyToManyMethodHandler<>(requestFlux -> requestFlux.map(r -> r + "0")); CompletableFuture> future = handler.invoke(new Object[]{responseObserver}); diff --git a/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/ManyToOneMethodHandlerTest.java b/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/ManyToOneMethodHandlerTest.java index 1a5953fad159..8d5c3423d070 100644 --- a/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/ManyToOneMethodHandlerTest.java +++ b/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/ManyToOneMethodHandlerTest.java @@ -22,6 +22,7 @@ import org.apache.dubbo.rpc.protocol.tri.observer.ServerCallToObserverAdapter; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Mockito; @@ -38,22 +39,26 @@ */ public final class ManyToOneMethodHandlerTest { - @Test - void testInvoker() throws ExecutionException, InterruptedException { - AtomicInteger nextCounter = new AtomicInteger(); - AtomicInteger completeCounter = new AtomicInteger(); - AtomicInteger errorCounter = new AtomicInteger(); - ServerCallToObserverAdapter responseObserver = Mockito.mock(ServerCallToObserverAdapter.class); - doAnswer(o -> nextCounter.incrementAndGet()) - .when(responseObserver).onNext(anyString()); - doAnswer(o -> completeCounter.incrementAndGet()) - .when(responseObserver).onCompleted(); - doAnswer(o -> errorCounter.incrementAndGet()) - .when(responseObserver).onError(any(Throwable.class)); + private StreamObserver requestObserver; + private AtomicInteger nextCounter; + private AtomicInteger completeCounter; + private AtomicInteger errorCounter; + @BeforeEach + void init() throws ExecutionException, InterruptedException { + creatObserverAdapter creator=new creatObserverAdapter(); + ServerCallToObserverAdapter responseObserver=creator.getResponseObserver(); + nextCounter = creator.getNextCounter(); + completeCounter = creator.getCompleteCounter(); + errorCounter = creator.getErrorCounter(); + ManyToOneMethodHandler handler = new ManyToOneMethodHandler<>(requestFlux -> requestFlux.map(Integer::valueOf).reduce(Integer::sum).map(String::valueOf)); CompletableFuture> future = handler.invoke(new Object[]{responseObserver}); - StreamObserver requestObserver = future.get(); + requestObserver = future.get(); + } + + @Test + void testInvoker(){ for (int i = 0; i < 10; i++) { requestObserver.onNext(String.valueOf(i)); } @@ -64,21 +69,7 @@ void testInvoker() throws ExecutionException, InterruptedException { } @Test - void testError() throws ExecutionException, InterruptedException { - AtomicInteger nextCounter = new AtomicInteger(); - AtomicInteger completeCounter = new AtomicInteger(); - AtomicInteger errorCounter = new AtomicInteger(); - ServerCallToObserverAdapter responseObserver = Mockito.mock(ServerCallToObserverAdapter.class); - doAnswer(o -> nextCounter.incrementAndGet()) - .when(responseObserver).onNext(anyString()); - doAnswer(o -> completeCounter.incrementAndGet()) - .when(responseObserver).onCompleted(); - doAnswer(o -> errorCounter.incrementAndGet()) - .when(responseObserver).onError(any(Throwable.class)); - ManyToOneMethodHandler handler = new ManyToOneMethodHandler<>(requestFlux -> - requestFlux.map(Integer::valueOf).reduce(Integer::sum).map(String::valueOf)); - CompletableFuture> future = handler.invoke(new Object[]{responseObserver}); - StreamObserver requestObserver = future.get(); + void testError(){ for (int i = 0; i < 10; i++) { if (i == 6) { requestObserver.onError(new Throwable()); diff --git a/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/OneToManyMethodHandlerTest.java b/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/OneToManyMethodHandlerTest.java index f1cdeb6f6547..45a493c735bf 100644 --- a/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/OneToManyMethodHandlerTest.java +++ b/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/OneToManyMethodHandlerTest.java @@ -17,15 +17,18 @@ package org.apache.dubbo.reactive; +import org.apache.dubbo.common.stream.StreamObserver; import org.apache.dubbo.reactive.handler.OneToManyMethodHandler; import org.apache.dubbo.rpc.protocol.tri.observer.ServerCallToObserverAdapter; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Mockito; import reactor.core.publisher.Flux; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; import java.util.concurrent.atomic.AtomicInteger; import static org.mockito.ArgumentMatchers.any; @@ -37,19 +40,22 @@ */ public final class OneToManyMethodHandlerTest { + + private ServerCallToObserverAdapter responseObserver; + private AtomicInteger nextCounter; + private AtomicInteger completeCounter; + private AtomicInteger errorCounter; + @BeforeEach + void init(){ + creatObserverAdapter creator=new creatObserverAdapter(); + responseObserver=creator.getResponseObserver(); + nextCounter = creator.getNextCounter(); + completeCounter = creator.getCompleteCounter(); + errorCounter = creator.getErrorCounter(); + } @Test void testInvoke() { String request = "1,2,3,4,5,6,7"; - AtomicInteger nextCounter = new AtomicInteger(); - AtomicInteger completeCounter = new AtomicInteger(); - AtomicInteger errorCounter = new AtomicInteger(); - ServerCallToObserverAdapter responseObserver = Mockito.mock(ServerCallToObserverAdapter.class); - doAnswer(o -> nextCounter.incrementAndGet()) - .when(responseObserver).onNext(anyString()); - doAnswer(o -> completeCounter.incrementAndGet()) - .when(responseObserver).onCompleted(); - doAnswer(o -> errorCounter.incrementAndGet()) - .when(responseObserver).onError(any(Throwable.class)); OneToManyMethodHandler handler = new OneToManyMethodHandler<>(requestMono -> requestMono.flatMapMany(r -> Flux.fromArray(r.split(",")))); CompletableFuture future = handler.invoke(new Object[]{request, responseObserver}); @@ -62,16 +68,6 @@ void testInvoke() { @Test void testError() { String request = "1,2,3,4,5,6,7"; - AtomicInteger nextCounter = new AtomicInteger(); - AtomicInteger completeCounter = new AtomicInteger(); - AtomicInteger errorCounter = new AtomicInteger(); - ServerCallToObserverAdapter responseObserver = Mockito.mock(ServerCallToObserverAdapter.class); - doAnswer(o -> nextCounter.incrementAndGet()) - .when(responseObserver).onNext(anyString()); - doAnswer(o -> completeCounter.incrementAndGet()) - .when(responseObserver).onCompleted(); - doAnswer(o -> errorCounter.incrementAndGet()) - .when(responseObserver).onError(any(Throwable.class)); OneToManyMethodHandler handler = new OneToManyMethodHandler<>(requestMono -> Flux.create(emitter -> { for (int i = 0; i < 10; i++) { diff --git a/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/creatObserverAdapter.java b/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/creatObserverAdapter.java new file mode 100644 index 000000000000..54d51c5e8617 --- /dev/null +++ b/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/creatObserverAdapter.java @@ -0,0 +1,49 @@ +package org.apache.dubbo.reactive; + +import org.apache.dubbo.rpc.protocol.tri.observer.ServerCallToObserverAdapter; +import org.mockito.Mockito; + +import java.util.concurrent.atomic.AtomicInteger; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.doAnswer; +public class creatObserverAdapter { + + private ServerCallToObserverAdapter responseObserver; + private AtomicInteger nextCounter; + private AtomicInteger completeCounter; + private AtomicInteger errorCounter; + + creatObserverAdapter() { + + nextCounter = new AtomicInteger(); + completeCounter = new AtomicInteger(); + errorCounter = new AtomicInteger(); + + responseObserver = Mockito.mock(ServerCallToObserverAdapter.class); + doAnswer(o -> nextCounter.incrementAndGet()) + .when(responseObserver).onNext(anyString()); + doAnswer(o -> completeCounter.incrementAndGet()) + .when(responseObserver).onCompleted(); + doAnswer(o -> errorCounter.incrementAndGet()) + .when(responseObserver).onError(any(Throwable.class)); + + } + + public AtomicInteger getCompleteCounter() { + return completeCounter; + } + + public AtomicInteger getNextCounter() { + return nextCounter; + } + + public AtomicInteger getErrorCounter() { + return errorCounter; + } + + public ServerCallToObserverAdapter getResponseObserver() { + return this.responseObserver; + } +} From b06bb3336fe6935263f054257885e4364acbe3e8 Mon Sep 17 00:00:00 2001 From: gzhao9 <74684732+gzhao9@users.noreply.github.com> Date: Sun, 8 Oct 2023 13:25:51 -0400 Subject: [PATCH 2/3] Further optimization to reduce lines of code --- ...Adapter.java => CreatObserverAdapter.java} | 6 ++-- .../reactive/ManyToManyMethodHandlerTest.java | 25 +++---------- .../reactive/ManyToOneMethodHandlerTest.java | 32 +++++++---------- .../reactive/OneToManyMethodHandlerTest.java | 35 +++++++------------ 4 files changed, 33 insertions(+), 65 deletions(-) rename dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/{creatObserverAdapter.java => CreatObserverAdapter.java} (95%) diff --git a/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/creatObserverAdapter.java b/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/CreatObserverAdapter.java similarity index 95% rename from dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/creatObserverAdapter.java rename to dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/CreatObserverAdapter.java index 54d51c5e8617..881918bd1aa2 100644 --- a/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/creatObserverAdapter.java +++ b/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/CreatObserverAdapter.java @@ -1,6 +1,7 @@ package org.apache.dubbo.reactive; import org.apache.dubbo.rpc.protocol.tri.observer.ServerCallToObserverAdapter; + import org.mockito.Mockito; import java.util.concurrent.atomic.AtomicInteger; @@ -8,14 +9,15 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.doAnswer; -public class creatObserverAdapter { + +public class CreatObserverAdapter { private ServerCallToObserverAdapter responseObserver; private AtomicInteger nextCounter; private AtomicInteger completeCounter; private AtomicInteger errorCounter; - creatObserverAdapter() { + CreatObserverAdapter() { nextCounter = new AtomicInteger(); completeCounter = new AtomicInteger(); diff --git a/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/ManyToManyMethodHandlerTest.java b/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/ManyToManyMethodHandlerTest.java index 4c7ebf22aace..7723d0c702be 100644 --- a/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/ManyToManyMethodHandlerTest.java +++ b/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/ManyToManyMethodHandlerTest.java @@ -19,20 +19,12 @@ import org.apache.dubbo.common.stream.StreamObserver; import org.apache.dubbo.reactive.handler.ManyToManyMethodHandler; -import org.apache.dubbo.rpc.protocol.tri.observer.ServerCallToObserverAdapter; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.mockito.Mockito; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; -import java.util.concurrent.atomic.AtomicInteger; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.doAnswer; /** * Unit test for ManyToManyMethodHandler @@ -40,25 +32,18 @@ public final class ManyToManyMethodHandlerTest { @Test void testInvoke() throws ExecutionException, InterruptedException { - - creatObserverAdapter creator=new creatObserverAdapter(); - - ServerCallToObserverAdapter responseObserver=creator.getResponseObserver(); - - AtomicInteger nextCounter = creator.getNextCounter(); - AtomicInteger completeCounter = creator.getCompleteCounter(); - AtomicInteger errorCounter = creator.getErrorCounter(); + CreatObserverAdapter creator = new CreatObserverAdapter(); ManyToManyMethodHandler handler = new ManyToManyMethodHandler<>(requestFlux -> requestFlux.map(r -> r + "0")); - CompletableFuture> future = handler.invoke(new Object[]{responseObserver}); + CompletableFuture> future = handler.invoke(new Object[]{creator.getResponseObserver()}); StreamObserver requestObserver = future.get(); for (int i = 0; i < 10; i++) { requestObserver.onNext(String.valueOf(i)); } requestObserver.onCompleted(); - Assertions.assertEquals(10, nextCounter.get()); - Assertions.assertEquals(0, errorCounter.get()); - Assertions.assertEquals(1, completeCounter.get()); + Assertions.assertEquals(10, creator.getNextCounter().get()); + Assertions.assertEquals(0, creator.getErrorCounter().get()); + Assertions.assertEquals(1, creator.getCompleteCounter().get()); } } diff --git a/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/ManyToOneMethodHandlerTest.java b/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/ManyToOneMethodHandlerTest.java index 8d5c3423d070..edeae2393ec1 100644 --- a/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/ManyToOneMethodHandlerTest.java +++ b/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/ManyToOneMethodHandlerTest.java @@ -24,15 +24,12 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.mockito.Mockito; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.atomic.AtomicInteger; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.doAnswer; /** * Unit test for ManyToOneMethodHandler @@ -40,17 +37,12 @@ public final class ManyToOneMethodHandlerTest { private StreamObserver requestObserver; - private AtomicInteger nextCounter; - private AtomicInteger completeCounter; - private AtomicInteger errorCounter; + private CreatObserverAdapter creator; + @BeforeEach void init() throws ExecutionException, InterruptedException { - creatObserverAdapter creator=new creatObserverAdapter(); - ServerCallToObserverAdapter responseObserver=creator.getResponseObserver(); - nextCounter = creator.getNextCounter(); - completeCounter = creator.getCompleteCounter(); - errorCounter = creator.getErrorCounter(); - + creator = new CreatObserverAdapter(); + ServerCallToObserverAdapter responseObserver = creator.getResponseObserver(); ManyToOneMethodHandler handler = new ManyToOneMethodHandler<>(requestFlux -> requestFlux.map(Integer::valueOf).reduce(Integer::sum).map(String::valueOf)); CompletableFuture> future = handler.invoke(new Object[]{responseObserver}); @@ -58,18 +50,18 @@ void init() throws ExecutionException, InterruptedException { } @Test - void testInvoker(){ + void testInvoker() { for (int i = 0; i < 10; i++) { requestObserver.onNext(String.valueOf(i)); } requestObserver.onCompleted(); - Assertions.assertEquals(1, nextCounter.get()); - Assertions.assertEquals(0, errorCounter.get()); - Assertions.assertEquals(1, completeCounter.get()); + Assertions.assertEquals(1, creator.getNextCounter().get()); + Assertions.assertEquals(0, creator.getErrorCounter().get()); + Assertions.assertEquals(1, creator.getCompleteCounter().get()); } @Test - void testError(){ + void testError() { for (int i = 0; i < 10; i++) { if (i == 6) { requestObserver.onError(new Throwable()); @@ -77,8 +69,8 @@ void testError(){ requestObserver.onNext(String.valueOf(i)); } requestObserver.onCompleted(); - Assertions.assertEquals(0, nextCounter.get()); - Assertions.assertEquals(1, errorCounter.get()); - Assertions.assertEquals(0, completeCounter.get()); + Assertions.assertEquals(0, creator.getNextCounter().get()); + Assertions.assertEquals(1, creator.getErrorCounter().get()); + Assertions.assertEquals(0, creator.getCompleteCounter().get()); } } diff --git a/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/OneToManyMethodHandlerTest.java b/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/OneToManyMethodHandlerTest.java index 45a493c735bf..8e0622a9a544 100644 --- a/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/OneToManyMethodHandlerTest.java +++ b/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/OneToManyMethodHandlerTest.java @@ -17,52 +17,41 @@ package org.apache.dubbo.reactive; -import org.apache.dubbo.common.stream.StreamObserver; import org.apache.dubbo.reactive.handler.OneToManyMethodHandler; import org.apache.dubbo.rpc.protocol.tri.observer.ServerCallToObserverAdapter; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.mockito.Mockito; import reactor.core.publisher.Flux; import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ExecutionException; import java.util.concurrent.atomic.AtomicInteger; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.doAnswer; /** * Unit test for OneToManyMethodHandler */ public final class OneToManyMethodHandlerTest { + private CreatObserverAdapter creator; - private ServerCallToObserverAdapter responseObserver; - private AtomicInteger nextCounter; - private AtomicInteger completeCounter; - private AtomicInteger errorCounter; @BeforeEach - void init(){ - creatObserverAdapter creator=new creatObserverAdapter(); - responseObserver=creator.getResponseObserver(); - nextCounter = creator.getNextCounter(); - completeCounter = creator.getCompleteCounter(); - errorCounter = creator.getErrorCounter(); + void init() { + creator = new CreatObserverAdapter(); } + @Test void testInvoke() { String request = "1,2,3,4,5,6,7"; OneToManyMethodHandler handler = new OneToManyMethodHandler<>(requestMono -> requestMono.flatMapMany(r -> Flux.fromArray(r.split(",")))); - CompletableFuture future = handler.invoke(new Object[]{request, responseObserver}); + CompletableFuture future = handler.invoke(new Object[]{request, creator.getResponseObserver()}); Assertions.assertTrue(future.isDone()); - Assertions.assertEquals(7, nextCounter.get()); - Assertions.assertEquals(0, errorCounter.get()); - Assertions.assertEquals(1, completeCounter.get()); + Assertions.assertEquals(7, creator.getNextCounter().get()); + Assertions.assertEquals(0, creator.getErrorCounter().get()); + Assertions.assertEquals(1, creator.getCompleteCounter().get()); } @Test @@ -78,10 +67,10 @@ void testError() { } } })); - CompletableFuture future = handler.invoke(new Object[]{request, responseObserver}); + CompletableFuture future = handler.invoke(new Object[]{request, creator.getResponseObserver()}); Assertions.assertTrue(future.isDone()); - Assertions.assertEquals(6, nextCounter.get()); - Assertions.assertEquals(1, errorCounter.get()); - Assertions.assertEquals(0, completeCounter.get()); + Assertions.assertEquals(6, creator.getNextCounter().get()); + Assertions.assertEquals(1, creator.getErrorCounter().get()); + Assertions.assertEquals(0, creator.getCompleteCounter().get()); } } From 9b502cb7a375ba875b2fad2cbae7671281e79aae Mon Sep 17 00:00:00 2001 From: gzhao9 <74684732+gzhao9@users.noreply.github.com> Date: Sun, 8 Oct 2023 13:36:36 -0400 Subject: [PATCH 3/3] Further optimization to reduce lines of code --- .../org/apache/dubbo/reactive/ManyToOneMethodHandlerTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/ManyToOneMethodHandlerTest.java b/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/ManyToOneMethodHandlerTest.java index edeae2393ec1..c4ea8e34b10a 100644 --- a/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/ManyToOneMethodHandlerTest.java +++ b/dubbo-plugin/dubbo-reactive/src/test/java/org/apache/dubbo/reactive/ManyToOneMethodHandlerTest.java @@ -42,10 +42,9 @@ public final class ManyToOneMethodHandlerTest { @BeforeEach void init() throws ExecutionException, InterruptedException { creator = new CreatObserverAdapter(); - ServerCallToObserverAdapter responseObserver = creator.getResponseObserver(); ManyToOneMethodHandler handler = new ManyToOneMethodHandler<>(requestFlux -> requestFlux.map(Integer::valueOf).reduce(Integer::sum).map(String::valueOf)); - CompletableFuture> future = handler.invoke(new Object[]{responseObserver}); + CompletableFuture> future = handler.invoke(new Object[]{creator.getResponseObserver()}); requestObserver = future.get(); }