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 com.google.api.gax.core.NoCredentialsProvider; 20 import com.google.api.gax.httpjson.GaxHttpJsonProperties; 21 import com.google.api.gax.httpjson.testing.MockHttpService; 22 import com.google.api.gax.rpc.ApiClientHeaderProvider; 23 import com.google.api.gax.rpc.ApiException; 24 import com.google.api.gax.rpc.ApiExceptionFactory; 25 import com.google.api.gax.rpc.StatusCode; 26 import com.google.api.gax.rpc.testing.FakeStatusCode; 27 import com.google.cloud.compute.v1.Operation.Status; 28 import com.google.cloud.compute.v1.stub.HttpJsonRegionInstancesStub; 29 import java.io.IOException; 30 import java.util.ArrayList; 31 import java.util.List; 32 import java.util.concurrent.ExecutionException; 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 RegionInstancesClientTest { 43 private static MockHttpService mockService; 44 private static RegionInstancesClient client; 45 46 @BeforeClass startStaticServer()47 public static void startStaticServer() throws IOException { 48 mockService = 49 new MockHttpService( 50 HttpJsonRegionInstancesStub.getMethodDescriptors(), 51 RegionInstancesSettings.getDefaultEndpoint()); 52 RegionInstancesSettings settings = 53 RegionInstancesSettings.newBuilder() 54 .setTransportChannelProvider( 55 RegionInstancesSettings.defaultHttpJsonTransportProviderBuilder() 56 .setHttpTransport(mockService) 57 .build()) 58 .setCredentialsProvider(NoCredentialsProvider.create()) 59 .build(); 60 client = RegionInstancesClient.create(settings); 61 } 62 63 @AfterClass stopServer()64 public static void stopServer() { 65 client.close(); 66 } 67 68 @Before setUp()69 public void setUp() {} 70 71 @After tearDown()72 public void tearDown() throws Exception { 73 mockService.reset(); 74 } 75 76 @Test bulkInsertTest()77 public void bulkInsertTest() throws Exception { 78 Operation expectedResponse = 79 Operation.newBuilder() 80 .setClientOperationId("clientOperationId-1230366697") 81 .setCreationTimestamp("creationTimestamp-370203401") 82 .setDescription("description-1724546052") 83 .setEndTime("endTime-1607243192") 84 .setError(Error.newBuilder().build()) 85 .setHttpErrorMessage("httpErrorMessage1577303431") 86 .setHttpErrorStatusCode(0) 87 .setId(3355) 88 .setInsertTime("insertTime966165798") 89 .setKind("kind3292052") 90 .setName("name3373707") 91 .setOperationGroupId("operationGroupId1716161683") 92 .setOperationType("operationType91999553") 93 .setProgress(-1001078227) 94 .setRegion("region-934795532") 95 .setSelfLink("selfLink1191800166") 96 .setStartTime("startTime-2129294769") 97 .setStatus(Status.DONE) 98 .setStatusMessage("statusMessage-958704715") 99 .setTargetId(-815576439) 100 .setTargetLink("targetLink486368555") 101 .setUser("user3599307") 102 .addAllWarnings(new ArrayList<Warnings>()) 103 .setZone("zone3744684") 104 .build(); 105 mockService.addResponse(expectedResponse); 106 107 String project = "project-6911"; 108 String region = "region-9622"; 109 BulkInsertInstanceResource bulkInsertInstanceResourceResource = 110 BulkInsertInstanceResource.newBuilder().build(); 111 112 Operation actualResponse = 113 client.bulkInsertAsync(project, region, bulkInsertInstanceResourceResource).get(); 114 Assert.assertEquals(expectedResponse, actualResponse); 115 116 List<String> actualRequests = mockService.getRequestPaths(); 117 Assert.assertEquals(1, actualRequests.size()); 118 119 String apiClientHeaderKey = 120 mockService 121 .getRequestHeaders() 122 .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) 123 .iterator() 124 .next(); 125 Assert.assertTrue( 126 GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() 127 .matcher(apiClientHeaderKey) 128 .matches()); 129 } 130 131 @Test bulkInsertExceptionTest()132 public void bulkInsertExceptionTest() throws Exception { 133 ApiException exception = 134 ApiExceptionFactory.createException( 135 new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); 136 mockService.addException(exception); 137 138 try { 139 String project = "project-6911"; 140 String region = "region-9622"; 141 BulkInsertInstanceResource bulkInsertInstanceResourceResource = 142 BulkInsertInstanceResource.newBuilder().build(); 143 client.bulkInsertAsync(project, region, bulkInsertInstanceResourceResource).get(); 144 Assert.fail("No exception raised"); 145 } catch (ExecutionException e) { 146 } 147 } 148 } 149