• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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