@Test public void testCreateLROWithGapicConfigOnly() { DiagCollector diagCollector = new BoundedDiagCollector(); // simpleMethod has no LRO proto annotations. // lroConfigProtoWithPollSettings contains LRO settings. LongRunningConfig longRunningConfig = LongRunningConfig.createLongRunningConfig( simpleMethod, diagCollector, lroConfigProtoWithPollSettings, protoParser); assertThat(diagCollector.getErrorCount()).isEqualTo(0); assertThat(longRunningConfig).isNotNull(); ProtoTypeRef metadataTypeModel = (ProtoTypeRef) longRunningConfig.getMetadataType(); assertThat(metadataTypeModel.getProtoType()).isEqualTo(gapicConfigMetadataType); ProtoTypeRef returnTypeModel = (ProtoTypeRef) longRunningConfig.getReturnType(); assertThat(returnTypeModel.getProtoType()).isEqualTo(gapicConfigReturnType); // These are the values specified by lroConfigProtoWithPollSettings. assertThat(longRunningConfig.getInitialPollDelay().toMillis()) .isEqualTo(TEST_INITIAL_POLL_DELAY); assertThat(longRunningConfig.getMaxPollDelay().toMillis()).isEqualTo(TEST_MAX_POLL_DELAY); assertThat(longRunningConfig.getPollDelayMultiplier()).isEqualTo(TEST_POLL_DELAY_MULTIPLIER); assertThat(longRunningConfig.getTotalPollTimeout().toMillis()) .isEqualTo(TEST_TOTAL_POLL_TIMEOUT); assertThat(longRunningConfig.implementsCancel()).isEqualTo(TEST_IMPLEMENTS_CANCEL); assertThat(longRunningConfig.implementsDelete()).isEqualTo(TEST_IMPLEMENTS_DELETE); }
@Test public void testCreateLROWithAnnotationsOverridingGapicConfig() { DiagCollector diagCollector = new BoundedDiagCollector(); // lroAnnotatedMethod contains different settings than that in lroConfigProtoWithPollSettings. LongRunningConfig longRunningConfig = LongRunningConfig.createLongRunningConfig( lroAnnotatedMethod, diagCollector, lroConfigProtoWithPollSettings, protoParser); assertThat(diagCollector.getErrorCount()).isEqualTo(0); assertThat(longRunningConfig).isNotNull(); // Assert that proto annotations settings take precendence over gapic config. ProtoTypeRef metadataTypeModel = (ProtoTypeRef) longRunningConfig.getMetadataType(); assertThat(metadataTypeModel.getProtoType()).isEqualTo(annotationsMetadataType); ProtoTypeRef returnTypeModel = (ProtoTypeRef) longRunningConfig.getReturnType(); assertThat(returnTypeModel.getProtoType()).isEqualTo(annotationsReturnType); assertThat(longRunningConfig.getInitialPollDelay().toMillis()) .isEqualTo(LongRunningConfig.LRO_INITIAL_POLL_DELAY_MILLIS); assertThat(longRunningConfig.getMaxPollDelay().toMillis()) .isEqualTo(LongRunningConfig.LRO_MAX_POLL_DELAY_MILLIS); assertThat(longRunningConfig.getPollDelayMultiplier()) .isEqualTo(LongRunningConfig.LRO_POLL_DELAY_MULTIPLIER); assertThat(longRunningConfig.getTotalPollTimeout().toMillis()) .isEqualTo(LongRunningConfig.LRO_TOTAL_POLL_TIMEOUT_MILLS); assertThat(longRunningConfig.implementsCancel()) .isEqualTo(LongRunningConfig.LRO_IMPLEMENTS_CANCEL); assertThat(longRunningConfig.implementsDelete()) .isEqualTo(LongRunningConfig.LRO_IMPLEMENTS_DELETE); }
@Test public void testCreateLROWithoutGapicConfig() { DiagCollector diagCollector = new BoundedDiagCollector(); LongRunningConfig longRunningConfig = LongRunningConfig.createLongRunningConfig( lroAnnotatedMethod, diagCollector, LongRunningConfigProto.getDefaultInstance(), protoParser); assertThat(diagCollector.getErrorCount()).isEqualTo(0); assertThat(longRunningConfig).isNotNull(); ProtoTypeRef metadataTypeModel = (ProtoTypeRef) longRunningConfig.getMetadataType(); assertThat(metadataTypeModel.getProtoType()).isEqualTo(annotationsMetadataType); ProtoTypeRef returnTypeModel = (ProtoTypeRef) longRunningConfig.getReturnType(); assertThat(returnTypeModel.getProtoType()).isEqualTo(annotationsReturnType); assertThat(longRunningConfig.getInitialPollDelay().toMillis()) .isEqualTo(LongRunningConfig.LRO_INITIAL_POLL_DELAY_MILLIS); assertThat(longRunningConfig.getMaxPollDelay().toMillis()) .isEqualTo(LongRunningConfig.LRO_MAX_POLL_DELAY_MILLIS); assertThat(longRunningConfig.getPollDelayMultiplier()) .isEqualTo(LongRunningConfig.LRO_POLL_DELAY_MULTIPLIER); assertThat(longRunningConfig.getTotalPollTimeout().toMillis()) .isEqualTo(LongRunningConfig.LRO_TOTAL_POLL_TIMEOUT_MILLS); assertThat(longRunningConfig.implementsCancel()) .isEqualTo(LongRunningConfig.LRO_IMPLEMENTS_CANCEL); assertThat(longRunningConfig.implementsDelete()) .isEqualTo(LongRunningConfig.LRO_IMPLEMENTS_DELETE); }
.isEqualTo(TEST_INITIAL_POLL_DELAY); assertThat(longRunningConfig.getMaxPollDelay().toMillis()).isEqualTo(TEST_MAX_POLL_DELAY); assertThat(longRunningConfig.getPollDelayMultiplier()).isEqualTo(TEST_POLL_DELAY_MULTIPLIER); assertThat(longRunningConfig.getTotalPollTimeout().toMillis()) .isEqualTo(TEST_TOTAL_POLL_TIMEOUT);
private List<LongRunningOperationDetailView> createLongRunningDescriptors( GapicInterfaceContext context) { List<LongRunningOperationDetailView> result = new ArrayList<>(); for (MethodModel method : context.getLongRunningMethods()) { GapicMethodContext methodContext = context.asDynamicMethodContext(method); LongRunningConfig lroConfig = methodContext.getMethodConfig().getLongRunningConfig(); TypeModel returnType = lroConfig.getReturnType(); TypeModel metadataType = lroConfig.getMetadataType(); result.add( LongRunningOperationDetailView.newBuilder() .methodName(context.getNamer().getApiMethodName(method, VisibilityConfig.PUBLIC)) .constructorName("") .clientReturnTypeName("") .operationPayloadTypeName(context.getImportTypeTable().getFullNameFor(returnType)) .isEmptyOperation(lroConfig.getReturnType().isEmptyType()) .isEmptyMetadata(lroConfig.getMetadataType().isEmptyType()) .metadataTypeName(context.getImportTypeTable().getFullNameFor(metadataType)) .implementsCancel(true) .implementsDelete(true) .initialPollDelay(lroConfig.getInitialPollDelay().toMillis()) .pollDelayMultiplier(lroConfig.getPollDelayMultiplier()) .maxPollDelay(lroConfig.getMaxPollDelay().toMillis()) .totalPollTimeout(lroConfig.getTotalPollTimeout().toMillis()) .build()); } return result; }
private List<LongRunningOperationDetailView> createLongRunningDescriptors( GapicInterfaceContext context) { List<LongRunningOperationDetailView> result = new ArrayList<>(); for (MethodModel method : context.getLongRunningMethods()) { GapicMethodContext methodContext = context.asDynamicMethodContext(method); LongRunningConfig lroConfig = methodContext.getMethodConfig().getLongRunningConfig(); TypeModel returnType = lroConfig.getReturnType(); TypeModel metadataType = lroConfig.getMetadataType(); result.add( LongRunningOperationDetailView.newBuilder() .methodName(context.getNamer().getApiMethodName(method, VisibilityConfig.PUBLIC)) .transportMethodName(context.getNamer().getGrpcMethodName(method)) .constructorName("") .clientReturnTypeName("") .operationPayloadTypeName(context.getImportTypeTable().getFullNameFor(returnType)) .isEmptyOperation(lroConfig.getReturnType().isEmptyType()) .isEmptyMetadata(lroConfig.getMetadataType().isEmptyType()) .metadataTypeName(context.getImportTypeTable().getFullNameFor(metadataType)) .implementsCancel(true) .implementsDelete(true) .initialPollDelay(lroConfig.getInitialPollDelay().toMillis()) .pollDelayMultiplier(lroConfig.getPollDelayMultiplier()) .maxPollDelay(lroConfig.getMaxPollDelay().toMillis()) .totalPollTimeout(lroConfig.getTotalPollTimeout().toMillis()) .build()); } return result; }
LongRunningOperationDetailView generateDetailView(MethodContext context) { MethodConfig methodConfig = context.getMethodConfig(); LongRunningConfig lroConfig = methodConfig.getLongRunningConfig(); SurfaceNamer namer = context.getNamer(); String clientReturnTypeName = namer.getAndSaveOperationResponseTypeName( context.getMethodModel(), context.getTypeTable(), methodConfig); String operationPayloadTypeName = namer.getLongRunningOperationTypeName(context.getTypeTable(), lroConfig.getReturnType()); String metadataTypeName = namer.getLongRunningOperationTypeName(context.getTypeTable(), lroConfig.getMetadataType()); return LongRunningOperationDetailView.newBuilder() .methodName(namer.getApiMethodName(context.getMethodModel(), VisibilityConfig.PUBLIC)) .constructorName(namer.getTypeConstructor(clientReturnTypeName)) .clientReturnTypeName(clientReturnTypeName) .operationPayloadTypeName(operationPayloadTypeName) .isEmptyOperation(lroConfig.getReturnType().isEmptyType()) .isEmptyMetadata(lroConfig.getMetadataType().isEmptyType()) .metadataTypeName(metadataTypeName) .implementsDelete(lroConfig.implementsDelete()) .implementsCancel(lroConfig.implementsCancel()) .initialPollDelay(lroConfig.getInitialPollDelay().toMillis()) .pollDelayMultiplier(lroConfig.getPollDelayMultiplier()) .maxPollDelay(lroConfig.getMaxPollDelay().toMillis()) .totalPollTimeout(lroConfig.getTotalPollTimeout().toMillis()) .build(); } }