• 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.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