Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
import com.google.api.generator.engine.ast.ClassDefinition;
import com.google.api.generator.engine.ast.CommentStatement;
import com.google.api.generator.engine.ast.ConcreteReference;
import com.google.api.generator.engine.ast.EmptyLineStatement;
import com.google.api.generator.engine.ast.EnumRefExpr;
import com.google.api.generator.engine.ast.Expr;
import com.google.api.generator.engine.ast.ExprStatement;
Expand Down Expand Up @@ -94,6 +95,8 @@

// TODO(miraleung): Refactor classComposer.
public class ServiceClientTestClassComposer {
private static final Statement EMPTY_LINE_STATEMENT = EmptyLineStatement.create();

private static final String CHANNEL_PROVIDER_VAR_NAME = "channelProvider";
private static final String CLASS_NAME_PATTERN = "%sClientTest";
private static final String CLIENT_VAR_NAME = "client";
Expand Down Expand Up @@ -565,7 +568,11 @@ private static MethodDefinition createRpcTestMethod(
.setArguments(expectedResponseVarExpr)
.build());
}
// TODO(miraleung): Empty line here.
List<Statement> methodStatements = new ArrayList<>();
methodStatements.addAll(
methodExprs.stream().map(e -> ExprStatement.withExpr(e)).collect(Collectors.toList()));
methodExprs.clear();
methodStatements.add(EMPTY_LINE_STATEMENT);

// Construct the request or method arguments.
boolean isRequestArg = methodSignature.isEmpty();
Expand Down Expand Up @@ -602,7 +609,10 @@ private static MethodDefinition createRpcTestMethod(
.build());
}
}
// TODO(miraleung): Empty line here.
methodStatements.addAll(
methodExprs.stream().map(e -> ExprStatement.withExpr(e)).collect(Collectors.toList()));
methodExprs.clear();
methodStatements.add(EMPTY_LINE_STATEMENT);

// Call the RPC Java method.
VariableExpr actualResponseVarExpr =
Expand Down Expand Up @@ -658,11 +668,19 @@ private static MethodDefinition createRpcTestMethod(
.setArguments(iterateAllExpr)
.setReturnType(resourcesVarExpr.type())
.build();
methodExprs.add(
AssignmentExpr.builder()
.setVariableExpr(resourcesVarExpr)
.setValueExpr(resourcesValExpr)
.build());

methodStatements.addAll(
methodExprs.stream().map(e -> ExprStatement.withExpr(e)).collect(Collectors.toList()));
methodExprs.clear();
methodStatements.add(EMPTY_LINE_STATEMENT);

methodStatements.add(
ExprStatement.withExpr(
AssignmentExpr.builder()
.setVariableExpr(resourcesVarExpr.toBuilder().setIsDecl(true).build())
.setValueExpr(resourcesValExpr)
.build()));
methodStatements.add(EMPTY_LINE_STATEMENT);

// Assert the size is equivalent.
methodExprs.add(
Expand Down Expand Up @@ -714,7 +732,10 @@ private static MethodDefinition createRpcTestMethod(
.setArguments(expectedResponseVarExpr, actualResponseVarExpr)
.build());
}
// TODO(miraleung): Empty line here.
methodStatements.addAll(
methodExprs.stream().map(e -> ExprStatement.withExpr(e)).collect(Collectors.toList()));
methodExprs.clear();
methodStatements.add(EMPTY_LINE_STATEMENT);

// Construct the request checker logic.
VariableExpr actualRequestsVarExpr =
Expand Down Expand Up @@ -773,7 +794,10 @@ private static MethodDefinition createRpcTestMethod(
.setVariableExpr(actualRequestVarExpr.toBuilder().setIsDecl(true).build())
.setValueExpr(getFirstRequestExpr)
.build());
// TODO(miraleung): Empty line here.
methodStatements.addAll(
methodExprs.stream().map(e -> ExprStatement.withExpr(e)).collect(Collectors.toList()));
methodExprs.clear();
methodStatements.add(EMPTY_LINE_STATEMENT);

// Assert field equality.
if (isRequestArg) {
Expand Down Expand Up @@ -860,6 +884,9 @@ private static MethodDefinition createRpcTestMethod(
.setMethodName("assertTrue")
.setArguments(headerSentExpr)
.build());
methodStatements.addAll(
methodExprs.stream().map(e -> ExprStatement.withExpr(e)).collect(Collectors.toList()));
methodExprs.clear();

String testMethodName =
String.format(
Expand All @@ -871,8 +898,7 @@ private static MethodDefinition createRpcTestMethod(
.setScope(ScopeNode.PUBLIC)
.setReturnType(TypeNode.VOID)
.setName(testMethodName)
.setBody(
methodExprs.stream().map(e -> ExprStatement.withExpr(e)).collect(Collectors.toList()))
.setBody(methodStatements)
.build();
}

Expand Down Expand Up @@ -937,7 +963,6 @@ private static MethodDefinition createStreamingRpcTestMethod(
.setArguments(expectedResponseVarExpr)
.build());
}
// TODO(miraleung): Empty line here.

// Construct the request or method arguments.
VariableExpr requestVarExpr =
Expand All @@ -954,6 +979,12 @@ private static MethodDefinition createStreamingRpcTestMethod(
.setValueExpr(valExpr)
.build());

List<Statement> methodStatements = new ArrayList<>();
methodStatements.addAll(
methodExprs.stream().map(e -> ExprStatement.withExpr(e)).collect(Collectors.toList()));
methodExprs.clear();
methodStatements.add(EMPTY_LINE_STATEMENT);

// Construct the mock stream observer.
VariableExpr responseObserverVarExpr =
VariableExpr.withVariable(
Expand All @@ -967,15 +998,17 @@ private static MethodDefinition createStreamingRpcTestMethod(
.setName("responseObserver")
.build());

methodExprs.add(
AssignmentExpr.builder()
.setVariableExpr(responseObserverVarExpr.toBuilder().setIsDecl(true).build())
.setValueExpr(
NewObjectExpr.builder()
.setType(STATIC_TYPES.get("MockStreamObserver"))
.setIsGeneric(true)
.build())
.build());
methodStatements.add(
ExprStatement.withExpr(
AssignmentExpr.builder()
.setVariableExpr(responseObserverVarExpr.toBuilder().setIsDecl(true).build())
.setValueExpr(
NewObjectExpr.builder()
.setType(STATIC_TYPES.get("MockStreamObserver"))
.setIsGeneric(true)
.build())
.build()));
methodStatements.add(EMPTY_LINE_STATEMENT);

// Build the callable variable and assign it.
VariableExpr callableVarExpr =
Expand Down Expand Up @@ -1025,7 +1058,11 @@ private static MethodDefinition createStreamingRpcTestMethod(
.build())
.build());

// TODO(miraleung): Empty line here.
methodStatements.addAll(
methodExprs.stream().map(e -> ExprStatement.withExpr(e)).collect(Collectors.toList()));
methodExprs.clear();
methodStatements.add(EMPTY_LINE_STATEMENT);

methodExprs.add(
MethodInvocationExpr.builder()
.setExprReferenceExpr(requestObserverVarExpr)
Expand All @@ -1038,6 +1075,10 @@ private static MethodDefinition createStreamingRpcTestMethod(
.setMethodName("onCompleted")
.build());
}
methodStatements.addAll(
methodExprs.stream().map(e -> ExprStatement.withExpr(e)).collect(Collectors.toList()));
methodExprs.clear();
methodStatements.add(EMPTY_LINE_STATEMENT);

// Check the actual responses.
VariableExpr actualResponsesVarExpr =
Expand Down Expand Up @@ -1101,14 +1142,18 @@ private static MethodDefinition createStreamingRpcTestMethod(
.setArguments(expectedResponseVarExpr, actualResponseExpr)
.build());

methodStatements.addAll(
methodExprs.stream().map(e -> ExprStatement.withExpr(e)).collect(Collectors.toList()));
methodExprs.clear();
methodStatements.add(EMPTY_LINE_STATEMENT);

String testMethodName = String.format("%sTest", JavaStyle.toLowerCamelCase(method.name()));
return MethodDefinition.builder()
.setAnnotations(Arrays.asList(TEST_ANNOTATION))
.setScope(ScopeNode.PUBLIC)
.setReturnType(TypeNode.VOID)
.setName(testMethodName)
.setBody(
methodExprs.stream().map(e -> ExprStatement.withExpr(e)).collect(Collectors.toList()))
.setBody(methodStatements)
.build();
}

Expand Down Expand Up @@ -1193,12 +1238,14 @@ private static List<Statement> createStreamingRpcExceptionTestStatements(
DefaultValueComposer.createSimpleMessageBuilderExpr(
requestMessage, resourceNames, messageTypes);

List<Expr> exprs = new ArrayList<>();
exprs.add(
AssignmentExpr.builder()
.setVariableExpr(requestVarExpr.toBuilder().setIsDecl(true).build())
.setValueExpr(valExpr)
.build());
List<Statement> statements = new ArrayList<>();
statements.add(
ExprStatement.withExpr(
AssignmentExpr.builder()
.setVariableExpr(requestVarExpr.toBuilder().setIsDecl(true).build())
.setValueExpr(valExpr)
.build()));
statements.add(EMPTY_LINE_STATEMENT);

// Build the responseObserver variable.
VariableExpr responseObserverVarExpr =
Expand All @@ -1213,15 +1260,17 @@ private static List<Statement> createStreamingRpcExceptionTestStatements(
.setName("responseObserver")
.build());

exprs.add(
AssignmentExpr.builder()
.setVariableExpr(responseObserverVarExpr.toBuilder().setIsDecl(true).build())
.setValueExpr(
NewObjectExpr.builder()
.setType(STATIC_TYPES.get("MockStreamObserver"))
.setIsGeneric(true)
.build())
.build());
statements.add(
ExprStatement.withExpr(
AssignmentExpr.builder()
.setVariableExpr(responseObserverVarExpr.toBuilder().setIsDecl(true).build())
.setValueExpr(
NewObjectExpr.builder()
.setType(STATIC_TYPES.get("MockStreamObserver"))
.setIsGeneric(true)
.build())
.build()));
statements.add(EMPTY_LINE_STATEMENT);

// Build the callable variable and assign it.
VariableExpr callableVarExpr =
Expand All @@ -1233,17 +1282,22 @@ private static List<Statement> createStreamingRpcExceptionTestStatements(
.setMethodName(String.format("%sCallable", JavaStyle.toLowerCamelCase(method.name())))
.setReturnType(callableVarExpr.type())
.build();

List<Expr> exprs = new ArrayList<>();
exprs.add(
AssignmentExpr.builder()
.setVariableExpr(callableVarExpr.toBuilder().setIsDecl(true).build())
.setValueExpr(streamingCallExpr)
.build());

if (method.stream().equals(Method.Stream.SERVER)) {
exprs.add(streamingCallExpr);
} else {
exprs.add(
AssignmentExpr.builder()
.setVariableExpr(callableVarExpr.toBuilder().setIsDecl(true).build())
.setValueExpr(streamingCallExpr)
MethodInvocationExpr.builder()
.setExprReferenceExpr(callableVarExpr)
.setMethodName("serverStreamingCall")
.setArguments(requestVarExpr, responseObserverVarExpr)
.build());
}

if (!method.stream().equals(Method.Stream.SERVER)) {
} else {
// Call the streaming-variant callable method.
VariableExpr requestObserverVarExpr =
VariableExpr.withVariable(
Expand All @@ -1268,13 +1322,22 @@ private static List<Statement> createStreamingRpcExceptionTestStatements(
.build())
.build());

statements.addAll(
exprs.stream().map(e -> ExprStatement.withExpr(e)).collect(Collectors.toList()));
exprs.clear();
statements.add(EMPTY_LINE_STATEMENT);

exprs.add(
MethodInvocationExpr.builder()
.setExprReferenceExpr(requestObserverVarExpr)
.setMethodName("onNext")
.setArguments(requestVarExpr)
.build());
}
statements.addAll(
exprs.stream().map(e -> ExprStatement.withExpr(e)).collect(Collectors.toList()));
exprs.clear();
statements.add(EMPTY_LINE_STATEMENT);

List<Expr> tryBodyExprs = new ArrayList<>();
// TODO(v2): This variable is unused in the generated test, it can be deleted.
Expand Down Expand Up @@ -1333,9 +1396,6 @@ private static List<Statement> createStreamingRpcExceptionTestStatements(
.setCatchBody(createRpcLroExceptionTestCatchBody(catchExceptionVarExpr, true))
.build();

List<Statement> statements = new ArrayList<>();
statements.addAll(
exprs.stream().map(e -> ExprStatement.withExpr(e)).collect(Collectors.toList()));
statements.add(tryCatchBlock);
return statements;
}
Expand Down Expand Up @@ -1435,7 +1495,7 @@ private static List<Statement> createRpcExceptionTestStatements(
.setCatchBody(catchBody)
.build();

return Arrays.asList(tryCatchBlock);
return Arrays.asList(EMPTY_LINE_STATEMENT, tryCatchBlock);
}

private static List<Statement> createRpcLroExceptionTestCatchBody(
Expand Down
Loading