1 /* 2 * Copyright 2022 Google LLC 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * https://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.google.cloud.monitoring.v3; 18 19 import static com.google.cloud.monitoring.v3.QueryServiceClient.QueryTimeSeriesPagedResponse; 20 21 import com.google.api.gax.core.NoCredentialsProvider; 22 import com.google.api.gax.grpc.GaxGrpcProperties; 23 import com.google.api.gax.grpc.testing.LocalChannelProvider; 24 import com.google.api.gax.grpc.testing.MockGrpcService; 25 import com.google.api.gax.grpc.testing.MockServiceHelper; 26 import com.google.api.gax.rpc.ApiClientHeaderProvider; 27 import com.google.api.gax.rpc.InvalidArgumentException; 28 import com.google.common.collect.Lists; 29 import com.google.monitoring.v3.QueryTimeSeriesRequest; 30 import com.google.monitoring.v3.QueryTimeSeriesResponse; 31 import com.google.monitoring.v3.TimeSeriesData; 32 import com.google.protobuf.AbstractMessage; 33 import io.grpc.StatusRuntimeException; 34 import java.io.IOException; 35 import java.util.Arrays; 36 import java.util.List; 37 import java.util.UUID; 38 import javax.annotation.Generated; 39 import org.junit.After; 40 import org.junit.AfterClass; 41 import org.junit.Assert; 42 import org.junit.Before; 43 import org.junit.BeforeClass; 44 import org.junit.Test; 45 46 @Generated("by gapic-generator-java") 47 public class QueryServiceClientTest { 48 private static MockQueryService mockQueryService; 49 private static MockServiceHelper mockServiceHelper; 50 private LocalChannelProvider channelProvider; 51 private QueryServiceClient client; 52 53 @BeforeClass startStaticServer()54 public static void startStaticServer() { 55 mockQueryService = new MockQueryService(); 56 mockServiceHelper = 57 new MockServiceHelper( 58 UUID.randomUUID().toString(), Arrays.<MockGrpcService>asList(mockQueryService)); 59 mockServiceHelper.start(); 60 } 61 62 @AfterClass stopServer()63 public static void stopServer() { 64 mockServiceHelper.stop(); 65 } 66 67 @Before setUp()68 public void setUp() throws IOException { 69 mockServiceHelper.reset(); 70 channelProvider = mockServiceHelper.createChannelProvider(); 71 QueryServiceSettings settings = 72 QueryServiceSettings.newBuilder() 73 .setTransportChannelProvider(channelProvider) 74 .setCredentialsProvider(NoCredentialsProvider.create()) 75 .build(); 76 client = QueryServiceClient.create(settings); 77 } 78 79 @After tearDown()80 public void tearDown() throws Exception { 81 client.close(); 82 } 83 84 @Test queryTimeSeriesTest()85 public void queryTimeSeriesTest() throws Exception { 86 TimeSeriesData responsesElement = TimeSeriesData.newBuilder().build(); 87 QueryTimeSeriesResponse expectedResponse = 88 QueryTimeSeriesResponse.newBuilder() 89 .setNextPageToken("") 90 .addAllTimeSeriesData(Arrays.asList(responsesElement)) 91 .build(); 92 mockQueryService.addResponse(expectedResponse); 93 94 QueryTimeSeriesRequest request = 95 QueryTimeSeriesRequest.newBuilder() 96 .setName("name3373707") 97 .setQuery("query107944136") 98 .setPageSize(883849137) 99 .setPageToken("pageToken873572522") 100 .build(); 101 102 QueryTimeSeriesPagedResponse pagedListResponse = client.queryTimeSeries(request); 103 104 List<TimeSeriesData> resources = Lists.newArrayList(pagedListResponse.iterateAll()); 105 106 Assert.assertEquals(1, resources.size()); 107 Assert.assertEquals(expectedResponse.getTimeSeriesDataList().get(0), resources.get(0)); 108 109 List<AbstractMessage> actualRequests = mockQueryService.getRequests(); 110 Assert.assertEquals(1, actualRequests.size()); 111 QueryTimeSeriesRequest actualRequest = ((QueryTimeSeriesRequest) actualRequests.get(0)); 112 113 Assert.assertEquals(request.getName(), actualRequest.getName()); 114 Assert.assertEquals(request.getQuery(), actualRequest.getQuery()); 115 Assert.assertEquals(request.getPageSize(), actualRequest.getPageSize()); 116 Assert.assertEquals(request.getPageToken(), actualRequest.getPageToken()); 117 Assert.assertTrue( 118 channelProvider.isHeaderSent( 119 ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), 120 GaxGrpcProperties.getDefaultApiClientHeaderPattern())); 121 } 122 123 @Test queryTimeSeriesExceptionTest()124 public void queryTimeSeriesExceptionTest() throws Exception { 125 StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); 126 mockQueryService.addException(exception); 127 128 try { 129 QueryTimeSeriesRequest request = 130 QueryTimeSeriesRequest.newBuilder() 131 .setName("name3373707") 132 .setQuery("query107944136") 133 .setPageSize(883849137) 134 .setPageToken("pageToken873572522") 135 .build(); 136 client.queryTimeSeries(request); 137 Assert.fail("No exception raised"); 138 } catch (InvalidArgumentException e) { 139 // Expected exception. 140 } 141 } 142 } 143