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