Skip to content
This repository has been archived by the owner on Jun 28, 2022. It is now read-only.

chore: update showcase version for sequence tests #3268

Merged
merged 8 commits into from
Aug 25, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ jobs:
- image: circleci/openjdk:8-jdk
working_directory: /tmp/workspace
environment:
SHOWCASE_VERSION: 0.10.1
SHOWCASE_VERSION: 0.12.0
steps:
- checkout:
path: gapic-generator
Expand Down Expand Up @@ -484,7 +484,7 @@ jobs:
<<: *anchor_artman_vars
docker:
- image: circleci/openjdk:8-jdk
- image: gcr.io/gapic-images/gapic-showcase:0.10.1
- image: gcr.io/gapic-images/gapic-showcase:0.12.0
steps:
- attach_workspace:
at: workspace
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,18 @@
import com.google.protobuf.Duration;
import com.google.rpc.Code;
import com.google.rpc.Status;
import com.google.showcase.v1beta1.AttemptSequenceRequest;
import com.google.showcase.v1beta1.BlockRequest;
import com.google.showcase.v1beta1.BlockResponse;
import com.google.showcase.v1beta1.EchoClient;
import com.google.showcase.v1beta1.EchoRequest;
import com.google.showcase.v1beta1.EchoResponse;
import com.google.showcase.v1beta1.EchoSettings;
import com.google.showcase.v1beta1.ExpandRequest;
import com.google.showcase.v1beta1.Sequence;
import com.google.showcase.v1beta1.SequenceReport;
import com.google.showcase.v1beta1.SequenceServiceClient;
import com.google.showcase.v1beta1.SequenceServiceSettings;
import io.grpc.StatusRuntimeException;
import java.util.ArrayList;
import java.util.List;
Expand All @@ -54,6 +59,7 @@
public class ShowcaseTest {

private EchoClient client;
private SequenceServiceClient seqClient;

@Before
public void setup() throws Exception {
Expand All @@ -71,12 +77,23 @@ public void setup() throws Exception {
new ShowcaseTransportChannelProvider(
host, Integer.parseInt(port), new ShowcaseHeaderProvider()))
.build());

seqClient =
SequenceServiceClient.create(
SequenceServiceSettings.newBuilder()
.setCredentialsProvider(() -> null)
.setTransportChannelProvider(
new ShowcaseTransportChannelProvider(
host, Integer.parseInt(port), new ShowcaseHeaderProvider()))
.build());
}

@After
public void teardown() throws Exception {
client.shutdownNow();
client.awaitTermination(5, TimeUnit.SECONDS);
seqClient.shutdownNow();
seqClient.awaitTermination(5, TimeUnit.SECONDS);
}

@Test
Expand Down Expand Up @@ -238,7 +255,9 @@ public void blockTimeout() {
client.block(
BlockRequest.newBuilder()
// Set a longer timeout than the 5 seconds specified in the grpc_service_config.
.setResponseDelay(Duration.newBuilder().setSeconds(10L).build())
.setResponseDelay(Duration.newBuilder().setSeconds(6L).build())
.setSuccess(
BlockResponse.newBuilder().setContent("This should timeout by default!").build())
.build());
} catch (Exception e) {
assertThat(e.getCause()).isInstanceOf(StatusRuntimeException.class);
Expand All @@ -258,4 +277,66 @@ public void block() {
.build());
assertThat(result.getContent()).isEqualTo("Hello, World!");
}

@Test
public void attemptSequence() {
noahdietz marked this conversation as resolved.
Show resolved Hide resolved
Sequence toCreate =
Sequence.newBuilder()
.addResponses(
Sequence.Response.newBuilder()
.setStatus(Status.newBuilder().setCode(Code.UNAVAILABLE_VALUE)))
.addResponses(
Sequence.Response.newBuilder()
.setStatus(Status.newBuilder().setCode(Code.UNAVAILABLE_VALUE)))
.addResponses(
Sequence.Response.newBuilder()
.setStatus(Status.newBuilder().setCode(Code.OK_VALUE)))
.build();
Sequence sequence = seqClient.createSequence(toCreate);
assertThat(sequence.getName()).isNotNull();

seqClient.attemptSequence(sequence.getName());

SequenceReport report = seqClient.getSequenceReport(sequence.getName() + "/sequenceReport");
assertThat(report.getAttemptsList()).isNotNull();
assertThat(report.getAttemptsList().size()).isEqualTo(3);
}

@Test
public void attemptSequenceTimeoutBackoff() {
Sequence toCreate =
Sequence.newBuilder()
.addResponses(
Sequence.Response.newBuilder()
.setDelay(Duration.newBuilder().setSeconds(2L))
.setStatus(Status.newBuilder().setCode(Code.UNAVAILABLE_VALUE)))
.addResponses(
Sequence.Response.newBuilder()
.setDelay(Duration.newBuilder().setSeconds(2L))
.setStatus(Status.newBuilder().setCode(Code.UNAVAILABLE_VALUE)))
.addResponses(
Sequence.Response.newBuilder()
.setStatus(Status.newBuilder().setCode(Code.OK_VALUE)))
.build();
Sequence sequence = seqClient.createSequence(toCreate);
assertThat(sequence.getName()).isNotNull();

seqClient.attemptSequence(
AttemptSequenceRequest.newBuilder().setName(sequence.getName()).build());

SequenceReport report = seqClient.getSequenceReport(sequence.getName() + "/sequenceReport");
assertThat(report.getAttemptsList()).isNotNull();
assertThat(report.getAttemptsList().size()).isEqualTo(3);
for (int i = 0; i < report.getAttemptsList().size(); i++) {
if (i == 0) {
noahdietz marked this conversation as resolved.
Show resolved Hide resolved
continue;
}

SequenceReport.Attempt cur = report.getAttempts(i);
SequenceReport.Attempt prev = report.getAttempts(i - 1);
long secondsDiff =
Math.abs(cur.getAttemptDeadline().getSeconds() - prev.getAttemptDeadline().getSeconds());
assertThat(secondsDiff).isGreaterThan(0);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ documentation:

apis:
- name: google.showcase.v1beta1.Echo
- name: google.showcase.v1beta1.SequenceService

authentication:
rules:
Expand Down