Skip to content

Commit

Permalink
[ggj][codegen][test] feat: add ServiceClientTest.rpcTest for unary an…
Browse files Browse the repository at this point in the history
…d LRO methods (#351)

* fix!: refactor field into MethodArgument, add enum/msg flags

* feat: partial isAssignableFrom VaporRef support, enable full-name type usage

* feat: support negative numeric literals

* fix: separate resname tokenizing from class composer

* feat: add per-type default value composer

* feat: add ServiceClientTest.methodExceptionTests codegen

* feat: add rpcExceptionTest for RPCs w/o overloads, support LRO

* feat: ServiceClientTest.rpcExceptionTest support for LRO, streaming

* fix: sorted method args

* feat: add ServiceClientTest.rpcTest for unary and LRO methods
  • Loading branch information
miraleung committed Sep 26, 2020
1 parent 151cedb commit ca92983
Show file tree
Hide file tree
Showing 3 changed files with 667 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,16 @@
import com.google.api.generator.engine.ast.StringObjectValue;
import com.google.api.generator.engine.ast.TypeNode;
import com.google.api.generator.engine.ast.ValueExpr;
import com.google.api.generator.engine.ast.VariableExpr;
import com.google.api.generator.gapic.model.Field;
import com.google.api.generator.gapic.model.Message;
import com.google.api.generator.gapic.model.MethodArgument;
import com.google.api.generator.gapic.model.ResourceName;
import com.google.api.generator.gapic.utils.JavaStyle;
import com.google.api.generator.gapic.utils.ResourceNameConstants;
import com.google.common.base.Preconditions;
import com.google.longrunning.Operation;
import com.google.protobuf.Any;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
Expand All @@ -38,6 +41,10 @@
import java.util.stream.Collectors;

public class DefaultValueComposer {
private static TypeNode OPERATION_TYPE =
TypeNode.withReference(ConcreteReference.withClazz(Operation.class));
private static TypeNode ANY_TYPE = TypeNode.withReference(ConcreteReference.withClazz(Any.class));

static Expr createDefaultValue(
MethodArgument methodArg, Map<String, ResourceName> resourceNames) {
if (methodArg.isResourceNameHelper()) {
Expand Down Expand Up @@ -237,4 +244,42 @@ static Expr createSimpleMessageBuilderExpr(
.setReturnType(message.type())
.build();
}

static Expr createSimpleOperationBuilderExpr(String name, VariableExpr responseExpr) {
Expr operationExpr =
MethodInvocationExpr.builder()
.setStaticReferenceType(OPERATION_TYPE)
.setMethodName("newBuilder")
.build();
operationExpr =
MethodInvocationExpr.builder()
.setExprReferenceExpr(operationExpr)
.setMethodName("setName")
.setArguments(ValueExpr.withValue(StringObjectValue.withValue(name)))
.build();
operationExpr =
MethodInvocationExpr.builder()
.setExprReferenceExpr(operationExpr)
.setMethodName("setDone")
.setArguments(
ValueExpr.withValue(
PrimitiveValue.builder().setType(TypeNode.BOOLEAN).setValue("true").build()))
.build();
operationExpr =
MethodInvocationExpr.builder()
.setExprReferenceExpr(operationExpr)
.setMethodName("setResponse")
.setArguments(
MethodInvocationExpr.builder()
.setStaticReferenceType(ANY_TYPE)
.setMethodName("pack")
.setArguments(responseExpr)
.build())
.build();
return MethodInvocationExpr.builder()
.setExprReferenceExpr(operationExpr)
.setMethodName("build")
.setReturnType(OPERATION_TYPE)
.build();
}
}
Loading

0 comments on commit ca92983

Please sign in to comment.