@Override public void writeLogEntries( WriteLogEntriesRequest request, StreamObserver<WriteLogEntriesResponse> responseObserver) { List<LogEntry> entries = logs.get(request.getLogName()); if (entries == null) { entries = new ArrayList<LogEntry>(); logs.put(request.getLogName(), entries); } entries.addAll(request.getEntriesList()); // Response is empty responseObserver.onNext(WriteLogEntriesResponse.newBuilder().build()); responseObserver.onCompleted(); }
@Test public void testWriteLogEntries() { WriteLogEntriesRequest request = WriteLogEntriesRequest.newBuilder() .addAllEntries( Iterables.transform( ImmutableList.of(LOG_ENTRY1, LOG_ENTRY2), LogEntry.toPbFunction(PROJECT))) .build(); WriteLogEntriesResponse response = WriteLogEntriesResponse.newBuilder().build(); EasyMock.expect(loggingRpcMock.write(request)).andReturn(ApiFutures.immediateFuture(response)); EasyMock.replay(rpcFactoryMock, loggingRpcMock); logging = options.getService(); logging.write(ImmutableList.of(LOG_ENTRY1, LOG_ENTRY2)); }
@Test public void testWriteLogEntriesWithSeverityFlushEnabled() { WriteLogEntriesRequest request = WriteLogEntriesRequest.newBuilder() .addAllEntries( Iterables.transform( ImmutableList.of(LOG_ENTRY1, LOG_ENTRY2), LogEntry.toPbFunction(PROJECT))) .build(); WriteLogEntriesResponse response = WriteLogEntriesResponse.newBuilder().build(); EasyMock.expect(loggingRpcMock.write(request)).andReturn(ApiFutures.immediateFuture(response)); EasyMock.replay(rpcFactoryMock, loggingRpcMock); logging = options.getService(); logging.setFlushSeverity(Severity.DEFAULT); logging.write(ImmutableList.of(LOG_ENTRY1, LOG_ENTRY2)); }
@Override public void splitResponse( WriteLogEntriesResponse batchResponse, Collection<? extends BatchedRequestIssuer<WriteLogEntriesResponse>> batch) { int batchMessageIndex = 0; for (BatchedRequestIssuer<WriteLogEntriesResponse> responder : batch) { WriteLogEntriesResponse response = WriteLogEntriesResponse.newBuilder().build(); responder.setResponse(response); } }
@Test public void testWriteLogEntriesAsyncWithOptions() { Map<String, String> labels = ImmutableMap.of("key", "value"); WriteLogEntriesRequest request = WriteLogEntriesRequest.newBuilder() .putAllLabels(labels) .setLogName(LOG_NAME_PB) .setResource(MONITORED_RESOURCE.toPb()) .addAllEntries( Iterables.transform( ImmutableList.of(LOG_ENTRY1, LOG_ENTRY2), LogEntry.toPbFunction(PROJECT))) .build(); WriteLogEntriesResponse response = WriteLogEntriesResponse.newBuilder().build(); EasyMock.expect(loggingRpcMock.write(request)).andReturn(ApiFutures.immediateFuture(response)); EasyMock.replay(rpcFactoryMock, loggingRpcMock); logging = options.getService(); logging.write( ImmutableList.of(LOG_ENTRY1, LOG_ENTRY2), WriteOption.logName(LOG_NAME), WriteOption.resource(MONITORED_RESOURCE), WriteOption.labels(labels)); logging.flush(); }
@Test @SuppressWarnings("all") public void writeLogEntriesTest() { WriteLogEntriesResponse expectedResponse = WriteLogEntriesResponse.newBuilder().build(); mockLoggingServiceV2.addResponse(expectedResponse); LogName logName = ProjectLogName.of("[PROJECT]", "[LOG]"); MonitoredResource resource = MonitoredResource.newBuilder().build(); Map<String, String> labels = new HashMap<>(); List<LogEntry> entries = new ArrayList<>(); WriteLogEntriesResponse actualResponse = client.writeLogEntries(logName, resource, labels, entries); Assert.assertEquals(expectedResponse, actualResponse); List<GeneratedMessageV3> actualRequests = mockLoggingServiceV2.getRequests(); Assert.assertEquals(1, actualRequests.size()); WriteLogEntriesRequest actualRequest = (WriteLogEntriesRequest) actualRequests.get(0); Assert.assertEquals(logName, LogNames.parse(actualRequest.getLogName())); Assert.assertEquals(resource, actualRequest.getResource()); Assert.assertEquals(labels, actualRequest.getLabelsMap()); Assert.assertEquals(entries, actualRequest.getEntriesList()); Assert.assertTrue( channelProvider.isHeaderSent( ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), GaxGrpcProperties.getDefaultApiClientHeaderPattern())); }
@Test public void testWriteLogEntriesWithOptions() { Map<String, String> labels = ImmutableMap.of("key", "value"); WriteLogEntriesRequest request = WriteLogEntriesRequest.newBuilder() .putAllLabels(labels) .setLogName(LOG_NAME_PB) .setResource(MONITORED_RESOURCE.toPb()) .addAllEntries( Iterables.transform( ImmutableList.of(LOG_ENTRY1, LOG_ENTRY2), LogEntry.toPbFunction(PROJECT))) .build(); WriteLogEntriesResponse response = WriteLogEntriesResponse.newBuilder().build(); EasyMock.expect(loggingRpcMock.write(request)).andReturn(ApiFutures.immediateFuture(response)); EasyMock.replay(rpcFactoryMock, loggingRpcMock); logging = options.getService(); logging.write( ImmutableList.of(LOG_ENTRY1, LOG_ENTRY2), WriteOption.logName(LOG_NAME), WriteOption.resource(MONITORED_RESOURCE), WriteOption.labels(labels)); }
@Test public void testWriteLogEntriesAsync() throws ExecutionException, InterruptedException { WriteLogEntriesRequest request = WriteLogEntriesRequest.newBuilder() .addAllEntries( Iterables.transform( ImmutableList.of(LOG_ENTRY1, LOG_ENTRY2), LogEntry.toPbFunction(PROJECT))) .build(); WriteLogEntriesResponse response = WriteLogEntriesResponse.newBuilder().build(); EasyMock.expect(loggingRpcMock.write(request)).andReturn(ApiFutures.immediateFuture(response)); EasyMock.replay(rpcFactoryMock, loggingRpcMock); logging = options.getService(); logging.write(ImmutableList.of(LOG_ENTRY1, LOG_ENTRY2)); logging.flush(); }
@Override public void splitResponse( WriteLogEntriesResponse batchResponse, Collection<? extends BatchedRequestIssuer<WriteLogEntriesResponse>> batch) { int batchMessageIndex = 0; for (BatchedRequestIssuer<WriteLogEntriesResponse> responder : batch) { WriteLogEntriesResponse response = WriteLogEntriesResponse.newBuilder().build(); responder.setResponse(response); } }