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.assuredworkloads.v1beta1; 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.InvalidArgumentException; 26 import com.google.api.gax.rpc.StatusCode; 27 import com.google.api.gax.rpc.testing.FakeStatusCode; 28 import com.google.cloud.assuredworkloads.v1beta1.stub.HttpJsonAssuredWorkloadsServiceStub; 29 import com.google.longrunning.Operation; 30 import com.google.protobuf.Any; 31 import com.google.protobuf.Empty; 32 import com.google.protobuf.Timestamp; 33 import java.io.IOException; 34 import java.util.ArrayList; 35 import java.util.HashMap; 36 import java.util.List; 37 import java.util.concurrent.ExecutionException; 38 import javax.annotation.Generated; 39 import org.junit.After; 40 import org.junit.AfterClass; 41 import org.junit.Assert; 42 import org.junit.Before; 43 import org.junit.BeforeClass; 44 import org.junit.Test; 45 46 @Generated("by gapic-generator-java") 47 public class AssuredWorkloadsServiceClientHttpJsonTest { 48 private static MockHttpService mockService; 49 private static AssuredWorkloadsServiceClient client; 50 51 @BeforeClass startStaticServer()52 public static void startStaticServer() throws IOException { 53 mockService = 54 new MockHttpService( 55 HttpJsonAssuredWorkloadsServiceStub.getMethodDescriptors(), 56 AssuredWorkloadsServiceSettings.getDefaultEndpoint()); 57 AssuredWorkloadsServiceSettings settings = 58 AssuredWorkloadsServiceSettings.newHttpJsonBuilder() 59 .setTransportChannelProvider( 60 AssuredWorkloadsServiceSettings.defaultHttpJsonTransportProviderBuilder() 61 .setHttpTransport(mockService) 62 .build()) 63 .setCredentialsProvider(NoCredentialsProvider.create()) 64 .build(); 65 client = AssuredWorkloadsServiceClient.create(settings); 66 } 67 68 @AfterClass stopServer()69 public static void stopServer() { 70 client.close(); 71 } 72 73 @Before setUp()74 public void setUp() {} 75 76 @After tearDown()77 public void tearDown() throws Exception { 78 mockService.reset(); 79 } 80 81 @Test createWorkloadTest()82 public void createWorkloadTest() throws Exception { 83 Workload expectedResponse = 84 Workload.newBuilder() 85 .setName(WorkloadName.of("[ORGANIZATION]", "[LOCATION]", "[WORKLOAD]").toString()) 86 .setDisplayName("displayName1714148973") 87 .addAllResources(new ArrayList<Workload.ResourceInfo>()) 88 .setCreateTime(Timestamp.newBuilder().build()) 89 .setBillingAccount("billingAccount708726578") 90 .setEtag("etag3123477") 91 .putAllLabels(new HashMap<String, String>()) 92 .setProvisionedResourcesParent("provisionedResourcesParent1733249115") 93 .setKmsSettings(Workload.KMSSettings.newBuilder().build()) 94 .addAllResourceSettings(new ArrayList<Workload.ResourceSettings>()) 95 .setEnableSovereignControls(true) 96 .setSaaEnrollmentResponse(Workload.SaaEnrollmentResponse.newBuilder().build()) 97 .addAllCompliantButDisallowedServices(new ArrayList<String>()) 98 .build(); 99 Operation resultOperation = 100 Operation.newBuilder() 101 .setName("createWorkloadTest") 102 .setDone(true) 103 .setResponse(Any.pack(expectedResponse)) 104 .build(); 105 mockService.addResponse(resultOperation); 106 107 LocationName parent = LocationName.of("[ORGANIZATION]", "[LOCATION]"); 108 Workload workload = Workload.newBuilder().build(); 109 110 Workload actualResponse = client.createWorkloadAsync(parent, workload).get(); 111 Assert.assertEquals(expectedResponse, actualResponse); 112 113 List<String> actualRequests = mockService.getRequestPaths(); 114 Assert.assertEquals(1, actualRequests.size()); 115 116 String apiClientHeaderKey = 117 mockService 118 .getRequestHeaders() 119 .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) 120 .iterator() 121 .next(); 122 Assert.assertTrue( 123 GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() 124 .matcher(apiClientHeaderKey) 125 .matches()); 126 } 127 128 @Test createWorkloadExceptionTest()129 public void createWorkloadExceptionTest() throws Exception { 130 ApiException exception = 131 ApiExceptionFactory.createException( 132 new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); 133 mockService.addException(exception); 134 135 try { 136 LocationName parent = LocationName.of("[ORGANIZATION]", "[LOCATION]"); 137 Workload workload = Workload.newBuilder().build(); 138 client.createWorkloadAsync(parent, workload).get(); 139 Assert.fail("No exception raised"); 140 } catch (ExecutionException e) { 141 } 142 } 143 144 @Test createWorkloadTest2()145 public void createWorkloadTest2() throws Exception { 146 Workload expectedResponse = 147 Workload.newBuilder() 148 .setName(WorkloadName.of("[ORGANIZATION]", "[LOCATION]", "[WORKLOAD]").toString()) 149 .setDisplayName("displayName1714148973") 150 .addAllResources(new ArrayList<Workload.ResourceInfo>()) 151 .setCreateTime(Timestamp.newBuilder().build()) 152 .setBillingAccount("billingAccount708726578") 153 .setEtag("etag3123477") 154 .putAllLabels(new HashMap<String, String>()) 155 .setProvisionedResourcesParent("provisionedResourcesParent1733249115") 156 .setKmsSettings(Workload.KMSSettings.newBuilder().build()) 157 .addAllResourceSettings(new ArrayList<Workload.ResourceSettings>()) 158 .setEnableSovereignControls(true) 159 .setSaaEnrollmentResponse(Workload.SaaEnrollmentResponse.newBuilder().build()) 160 .addAllCompliantButDisallowedServices(new ArrayList<String>()) 161 .build(); 162 Operation resultOperation = 163 Operation.newBuilder() 164 .setName("createWorkloadTest") 165 .setDone(true) 166 .setResponse(Any.pack(expectedResponse)) 167 .build(); 168 mockService.addResponse(resultOperation); 169 170 String parent = "organizations/organization-9365/locations/location-9365"; 171 Workload workload = Workload.newBuilder().build(); 172 173 Workload actualResponse = client.createWorkloadAsync(parent, workload).get(); 174 Assert.assertEquals(expectedResponse, actualResponse); 175 176 List<String> actualRequests = mockService.getRequestPaths(); 177 Assert.assertEquals(1, actualRequests.size()); 178 179 String apiClientHeaderKey = 180 mockService 181 .getRequestHeaders() 182 .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) 183 .iterator() 184 .next(); 185 Assert.assertTrue( 186 GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() 187 .matcher(apiClientHeaderKey) 188 .matches()); 189 } 190 191 @Test createWorkloadExceptionTest2()192 public void createWorkloadExceptionTest2() throws Exception { 193 ApiException exception = 194 ApiExceptionFactory.createException( 195 new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); 196 mockService.addException(exception); 197 198 try { 199 String parent = "organizations/organization-9365/locations/location-9365"; 200 Workload workload = Workload.newBuilder().build(); 201 client.createWorkloadAsync(parent, workload).get(); 202 Assert.fail("No exception raised"); 203 } catch (ExecutionException e) { 204 } 205 } 206 207 @Test updateWorkloadUnsupportedMethodTest()208 public void updateWorkloadUnsupportedMethodTest() throws Exception { 209 // The updateWorkload() method is not supported in REST transport. 210 // This empty test is generated for technical reasons. 211 } 212 213 @Test restrictAllowedResourcesTest()214 public void restrictAllowedResourcesTest() throws Exception { 215 RestrictAllowedResourcesResponse expectedResponse = 216 RestrictAllowedResourcesResponse.newBuilder().build(); 217 mockService.addResponse(expectedResponse); 218 219 RestrictAllowedResourcesRequest request = 220 RestrictAllowedResourcesRequest.newBuilder() 221 .setName( 222 "organizations/organization-4962/locations/location-4962/workloads/workload-4962") 223 .build(); 224 225 RestrictAllowedResourcesResponse actualResponse = client.restrictAllowedResources(request); 226 Assert.assertEquals(expectedResponse, actualResponse); 227 228 List<String> actualRequests = mockService.getRequestPaths(); 229 Assert.assertEquals(1, actualRequests.size()); 230 231 String apiClientHeaderKey = 232 mockService 233 .getRequestHeaders() 234 .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) 235 .iterator() 236 .next(); 237 Assert.assertTrue( 238 GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() 239 .matcher(apiClientHeaderKey) 240 .matches()); 241 } 242 243 @Test restrictAllowedResourcesExceptionTest()244 public void restrictAllowedResourcesExceptionTest() throws Exception { 245 ApiException exception = 246 ApiExceptionFactory.createException( 247 new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); 248 mockService.addException(exception); 249 250 try { 251 RestrictAllowedResourcesRequest request = 252 RestrictAllowedResourcesRequest.newBuilder() 253 .setName( 254 "organizations/organization-4962/locations/location-4962/workloads/workload-4962") 255 .build(); 256 client.restrictAllowedResources(request); 257 Assert.fail("No exception raised"); 258 } catch (InvalidArgumentException e) { 259 // Expected exception. 260 } 261 } 262 263 @Test deleteWorkloadTest()264 public void deleteWorkloadTest() throws Exception { 265 Empty expectedResponse = Empty.newBuilder().build(); 266 mockService.addResponse(expectedResponse); 267 268 WorkloadName name = WorkloadName.of("[ORGANIZATION]", "[LOCATION]", "[WORKLOAD]"); 269 270 client.deleteWorkload(name); 271 272 List<String> actualRequests = mockService.getRequestPaths(); 273 Assert.assertEquals(1, actualRequests.size()); 274 275 String apiClientHeaderKey = 276 mockService 277 .getRequestHeaders() 278 .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) 279 .iterator() 280 .next(); 281 Assert.assertTrue( 282 GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() 283 .matcher(apiClientHeaderKey) 284 .matches()); 285 } 286 287 @Test deleteWorkloadExceptionTest()288 public void deleteWorkloadExceptionTest() throws Exception { 289 ApiException exception = 290 ApiExceptionFactory.createException( 291 new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); 292 mockService.addException(exception); 293 294 try { 295 WorkloadName name = WorkloadName.of("[ORGANIZATION]", "[LOCATION]", "[WORKLOAD]"); 296 client.deleteWorkload(name); 297 Assert.fail("No exception raised"); 298 } catch (InvalidArgumentException e) { 299 // Expected exception. 300 } 301 } 302 303 @Test deleteWorkloadTest2()304 public void deleteWorkloadTest2() throws Exception { 305 Empty expectedResponse = Empty.newBuilder().build(); 306 mockService.addResponse(expectedResponse); 307 308 String name = "organizations/organization-4962/locations/location-4962/workloads/workload-4962"; 309 310 client.deleteWorkload(name); 311 312 List<String> actualRequests = mockService.getRequestPaths(); 313 Assert.assertEquals(1, actualRequests.size()); 314 315 String apiClientHeaderKey = 316 mockService 317 .getRequestHeaders() 318 .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) 319 .iterator() 320 .next(); 321 Assert.assertTrue( 322 GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() 323 .matcher(apiClientHeaderKey) 324 .matches()); 325 } 326 327 @Test deleteWorkloadExceptionTest2()328 public void deleteWorkloadExceptionTest2() throws Exception { 329 ApiException exception = 330 ApiExceptionFactory.createException( 331 new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); 332 mockService.addException(exception); 333 334 try { 335 String name = 336 "organizations/organization-4962/locations/location-4962/workloads/workload-4962"; 337 client.deleteWorkload(name); 338 Assert.fail("No exception raised"); 339 } catch (InvalidArgumentException e) { 340 // Expected exception. 341 } 342 } 343 344 @Test getWorkloadUnsupportedMethodTest()345 public void getWorkloadUnsupportedMethodTest() throws Exception { 346 // The getWorkload() method is not supported in REST transport. 347 // This empty test is generated for technical reasons. 348 } 349 350 @Test analyzeWorkloadMoveUnsupportedMethodTest()351 public void analyzeWorkloadMoveUnsupportedMethodTest() throws Exception { 352 // The analyzeWorkloadMove() method is not supported in REST transport. 353 // This empty test is generated for technical reasons. 354 } 355 356 @Test listWorkloadsUnsupportedMethodTest()357 public void listWorkloadsUnsupportedMethodTest() throws Exception { 358 // The listWorkloads() method is not supported in REST transport. 359 // This empty test is generated for technical reasons. 360 } 361 } 362