• 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.dataflow.v1beta3;
18 
19 import com.google.api.gax.core.NoCredentialsProvider;
20 import com.google.api.gax.grpc.GaxGrpcProperties;
21 import com.google.api.gax.grpc.testing.LocalChannelProvider;
22 import com.google.api.gax.grpc.testing.MockGrpcService;
23 import com.google.api.gax.grpc.testing.MockServiceHelper;
24 import com.google.api.gax.rpc.ApiClientHeaderProvider;
25 import com.google.api.gax.rpc.InvalidArgumentException;
26 import com.google.protobuf.AbstractMessage;
27 import com.google.protobuf.Timestamp;
28 import com.google.rpc.Status;
29 import io.grpc.StatusRuntimeException;
30 import java.io.IOException;
31 import java.util.ArrayList;
32 import java.util.Arrays;
33 import java.util.HashMap;
34 import java.util.List;
35 import java.util.UUID;
36 import javax.annotation.Generated;
37 import org.junit.After;
38 import org.junit.AfterClass;
39 import org.junit.Assert;
40 import org.junit.Before;
41 import org.junit.BeforeClass;
42 import org.junit.Test;
43 
44 @Generated("by gapic-generator-java")
45 public class TemplatesServiceClientTest {
46   private static MockServiceHelper mockServiceHelper;
47   private static MockTemplatesService mockTemplatesService;
48   private LocalChannelProvider channelProvider;
49   private TemplatesServiceClient client;
50 
51   @BeforeClass
startStaticServer()52   public static void startStaticServer() {
53     mockTemplatesService = new MockTemplatesService();
54     mockServiceHelper =
55         new MockServiceHelper(
56             UUID.randomUUID().toString(), Arrays.<MockGrpcService>asList(mockTemplatesService));
57     mockServiceHelper.start();
58   }
59 
60   @AfterClass
stopServer()61   public static void stopServer() {
62     mockServiceHelper.stop();
63   }
64 
65   @Before
setUp()66   public void setUp() throws IOException {
67     mockServiceHelper.reset();
68     channelProvider = mockServiceHelper.createChannelProvider();
69     TemplatesServiceSettings settings =
70         TemplatesServiceSettings.newBuilder()
71             .setTransportChannelProvider(channelProvider)
72             .setCredentialsProvider(NoCredentialsProvider.create())
73             .build();
74     client = TemplatesServiceClient.create(settings);
75   }
76 
77   @After
tearDown()78   public void tearDown() throws Exception {
79     client.close();
80   }
81 
82   @Test
createJobFromTemplateTest()83   public void createJobFromTemplateTest() throws Exception {
84     Job expectedResponse =
85         Job.newBuilder()
86             .setId("id3355")
87             .setProjectId("projectId-894832108")
88             .setName("name3373707")
89             .setType(JobType.forNumber(0))
90             .setEnvironment(Environment.newBuilder().build())
91             .addAllSteps(new ArrayList<Step>())
92             .setStepsLocation("stepsLocation1335803900")
93             .setCurrentState(JobState.forNumber(0))
94             .setCurrentStateTime(Timestamp.newBuilder().build())
95             .setRequestedState(JobState.forNumber(0))
96             .setExecutionInfo(JobExecutionInfo.newBuilder().build())
97             .setCreateTime(Timestamp.newBuilder().build())
98             .setReplaceJobId("replaceJobId441554788")
99             .putAllTransformNameMapping(new HashMap<String, String>())
100             .setClientRequestId("clientRequestId848942207")
101             .setReplacedByJobId("replacedByJobId614115665")
102             .addAllTempFiles(new ArrayList<String>())
103             .putAllLabels(new HashMap<String, String>())
104             .setLocation("location1901043637")
105             .setPipelineDescription(PipelineDescription.newBuilder().build())
106             .addAllStageStates(new ArrayList<ExecutionStageState>())
107             .setJobMetadata(JobMetadata.newBuilder().build())
108             .setStartTime(Timestamp.newBuilder().build())
109             .setCreatedFromSnapshotId("createdFromSnapshotId851802705")
110             .setSatisfiesPzs(true)
111             .build();
112     mockTemplatesService.addResponse(expectedResponse);
113 
114     CreateJobFromTemplateRequest request =
115         CreateJobFromTemplateRequest.newBuilder()
116             .setProjectId("projectId-894832108")
117             .setJobName("jobName-1438096408")
118             .putAllParameters(new HashMap<String, String>())
119             .setEnvironment(RuntimeEnvironment.newBuilder().build())
120             .setLocation("location1901043637")
121             .build();
122 
123     Job actualResponse = client.createJobFromTemplate(request);
124     Assert.assertEquals(expectedResponse, actualResponse);
125 
126     List<AbstractMessage> actualRequests = mockTemplatesService.getRequests();
127     Assert.assertEquals(1, actualRequests.size());
128     CreateJobFromTemplateRequest actualRequest =
129         ((CreateJobFromTemplateRequest) actualRequests.get(0));
130 
131     Assert.assertEquals(request.getProjectId(), actualRequest.getProjectId());
132     Assert.assertEquals(request.getJobName(), actualRequest.getJobName());
133     Assert.assertEquals(request.getGcsPath(), actualRequest.getGcsPath());
134     Assert.assertEquals(request.getParametersMap(), actualRequest.getParametersMap());
135     Assert.assertEquals(request.getEnvironment(), actualRequest.getEnvironment());
136     Assert.assertEquals(request.getLocation(), actualRequest.getLocation());
137     Assert.assertTrue(
138         channelProvider.isHeaderSent(
139             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
140             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
141   }
142 
143   @Test
createJobFromTemplateExceptionTest()144   public void createJobFromTemplateExceptionTest() throws Exception {
145     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
146     mockTemplatesService.addException(exception);
147 
148     try {
149       CreateJobFromTemplateRequest request =
150           CreateJobFromTemplateRequest.newBuilder()
151               .setProjectId("projectId-894832108")
152               .setJobName("jobName-1438096408")
153               .putAllParameters(new HashMap<String, String>())
154               .setEnvironment(RuntimeEnvironment.newBuilder().build())
155               .setLocation("location1901043637")
156               .build();
157       client.createJobFromTemplate(request);
158       Assert.fail("No exception raised");
159     } catch (InvalidArgumentException e) {
160       // Expected exception.
161     }
162   }
163 
164   @Test
launchTemplateTest()165   public void launchTemplateTest() throws Exception {
166     LaunchTemplateResponse expectedResponse =
167         LaunchTemplateResponse.newBuilder().setJob(Job.newBuilder().build()).build();
168     mockTemplatesService.addResponse(expectedResponse);
169 
170     LaunchTemplateRequest request =
171         LaunchTemplateRequest.newBuilder()
172             .setProjectId("projectId-894832108")
173             .setValidateOnly(true)
174             .setLaunchParameters(LaunchTemplateParameters.newBuilder().build())
175             .setLocation("location1901043637")
176             .build();
177 
178     LaunchTemplateResponse actualResponse = client.launchTemplate(request);
179     Assert.assertEquals(expectedResponse, actualResponse);
180 
181     List<AbstractMessage> actualRequests = mockTemplatesService.getRequests();
182     Assert.assertEquals(1, actualRequests.size());
183     LaunchTemplateRequest actualRequest = ((LaunchTemplateRequest) actualRequests.get(0));
184 
185     Assert.assertEquals(request.getProjectId(), actualRequest.getProjectId());
186     Assert.assertEquals(request.getValidateOnly(), actualRequest.getValidateOnly());
187     Assert.assertEquals(request.getGcsPath(), actualRequest.getGcsPath());
188     Assert.assertEquals(request.getDynamicTemplate(), actualRequest.getDynamicTemplate());
189     Assert.assertEquals(request.getLaunchParameters(), actualRequest.getLaunchParameters());
190     Assert.assertEquals(request.getLocation(), actualRequest.getLocation());
191     Assert.assertTrue(
192         channelProvider.isHeaderSent(
193             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
194             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
195   }
196 
197   @Test
launchTemplateExceptionTest()198   public void launchTemplateExceptionTest() throws Exception {
199     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
200     mockTemplatesService.addException(exception);
201 
202     try {
203       LaunchTemplateRequest request =
204           LaunchTemplateRequest.newBuilder()
205               .setProjectId("projectId-894832108")
206               .setValidateOnly(true)
207               .setLaunchParameters(LaunchTemplateParameters.newBuilder().build())
208               .setLocation("location1901043637")
209               .build();
210       client.launchTemplate(request);
211       Assert.fail("No exception raised");
212     } catch (InvalidArgumentException e) {
213       // Expected exception.
214     }
215   }
216 
217   @Test
getTemplateTest()218   public void getTemplateTest() throws Exception {
219     GetTemplateResponse expectedResponse =
220         GetTemplateResponse.newBuilder()
221             .setStatus(Status.newBuilder().build())
222             .setMetadata(TemplateMetadata.newBuilder().build())
223             .setRuntimeMetadata(RuntimeMetadata.newBuilder().build())
224             .build();
225     mockTemplatesService.addResponse(expectedResponse);
226 
227     GetTemplateRequest request =
228         GetTemplateRequest.newBuilder()
229             .setProjectId("projectId-894832108")
230             .setLocation("location1901043637")
231             .build();
232 
233     GetTemplateResponse actualResponse = client.getTemplate(request);
234     Assert.assertEquals(expectedResponse, actualResponse);
235 
236     List<AbstractMessage> actualRequests = mockTemplatesService.getRequests();
237     Assert.assertEquals(1, actualRequests.size());
238     GetTemplateRequest actualRequest = ((GetTemplateRequest) actualRequests.get(0));
239 
240     Assert.assertEquals(request.getProjectId(), actualRequest.getProjectId());
241     Assert.assertEquals(request.getGcsPath(), actualRequest.getGcsPath());
242     Assert.assertEquals(request.getView(), actualRequest.getView());
243     Assert.assertEquals(request.getLocation(), actualRequest.getLocation());
244     Assert.assertTrue(
245         channelProvider.isHeaderSent(
246             ApiClientHeaderProvider.getDefaultApiClientHeaderKey(),
247             GaxGrpcProperties.getDefaultApiClientHeaderPattern()));
248   }
249 
250   @Test
getTemplateExceptionTest()251   public void getTemplateExceptionTest() throws Exception {
252     StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT);
253     mockTemplatesService.addException(exception);
254 
255     try {
256       GetTemplateRequest request =
257           GetTemplateRequest.newBuilder()
258               .setProjectId("projectId-894832108")
259               .setLocation("location1901043637")
260               .build();
261       client.getTemplate(request);
262       Assert.fail("No exception raised");
263     } catch (InvalidArgumentException e) {
264       // Expected exception.
265     }
266   }
267 }
268