• 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.api.servicecontrol.v1;
18 
19 import com.google.api.gax.core.NoCredentialsProvider;
20 import com.google.api.gax.grpc.GaxGrpcProperties;
21 import com.google.api.gax.grpc.testing.LocalChannelProvider;
22 import com.google.api.gax.grpc.testing.MockGrpcService;
23 import com.google.api.gax.grpc.testing.MockServiceHelper;
24 import com.google.api.gax.rpc.ApiClientHeaderProvider;
25 import com.google.api.gax.rpc.InvalidArgumentException;
26 import com.google.protobuf.AbstractMessage;
27 import io.grpc.StatusRuntimeException;
28 import java.io.IOException;
29 import java.util.ArrayList;
30 import java.util.Arrays;
31 import java.util.List;
32 import java.util.UUID;
33 import javax.annotation.Generated;
34 import org.junit.After;
35 import org.junit.AfterClass;
36 import org.junit.Assert;
37 import org.junit.Before;
38 import org.junit.BeforeClass;
39 import org.junit.Test;
40 
41 @Generated("by gapic-generator-java")
42 public class ServiceControllerClientTest {
43   private static MockServiceController mockServiceController;
44   private static MockServiceHelper mockServiceHelper;
45   private LocalChannelProvider channelProvider;
46   private ServiceControllerClient client;
47 
48   @BeforeClass
startStaticServer()49   public static void startStaticServer() {
50     mockServiceController = new MockServiceController();
51     mockServiceHelper =
52         new MockServiceHelper(
53             UUID.randomUUID().toString(), Arrays.<MockGrpcService>asList(mockServiceController));
54     mockServiceHelper.start();
55   }
56 
57   @AfterClass
stopServer()58   public static void stopServer() {
59     mockServiceHelper.stop();
60   }
61 
62   @Before
setUp()63   public void setUp() throws IOException {
64     mockServiceHelper.reset();
65     channelProvider = mockServiceHelper.createChannelProvider();
66     ServiceControllerSettings settings =
67         ServiceControllerSettings.newBuilder()
68             .setTransportChannelProvider(channelProvider)
69             .setCredentialsProvider(NoCredentialsProvider.create())
70             .build();
71     client = ServiceControllerClient.create(settings);
72   }
73 
74   @After
tearDown()75   public void tearDown() throws Exception {
76     client.close();
77   }
78 
79   @Test
checkTest()80   public void checkTest() throws Exception {
81     CheckResponse expectedResponse =
82         CheckResponse.newBuilder()
83             .setOperationId("operationId129704162")
84             .addAllCheckErrors(new ArrayList<CheckError>())
85             .setServiceConfigId("serviceConfigId650537426")
86             .setServiceRolloutId("serviceRolloutId47544183")
87             .setCheckInfo(CheckResponse.CheckInfo.newBuilder().build())
88             .build();
89     mockServiceController.addResponse(expectedResponse);
90 
91     CheckRequest request =
92         CheckRequest.newBuilder()
93             .setServiceName("serviceName-1928572192")
94             .setOperation(Operation.newBuilder().build())
95             .setServiceConfigId("serviceConfigId650537426")
96             .build();
97 
98     CheckResponse actualResponse = client.check(request);
99     Assert.assertEquals(expectedResponse, actualResponse);
100 
101     List<AbstractMessage> actualRequests = mockServiceController.getRequests();
102     Assert.assertEquals(1, actualRequests.size());
103     CheckRequest actualRequest = ((CheckRequest) actualRequests.get(0));
104 
105     Assert.assertEquals(request.getServiceName(), actualRequest.getServiceName());
106     Assert.assertEquals(request.getOperation(), actualRequest.getOperation());
107     Assert.assertEquals(request.getServiceConfigId(), actualRequest.getServiceConfigId());
108     Assert.assertTrue(
109         channelProvider.isHeaderSent(
110             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
111             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
112   }
113 
114   @Test
checkExceptionTest()115   public void checkExceptionTest() throws Exception {
116     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
117     mockServiceController.addException(exception);
118 
119     try {
120       CheckRequest request =
121           CheckRequest.newBuilder()
122               .setServiceName("serviceName-1928572192")
123               .setOperation(Operation.newBuilder().build())
124               .setServiceConfigId("serviceConfigId650537426")
125               .build();
126       client.check(request);
127       Assert.fail("No exception raised");
128     } catch (InvalidArgumentException e) {
129       // Expected exception.
130     }
131   }
132 
133   @Test
reportTest()134   public void reportTest() throws Exception {
135     ReportResponse expectedResponse =
136         ReportResponse.newBuilder()
137             .addAllReportErrors(new ArrayList<ReportResponse.ReportError>())
138             .setServiceConfigId("serviceConfigId650537426")
139             .setServiceRolloutId("serviceRolloutId47544183")
140             .build();
141     mockServiceController.addResponse(expectedResponse);
142 
143     ReportRequest request =
144         ReportRequest.newBuilder()
145             .setServiceName("serviceName-1928572192")
146             .addAllOperations(new ArrayList<Operation>())
147             .setServiceConfigId("serviceConfigId650537426")
148             .build();
149 
150     ReportResponse actualResponse = client.report(request);
151     Assert.assertEquals(expectedResponse, actualResponse);
152 
153     List<AbstractMessage> actualRequests = mockServiceController.getRequests();
154     Assert.assertEquals(1, actualRequests.size());
155     ReportRequest actualRequest = ((ReportRequest) actualRequests.get(0));
156 
157     Assert.assertEquals(request.getServiceName(), actualRequest.getServiceName());
158     Assert.assertEquals(request.getOperationsList(), actualRequest.getOperationsList());
159     Assert.assertEquals(request.getServiceConfigId(), actualRequest.getServiceConfigId());
160     Assert.assertTrue(
161         channelProvider.isHeaderSent(
162             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
163             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
164   }
165 
166   @Test
reportExceptionTest()167   public void reportExceptionTest() throws Exception {
168     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
169     mockServiceController.addException(exception);
170 
171     try {
172       ReportRequest request =
173           ReportRequest.newBuilder()
174               .setServiceName("serviceName-1928572192")
175               .addAllOperations(new ArrayList<Operation>())
176               .setServiceConfigId("serviceConfigId650537426")
177               .build();
178       client.report(request);
179       Assert.fail("No exception raised");
180     } catch (InvalidArgumentException e) {
181       // Expected exception.
182     }
183   }
184 }
185