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.api.servicecontrol.v2; 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.api.servicecontrol.v2.stub.HttpJsonServiceControllerStub; 29 import com.google.rpc.Status; 30 import com.google.rpc.context.AttributeContext; 31 import java.io.IOException; 32 import java.util.ArrayList; 33 import java.util.HashMap; 34 import java.util.List; 35 import javax.annotation.Generated; 36 import org.junit.After; 37 import org.junit.AfterClass; 38 import org.junit.Assert; 39 import org.junit.Before; 40 import org.junit.BeforeClass; 41 import org.junit.Test; 42 43 @Generated("by gapic-generator-java") 44 public class ServiceControllerClientHttpJsonTest { 45 private static MockHttpService mockService; 46 private static ServiceControllerClient client; 47 48 @BeforeClass startStaticServer()49 public static void startStaticServer() throws IOException { 50 mockService = 51 new MockHttpService( 52 HttpJsonServiceControllerStub.getMethodDescriptors(), 53 ServiceControllerSettings.getDefaultEndpoint()); 54 ServiceControllerSettings settings = 55 ServiceControllerSettings.newHttpJsonBuilder() 56 .setTransportChannelProvider( 57 ServiceControllerSettings.defaultHttpJsonTransportProviderBuilder() 58 .setHttpTransport(mockService) 59 .build()) 60 .setCredentialsProvider(NoCredentialsProvider.create()) 61 .build(); 62 client = ServiceControllerClient.create(settings); 63 } 64 65 @AfterClass stopServer()66 public static void stopServer() { 67 client.close(); 68 } 69 70 @Before setUp()71 public void setUp() {} 72 73 @After tearDown()74 public void tearDown() throws Exception { 75 mockService.reset(); 76 } 77 78 @Test checkTest()79 public void checkTest() throws Exception { 80 CheckResponse expectedResponse = 81 CheckResponse.newBuilder() 82 .setStatus(Status.newBuilder().build()) 83 .putAllHeaders(new HashMap<String, String>()) 84 .build(); 85 mockService.addResponse(expectedResponse); 86 87 CheckRequest request = 88 CheckRequest.newBuilder() 89 .setServiceName("serviceName-4234") 90 .setServiceConfigId("serviceConfigId650537426") 91 .setAttributes(AttributeContext.newBuilder().build()) 92 .addAllResources(new ArrayList<ResourceInfo>()) 93 .setFlags("flags97513095") 94 .build(); 95 96 CheckResponse actualResponse = client.check(request); 97 Assert.assertEquals(expectedResponse, actualResponse); 98 99 List<String> actualRequests = mockService.getRequestPaths(); 100 Assert.assertEquals(1, actualRequests.size()); 101 102 String apiClientHeaderKey = 103 mockService 104 .getRequestHeaders() 105 .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) 106 .iterator() 107 .next(); 108 Assert.assertTrue( 109 GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() 110 .matcher(apiClientHeaderKey) 111 .matches()); 112 } 113 114 @Test checkExceptionTest()115 public void checkExceptionTest() throws Exception { 116 ApiException exception = 117 ApiExceptionFactory.createException( 118 new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); 119 mockService.addException(exception); 120 121 try { 122 CheckRequest request = 123 CheckRequest.newBuilder() 124 .setServiceName("serviceName-4234") 125 .setServiceConfigId("serviceConfigId650537426") 126 .setAttributes(AttributeContext.newBuilder().build()) 127 .addAllResources(new ArrayList<ResourceInfo>()) 128 .setFlags("flags97513095") 129 .build(); 130 client.check(request); 131 Assert.fail("No exception raised"); 132 } catch (InvalidArgumentException e) { 133 // Expected exception. 134 } 135 } 136 137 @Test reportTest()138 public void reportTest() throws Exception { 139 ReportResponse expectedResponse = ReportResponse.newBuilder().build(); 140 mockService.addResponse(expectedResponse); 141 142 ReportRequest request = 143 ReportRequest.newBuilder() 144 .setServiceName("serviceName-4234") 145 .setServiceConfigId("serviceConfigId650537426") 146 .addAllOperations(new ArrayList<AttributeContext>()) 147 .build(); 148 149 ReportResponse actualResponse = client.report(request); 150 Assert.assertEquals(expectedResponse, actualResponse); 151 152 List<String> actualRequests = mockService.getRequestPaths(); 153 Assert.assertEquals(1, actualRequests.size()); 154 155 String apiClientHeaderKey = 156 mockService 157 .getRequestHeaders() 158 .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey()) 159 .iterator() 160 .next(); 161 Assert.assertTrue( 162 GaxHttpJsonProperties.getDefaultApiClientHeaderPattern() 163 .matcher(apiClientHeaderKey) 164 .matches()); 165 } 166 167 @Test reportExceptionTest()168 public void reportExceptionTest() throws Exception { 169 ApiException exception = 170 ApiExceptionFactory.createException( 171 new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false); 172 mockService.addException(exception); 173 174 try { 175 ReportRequest request = 176 ReportRequest.newBuilder() 177 .setServiceName("serviceName-4234") 178 .setServiceConfigId("serviceConfigId650537426") 179 .addAllOperations(new ArrayList<AttributeContext>()) 180 .build(); 181 client.report(request); 182 Assert.fail("No exception raised"); 183 } catch (InvalidArgumentException e) { 184 // Expected exception. 185 } 186 } 187 } 188