diff --git a/google-cloud-pubsub/pom.xml b/google-cloud-pubsub/pom.xml index 4ce3d92ddb7f..68c7e57e3c0a 100644 --- a/google-cloud-pubsub/pom.xml +++ b/google-cloud-pubsub/pom.xml @@ -72,12 +72,6 @@ 3.4 test - - org.mockito - mockito-all - 1.9.5 - test - com.google.truth truth diff --git a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/spi/v1/FakePublisherServiceImpl.java b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/spi/v1/FakePublisherServiceImpl.java index 162898fa7c07..01f3dd58846c 100644 --- a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/spi/v1/FakePublisherServiceImpl.java +++ b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/spi/v1/FakePublisherServiceImpl.java @@ -21,6 +21,8 @@ import com.google.pubsub.v1.PublishResponse; import com.google.pubsub.v1.PublisherGrpc.PublisherImplBase; import io.grpc.stub.StreamObserver; +import java.util.ArrayList; +import java.util.List; import java.util.concurrent.LinkedBlockingQueue; /** @@ -29,6 +31,7 @@ */ class FakePublisherServiceImpl extends PublisherImplBase { + private final LinkedBlockingQueue requests = new LinkedBlockingQueue<>(); private final LinkedBlockingQueue publishResponses = new LinkedBlockingQueue<>(); /** Class used to save the state of a possible response. */ @@ -69,6 +72,7 @@ public String toString() { @Override public void publish(PublishRequest request, StreamObserver responseObserver) { + requests.add(request); Response response; try { response = publishResponses.take(); @@ -98,7 +102,7 @@ public FakePublisherServiceImpl addPublishError(Throwable error) { return this; } - public void reset() { - publishResponses.clear(); + public List getCapturedRequests() { + return new ArrayList(requests); } } diff --git a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/spi/v1/PublisherImplTest.java b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/spi/v1/PublisherImplTest.java index 8a96e8823928..9b0e961cda6b 100644 --- a/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/spi/v1/PublisherImplTest.java +++ b/google-cloud-pubsub/src/test/java/com/google/cloud/pubsub/spi/v1/PublisherImplTest.java @@ -18,21 +18,19 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import static org.mockito.Mockito.atLeast; -import static org.mockito.Mockito.times; import com.google.api.gax.bundling.BundlingSettings; +import com.google.api.gax.core.ApiFuture; import com.google.api.gax.core.FlowControlSettings; import com.google.api.gax.core.FlowController.LimitExceededBehavior; -import com.google.api.gax.core.ApiFuture; import com.google.api.gax.grpc.ChannelProvider; import com.google.api.gax.grpc.ExecutorProvider; import com.google.api.gax.grpc.FixedExecutorProvider; import com.google.api.gax.grpc.InstantiatingExecutorProvider; import com.google.cloud.pubsub.spi.v1.Publisher.Builder; import com.google.protobuf.ByteString; -import com.google.pubsub.v1.PublishRequest; import com.google.pubsub.v1.PublishResponse; import com.google.pubsub.v1.PubsubMessage; import com.google.pubsub.v1.TopicName; @@ -42,7 +40,6 @@ import io.grpc.inprocess.InProcessChannelBuilder; import io.grpc.inprocess.InProcessServerBuilder; import io.grpc.internal.ServerImpl; -import io.grpc.stub.StreamObserver; import java.util.concurrent.ExecutionException; import java.util.concurrent.Executor; import org.joda.time.Duration; @@ -51,10 +48,6 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; -import org.mockito.ArgumentCaptor; -import org.mockito.Captor; -import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; @RunWith(JUnit4.class) public class PublisherImplTest { @@ -87,8 +80,6 @@ public ManagedChannel getChannel(Executor executor) { } }; - @Captor private ArgumentCaptor requestCaptor; - private FakeScheduledExecutorService fakeExecutor; private FakeCredentials testCredentials; @@ -101,16 +92,13 @@ class FakeException extends Exception {} @Before public void setUp() throws Exception { - testPublisherServiceImpl = Mockito.spy(new FakePublisherServiceImpl()); + testPublisherServiceImpl = new FakePublisherServiceImpl(); InProcessServerBuilder serverBuilder = InProcessServerBuilder.forName("test-server"); serverBuilder.addService(testPublisherServiceImpl); testServer = serverBuilder.build(); testServer.start(); - MockitoAnnotations.initMocks(this); - testPublisherServiceImpl.reset(); - Mockito.reset(testPublisherServiceImpl); fakeExecutor = new FakeScheduledExecutorService(); } @@ -146,9 +134,7 @@ public void testPublishByDuration() throws Exception { assertEquals("1", publishFuture1.get()); assertEquals("2", publishFuture2.get()); - Mockito.verify(testPublisherServiceImpl) - .publish(requestCaptor.capture(), Mockito.>any()); - assertEquals(2, requestCaptor.getValue().getMessagesCount()); + assertEquals(2, testPublisherServiceImpl.getCapturedRequests().get(0).getMessagesCount()); publisher.shutdown(); } @@ -185,10 +171,8 @@ public void testPublishByNumBundledMessages() throws Exception { assertEquals("3", publishFuture3.get()); assertEquals("4", publishFuture4.get()); - Mockito.verify(testPublisherServiceImpl, times(2)) - .publish(requestCaptor.capture(), Mockito.>any()); - assertEquals(2, requestCaptor.getAllValues().get(0).getMessagesCount()); - assertEquals(2, requestCaptor.getAllValues().get(1).getMessagesCount()); + assertEquals(2, testPublisherServiceImpl.getCapturedRequests().get(0).getMessagesCount()); + assertEquals(2, testPublisherServiceImpl.getCapturedRequests().get(1).getMessagesCount()); publisher.shutdown(); } @@ -222,8 +206,7 @@ public void testSinglePublishByNumBytes() throws Exception { assertEquals("3", publishFuture3.get()); assertEquals("4", publishFuture4.get()); - Mockito.verify(testPublisherServiceImpl, times(2)) - .publish(requestCaptor.capture(), Mockito.>any()); + assertEquals(2, testPublisherServiceImpl.getCapturedRequests().size()); publisher.shutdown(); } @@ -264,10 +247,8 @@ public void testPublishMixedSizeAndDuration() throws Exception { assertEquals("3", publishFuture3.get()); - Mockito.verify(testPublisherServiceImpl, times(2)) - .publish(requestCaptor.capture(), Mockito.>any()); - assertEquals(2, requestCaptor.getAllValues().get(0).getMessagesCount()); - assertEquals(1, requestCaptor.getAllValues().get(1).getMessagesCount()); + assertEquals(2, testPublisherServiceImpl.getCapturedRequests().get(0).getMessagesCount()); + assertEquals(1, testPublisherServiceImpl.getCapturedRequests().get(1).getMessagesCount()); publisher.shutdown(); } @@ -296,8 +277,7 @@ public void testPublishFailureRetries() throws Exception { assertEquals("1", publishFuture1.get()); - Mockito.verify(testPublisherServiceImpl, times(2)) - .publish(Mockito.any(), Mockito.>any()); + assertEquals(2, testPublisherServiceImpl.getCapturedRequests().size()); publisher.shutdown(); } @@ -331,8 +311,7 @@ public void testPublishFailureRetries_exceededsRetryDuration() throws Exception throw new IllegalStateException("unexpected exception", e); } } finally { - Mockito.verify(testPublisherServiceImpl, atLeast(10)) - .publish(Mockito.any(), Mockito.>any()); + assertTrue(testPublisherServiceImpl.getCapturedRequests().size() >= 10); publisher.shutdown(); } } @@ -361,8 +340,7 @@ public void testPublishFailureRetries_nonRetryableFailsImmediately() throws Exce try { publishFuture1.get(); } finally { - Mockito.verify(testPublisherServiceImpl) - .publish(Mockito.any(), Mockito.>any()); + assertTrue(testPublisherServiceImpl.getCapturedRequests().size() >= 1); publisher.shutdown(); } }