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.compute.v1; 18 19 import static com.google.cloud.compute.v1.RegionInstanceGroupsClient.ListInstancesPagedResponse; 20 import static com.google.cloud.compute.v1.RegionInstanceGroupsClient.ListPagedResponse; 21 22 import com.google.api.gax.core.NoCredentialsProvider; 23 import com.google.api.gax.httpjson.GaxHttpJsonProperties; 24 import com.google.api.gax.httpjson.testing.MockHttpService; 25 import com.google.api.gax.rpc.ApiClientHeaderProvider; 26 import com.google.api.gax.rpc.ApiException; 27 import com.google.api.gax.rpc.ApiExceptionFactory; 28 import com.google.api.gax.rpc.InvalidArgumentException; 29 import com.google.api.gax.rpc.StatusCode; 30 import com.google.api.gax.rpc.testing.FakeStatusCode; 31 import com.google.cloud.compute.v1.Operation.Status; 32 import com.google.cloud.compute.v1.stub.HttpJsonRegionInstanceGroupsStub; 33 import com.google.common.collect.Lists; 34 import java.io.IOException; 35 import java.util.ArrayList; 36 import java.util.Arrays; 37 import java.util.List; 38 import java.util.concurrent.ExecutionException; 39 import javax.annotation.Generated; 40 import org.junit.After; 41 import org.junit.AfterClass; 42 import org.junit.Assert; 43 import org.junit.Before; 44 import org.junit.BeforeClass; 45 import org.junit.Test; 46 47 @Generated("by gapic-generator-java") 48 public class RegionInstanceGroupsClientTest { 49 private static MockHttpService mockService; 50 private static RegionInstanceGroupsClient client; 51 52 @BeforeClass startStaticServer()53 public static void startStaticServer() throws IOException { 54 mockService = 55 new MockHttpService( 56 HttpJsonRegionInstanceGroupsStub.getMethodDescriptors(), 57 RegionInstanceGroupsSettings.getDefaultEndpoint()); 58 RegionInstanceGroupsSettings settings = 59 RegionInstanceGroupsSettings.newBuilder() 60 .setTransportChannelProvider( 61 RegionInstanceGroupsSettings.defaultHttpJsonTransportProviderBuilder() 62 .setHttpTransport(mockService) 63 .build()) 64 .setCredentialsProvider(NoCredentialsProvider.create()) 65 .build(); 66 client = RegionInstanceGroupsClient.create(settings); 67 } 68 69 @AfterClass stopServer()70 public static void stopServer() { 71 client.close(); 72 } 73 74 @Before setUp()75 public void setUp() {} 76 77 @After tearDown()78 public void tearDown() throws Exception { 79 mockService.reset(); 80 } 81 82 @Test getTest()83 public void getTest() throws Exception { 84 InstanceGroup expectedResponse = 85 InstanceGroup.newBuilder() 86 .setCreationTimestamp("creationTimestamp-370203401") 87 .setDescription("description-1724546052") 88 .setFingerprint("fingerprint-1375934236") 89 .setId(3355) 90 .setKind("kind3292052") 91 .setName("name3373707") 92 .addAllNamedPorts(new ArrayList<NamedPort>()) 93 .setNetwork("network1843485230") 94 .setRegion("region-934795532") 95 .setSelfLink("selfLink1191800166") 96 .setSize(3530753) 97 .setSubnetwork("subnetwork-1302785042") 98 .setZone("zone3744684") 99 .build(); 100 mockService.addResponse(expectedResponse); 101 102 String project = "project-6911"; 103 String region = "region-9622"; 104 String instanceGroup = "instanceGroup-9472"; 105 106 InstanceGroup actualResponse = client.get(project, region, instanceGroup); 107 Assert.assertEquals(expectedResponse, actualResponse); 108 109 List<String> actualRequests = mockService.getRequestPaths(); 110 Assert.assertEquals(1, actualRequests.size()); 111 112 String apiClientHeaderKey = 113 mockService 114 .getRequestHeaders() 115 .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) 116 .iterator() 117 .next(); 118 Assert.assertTrue( 119 GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() 120 .matcher(apiClientHeaderKey) 121 .matches()); 122 } 123 124 @Test getExceptionTest()125 public void getExceptionTest() throws Exception { 126 ApiException exception = 127 ApiExceptionFactory.createException( 128 new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); 129 mockService.addException(exception); 130 131 try { 132 String project = "project-6911"; 133 String region = "region-9622"; 134 String instanceGroup = "instanceGroup-9472"; 135 client.get(project, region, instanceGroup); 136 Assert.fail("No exception raised"); 137 } catch (InvalidArgumentException e) { 138 // Expected exception. 139 } 140 } 141 142 @Test listTest()143 public void listTest() throws Exception { 144 InstanceGroup responsesElement = InstanceGroup.newBuilder().build(); 145 RegionInstanceGroupList expectedResponse = 146 RegionInstanceGroupList.newBuilder() 147 .setNextPageToken("") 148 .addAllItems(Arrays.asList(responsesElement)) 149 .build(); 150 mockService.addResponse(expectedResponse); 151 152 String project = "project-6911"; 153 String region = "region-9622"; 154 155 ListPagedResponse pagedListResponse = client.list(project, region); 156 157 List<InstanceGroup> resources = Lists.newArrayList(pagedListResponse.iterateAll()); 158 159 Assert.assertEquals(1, resources.size()); 160 Assert.assertEquals(expectedResponse.getItemsList().get(0), resources.get(0)); 161 162 List<String> actualRequests = mockService.getRequestPaths(); 163 Assert.assertEquals(1, actualRequests.size()); 164 165 String apiClientHeaderKey = 166 mockService 167 .getRequestHeaders() 168 .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) 169 .iterator() 170 .next(); 171 Assert.assertTrue( 172 GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() 173 .matcher(apiClientHeaderKey) 174 .matches()); 175 } 176 177 @Test listExceptionTest()178 public void listExceptionTest() throws Exception { 179 ApiException exception = 180 ApiExceptionFactory.createException( 181 new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); 182 mockService.addException(exception); 183 184 try { 185 String project = "project-6911"; 186 String region = "region-9622"; 187 client.list(project, region); 188 Assert.fail("No exception raised"); 189 } catch (InvalidArgumentException e) { 190 // Expected exception. 191 } 192 } 193 194 @Test listInstancesTest()195 public void listInstancesTest() throws Exception { 196 InstanceWithNamedPorts responsesElement = InstanceWithNamedPorts.newBuilder().build(); 197 RegionInstanceGroupsListInstances expectedResponse = 198 RegionInstanceGroupsListInstances.newBuilder() 199 .setNextPageToken("") 200 .addAllItems(Arrays.asList(responsesElement)) 201 .build(); 202 mockService.addResponse(expectedResponse); 203 204 String project = "project-6911"; 205 String region = "region-9622"; 206 String instanceGroup = "instanceGroup-9472"; 207 RegionInstanceGroupsListInstancesRequest regionInstanceGroupsListInstancesRequestResource = 208 RegionInstanceGroupsListInstancesRequest.newBuilder().build(); 209 210 ListInstancesPagedResponse pagedListResponse = 211 client.listInstances( 212 project, region, instanceGroup, regionInstanceGroupsListInstancesRequestResource); 213 214 List<InstanceWithNamedPorts> resources = Lists.newArrayList(pagedListResponse.iterateAll()); 215 216 Assert.assertEquals(1, resources.size()); 217 Assert.assertEquals(expectedResponse.getItemsList().get(0), resources.get(0)); 218 219 List<String> actualRequests = mockService.getRequestPaths(); 220 Assert.assertEquals(1, actualRequests.size()); 221 222 String apiClientHeaderKey = 223 mockService 224 .getRequestHeaders() 225 .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) 226 .iterator() 227 .next(); 228 Assert.assertTrue( 229 GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() 230 .matcher(apiClientHeaderKey) 231 .matches()); 232 } 233 234 @Test listInstancesExceptionTest()235 public void listInstancesExceptionTest() throws Exception { 236 ApiException exception = 237 ApiExceptionFactory.createException( 238 new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); 239 mockService.addException(exception); 240 241 try { 242 String project = "project-6911"; 243 String region = "region-9622"; 244 String instanceGroup = "instanceGroup-9472"; 245 RegionInstanceGroupsListInstancesRequest regionInstanceGroupsListInstancesRequestResource = 246 RegionInstanceGroupsListInstancesRequest.newBuilder().build(); 247 client.listInstances( 248 project, region, instanceGroup, regionInstanceGroupsListInstancesRequestResource); 249 Assert.fail("No exception raised"); 250 } catch (InvalidArgumentException e) { 251 // Expected exception. 252 } 253 } 254 255 @Test setNamedPortsTest()256 public void setNamedPortsTest() throws Exception { 257 Operation expectedResponse = 258 Operation.newBuilder() 259 .setClientOperationId("clientOperationId-1230366697") 260 .setCreationTimestamp("creationTimestamp-370203401") 261 .setDescription("description-1724546052") 262 .setEndTime("endTime-1607243192") 263 .setError(Error.newBuilder().build()) 264 .setHttpErrorMessage("httpErrorMessage1577303431") 265 .setHttpErrorStatusCode(0) 266 .setId(3355) 267 .setInsertTime("insertTime966165798") 268 .setKind("kind3292052") 269 .setName("name3373707") 270 .setOperationGroupId("operationGroupId1716161683") 271 .setOperationType("operationType91999553") 272 .setProgress(-1001078227) 273 .setRegion("region-934795532") 274 .setSelfLink("selfLink1191800166") 275 .setStartTime("startTime-2129294769") 276 .setStatus(Status.DONE) 277 .setStatusMessage("statusMessage-958704715") 278 .setTargetId(-815576439) 279 .setTargetLink("targetLink486368555") 280 .setUser("user3599307") 281 .addAllWarnings(new ArrayList<Warnings>()) 282 .setZone("zone3744684") 283 .build(); 284 mockService.addResponse(expectedResponse); 285 286 String project = "project-6911"; 287 String region = "region-9622"; 288 String instanceGroup = "instanceGroup-9472"; 289 RegionInstanceGroupsSetNamedPortsRequest regionInstanceGroupsSetNamedPortsRequestResource = 290 RegionInstanceGroupsSetNamedPortsRequest.newBuilder().build(); 291 292 Operation actualResponse = 293 client 294 .setNamedPortsAsync( 295 project, region, instanceGroup, regionInstanceGroupsSetNamedPortsRequestResource) 296 .get(); 297 Assert.assertEquals(expectedResponse, actualResponse); 298 299 List<String> actualRequests = mockService.getRequestPaths(); 300 Assert.assertEquals(1, actualRequests.size()); 301 302 String apiClientHeaderKey = 303 mockService 304 .getRequestHeaders() 305 .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) 306 .iterator() 307 .next(); 308 Assert.assertTrue( 309 GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() 310 .matcher(apiClientHeaderKey) 311 .matches()); 312 } 313 314 @Test setNamedPortsExceptionTest()315 public void setNamedPortsExceptionTest() throws Exception { 316 ApiException exception = 317 ApiExceptionFactory.createException( 318 new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); 319 mockService.addException(exception); 320 321 try { 322 String project = "project-6911"; 323 String region = "region-9622"; 324 String instanceGroup = "instanceGroup-9472"; 325 RegionInstanceGroupsSetNamedPortsRequest regionInstanceGroupsSetNamedPortsRequestResource = 326 RegionInstanceGroupsSetNamedPortsRequest.newBuilder().build(); 327 client 328 .setNamedPortsAsync( 329 project, region, instanceGroup, regionInstanceGroupsSetNamedPortsRequestResource) 330 .get(); 331 Assert.fail("No exception raised"); 332 } catch (ExecutionException e) { 333 } 334 } 335 } 336