@Override public void splitResponse( PublishResponse batchResponse, Collection<? extends BatchedRequestIssuer<PublishResponse>> batch) { int batchMessageIndex = 0; for (BatchedRequestIssuer<PublishResponse> responder : batch) { List<String> subresponseElements = new ArrayList<>(); long subresponseCount = responder.getMessageCount(); for (int i = 0; i < subresponseCount; i++) { subresponseElements.add(batchResponse.getMessageIds(batchMessageIndex)); batchMessageIndex += 1; } PublishResponse response = PublishResponse.newBuilder().addAllMessageIds(subresponseElements).build(); responder.setResponse(response); } }
@Test @SuppressWarnings("all") public void publishTest() { String messageIdsElement = "messageIdsElement-744837059"; List<String> messageIds = Arrays.asList(messageIdsElement); PublishResponse expectedResponse = PublishResponse.newBuilder().addAllMessageIds(messageIds).build(); mockPublisher.addResponse(expectedResponse); ProjectTopicName topic = ProjectTopicName.of("[PROJECT]", "[TOPIC]"); ByteString data = ByteString.copyFromUtf8("-86"); PubsubMessage messagesElement = PubsubMessage.newBuilder().setData(data).build(); List<PubsubMessage> messages = Arrays.asList(messagesElement); PublishResponse actualResponse = client.publish(topic, messages); Assert.assertEquals(expectedResponse, actualResponse); List<GeneratedMessageV3> actualRequests = mockPublisher.getRequests(); Assert.assertEquals(1, actualRequests.size()); PublishRequest actualRequest = (PublishRequest) actualRequests.get(0); Assert.assertEquals(topic, ProjectTopicName.parse(actualRequest.getTopic())); Assert.assertEquals(messages, actualRequest.getMessagesList()); Assert.assertTrue( channelProvider.isHeaderSent( ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), GaxGrpcProperties.getDefaultApiClientHeaderPattern())); }
.build(); final PublishResponse response = PublishResponse.newBuilder().addAllMessageIds(ImmutableList.of(MESSAGE_ID)).build();