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