@Test public void validatorStereotype() { OperationModel operation = heisenbergExtension.getOperationModel("validateMoney").get(); StereotypeModel stereotypeModel = operation.getStereotype(); assertThat(stereotypeModel.isAssignableTo(PROCESSOR), is(true)); assertThat(stereotypeModel.isAssignableTo(VALIDATOR), is(true)); assertThat(stereotypeModel.getType(), is(VALIDATOR_DEFINITION.getName())); assertThat(stereotypeModel.getNamespace(), is(HEISENBERG.toUpperCase())); assertThat(stereotypeModel.getParent().get(), is(VALIDATOR)); }
@Test public void customStereotype() { OperationModel operation = heisenbergExtension.getConfigurationModels().get(0).getOperationModel("callSaul").get(); StereotypeModel stereotypeModel = operation.getStereotype(); assertThat(stereotypeModel.isAssignableTo(PROCESSOR), is(true)); assertThat(stereotypeModel.getType(), is(new EmpireStereotype().getName().toUpperCase())); assertThat(stereotypeModel.getNamespace(), is(HEISENBERG.toUpperCase())); assertThat(stereotypeModel.getParent().get(), is(PROCESSOR)); assertThat(operation.getModelProperty(CustomStereotypeModelProperty.class).isPresent(), is(true)); }
@Test public void defaultProcessorStereotype() { StereotypeModel stereotypeModel = marvelExtension.getConfigurationModel(IronMan.CONFIG_NAME).get() .getOperationModel("fireMissile").get().getStereotype(); assertThat(stereotypeModel.isAssignableTo(PROCESSOR), is(true)); StereotypeModel expectedParent = newStereotype(PROCESSOR.getType(), MARVEL_NAMESPACE).withParent(PROCESSOR).build(); assertStereotype(stereotypeModel, MARVEL_NAMESPACE, "FIRE_MISSILE", expectedParent); }
@Test public void flowRef() { final OperationModel flowRefModel = coreExtensionModel.getOperationModel("flowRef").get(); assertThat(flowRefModel.getStereotype(), is(PROCESSOR)); assertAssociatedProcessorsChangeOutput(flowRefModel); assertThat(flowRefModel.getAllParameterModels(), hasSize(3)); assertThat(flowRefModel.getAllParameterModels().get(0).getName(), is("name")); assertThat(flowRefModel.getAllParameterModels().get(0).getExpressionSupport(), is(NOT_SUPPORTED)); assertThat(flowRefModel.getAllParameterModels().get(0).getType(), instanceOf(DefaultStringType.class)); assertThat(flowRefModel.getAllParameterModels().get(0).isRequired(), is(true)); assertTarget(flowRefModel.getAllParameterModels().get(1)); }
@Test public void logger() { final OperationModel loggerModel = coreExtensionModel.getOperationModel("logger").get(); assertThat(loggerModel.getStereotype(), is(PROCESSOR)); assertThat(loggerModel.getErrorModels(), empty()); assertThat(loggerModel.getExecutionType(), is(CPU_LITE)); assertOutputSameAsInput(loggerModel); final List<ParameterModel> paramModels = loggerModel.getAllParameterModels(); assertThat(paramModels, hasSize(3)); assertThat(paramModels.get(0).getName(), is("message")); assertThat(paramModels.get(0).getExpressionSupport(), is(SUPPORTED)); assertThat(paramModels.get(0).getType(), instanceOf(StringType.class)); assertThat(paramModels.get(0).isRequired(), is(false)); assertThat(paramModels.get(1).getName(), is("level")); assertThat(paramModels.get(1).getExpressionSupport(), is(NOT_SUPPORTED)); assertThat(paramModels.get(1).getType(), instanceOf(DefaultStringType.class)); assertThat(paramModels.get(1).isRequired(), is(false)); assertThat(paramModels.get(2).getName(), is("category")); assertThat(paramModels.get(2).getExpressionSupport(), is(NOT_SUPPORTED)); assertThat(paramModels.get(2).getType(), instanceOf(StringType.class)); assertThat(paramModels.get(2).isRequired(), is(false)); }
@Test public void raiseError() { final OperationModel raiseErrorModel = coreExtensionModel.getOperationModel("raiseError").get(); assertThat(raiseErrorModel.getStereotype(), is(PROCESSOR)); assertThat(raiseErrorModel.getErrorModels(), empty()); assertThat(raiseErrorModel.getExecutionType(), is(CPU_LITE)); assertOutputSameAsInput(raiseErrorModel); final List<ParameterModel> paramModels = raiseErrorModel.getAllParameterModels(); assertThat(paramModels, hasSize(2)); assertThat(paramModels.get(0).getName(), is("type")); assertThat(paramModels.get(0).getExpressionSupport(), is(NOT_SUPPORTED)); assertThat(paramModels.get(0).getType(), instanceOf(DefaultStringType.class)); assertThat(paramModels.get(0).isRequired(), is(true)); assertThat(paramModels.get(1).getName(), is("description")); assertThat(paramModels.get(1).getExpressionSupport(), is(SUPPORTED)); assertThat(paramModels.get(1).getType(), instanceOf(StringType.class)); assertThat(paramModels.get(1).isRequired(), is(false)); }
@Test public void idempotentMessageValidator() { final OperationModel filterModel = coreExtensionModel.getOperationModel("idempotentMessageValidator").get(); assertThat(filterModel.getStereotype(), is(PROCESSOR)); assertOutputSameAsInput(filterModel); assertThat(filterModel.getAllParameterModels(), hasSize(4)); assertThat(filterModel.getAllParameterModels().get(0).getName(), is("idExpression")); assertThat(filterModel.getAllParameterModels().get(0).getExpressionSupport(), is(SUPPORTED)); assertThat(filterModel.getAllParameterModels().get(0).getType(), instanceOf(DefaultStringType.class)); assertThat(filterModel.getAllParameterModels().get(0).isRequired(), is(false)); assertThat(filterModel.getAllParameterModels().get(1).getName(), is("valueExpression")); assertThat(filterModel.getAllParameterModels().get(1).getExpressionSupport(), is(SUPPORTED)); assertThat(filterModel.getAllParameterModels().get(1).getType(), instanceOf(DefaultStringType.class)); assertThat(filterModel.getAllParameterModels().get(1).isRequired(), is(false)); assertThat(filterModel.getAllParameterModels().get(2).getName(), is("storePrefix")); assertThat(filterModel.getAllParameterModels().get(2).getExpressionSupport(), is(NOT_SUPPORTED)); assertThat(filterModel.getAllParameterModels().get(2).getType(), instanceOf(DefaultStringType.class)); assertThat(filterModel.getAllParameterModels().get(2).isRequired(), is(false)); assertThat(filterModel.getAllParameterModels().get(3).getName(), is("objectStore")); assertThat(filterModel.getAllParameterModels().get(3).getExpressionSupport(), is(NOT_SUPPORTED)); assertThat(filterModel.getAllParameterModels().get(3).getType(), instanceOf(DefaultObjectType.class)); assertThat(filterModel.getAllParameterModels().get(3).isRequired(), is(false)); assertThat(filterModel.getAllParameterModels().get(3).getAllowedStereotypes().size(), is(1)); assertThat(filterModel.getAllParameterModels().get(3).getAllowedStereotypes().get(0), is(OBJECT_STORE)); }
@Override public void visit(OperationModel operationModel) { OutputModel typedOutputModel = resolveOutputModelType(operationModel.getOutput(), outputMetadataDescriptor.getPayloadMetadata()); OutputModel typedAttributesModel = resolveOutputModelType(operationModel.getOutputAttributes(), outputMetadataDescriptor.getAttributesMetadata()); typedModel.set((T) new ImmutableOperationModel(operationModel.getName(), operationModel.getDescription(), resolveParameterGroupModelType( operationModel.getParameterGroupModels(), inputMetadataDescriptor.getAllParameters()), operationModel.getNestedComponents(), typedOutputModel, typedAttributesModel, operationModel.isBlocking(), operationModel.getExecutionType(), operationModel.requiresConnection(), operationModel.isTransactional(), operationModel.supportsStreaming(), operationModel.getDisplayModel().orElse(null), operationModel.getErrorModels(), operationModel.getStereotype(), operationModel.getModelProperties(), operationModel.getNotificationModels(), operationModel.getDeprecationModel().orElse(null))); }
@Test public void flowRef() { final OperationModel flowRefModel = coreExtensionModel.getOperationModel("flowRef").get(); assertThat(flowRefModel.getStereotype(), is(PROCESSOR)); assertAssociatedProcessorsChangeOutput(flowRefModel); assertThat(flowRefModel.getAllParameterModels(), hasSize(3)); assertThat(flowRefModel.getAllParameterModels().get(0).getName(), is("name")); assertThat(flowRefModel.getAllParameterModels().get(0).getExpressionSupport(), is(NOT_SUPPORTED)); assertThat(flowRefModel.getAllParameterModels().get(0).getType(), instanceOf(DefaultStringType.class)); assertThat(flowRefModel.getAllParameterModels().get(0).isRequired(), is(true)); assertTarget(flowRefModel.getAllParameterModels().get(1)); }
@Test public void raiseError() { final OperationModel raiseErrorModel = coreExtensionModel.getOperationModel("raiseError").get(); assertThat(raiseErrorModel.getStereotype(), is(PROCESSOR)); assertThat(raiseErrorModel.getErrorModels(), empty()); assertThat(raiseErrorModel.getExecutionType(), is(CPU_LITE)); assertOutputSameAsInput(raiseErrorModel); final List<ParameterModel> paramModels = raiseErrorModel.getAllParameterModels(); assertThat(paramModels, hasSize(2)); assertThat(paramModels.get(0).getName(), is("type")); assertThat(paramModels.get(0).getExpressionSupport(), is(NOT_SUPPORTED)); assertThat(paramModels.get(0).getType(), instanceOf(DefaultStringType.class)); assertThat(paramModels.get(0).isRequired(), is(true)); assertThat(paramModels.get(1).getName(), is("description")); assertThat(paramModels.get(1).getExpressionSupport(), is(SUPPORTED)); assertThat(paramModels.get(1).getType(), instanceOf(StringType.class)); assertThat(paramModels.get(1).isRequired(), is(false)); }
@Test public void logger() { final OperationModel loggerModel = coreExtensionModel.getOperationModel("logger").get(); assertThat(loggerModel.getStereotype(), is(PROCESSOR)); assertThat(loggerModel.getErrorModels(), empty()); assertThat(loggerModel.getExecutionType(), is(CPU_LITE)); assertOutputSameAsInput(loggerModel); final List<ParameterModel> paramModels = loggerModel.getAllParameterModels(); assertThat(paramModels, hasSize(3)); assertThat(paramModels.get(0).getName(), is("message")); assertThat(paramModels.get(0).getExpressionSupport(), is(SUPPORTED)); assertThat(paramModels.get(0).getType(), instanceOf(StringType.class)); assertThat(paramModels.get(0).isRequired(), is(false)); assertThat(paramModels.get(1).getName(), is("level")); assertThat(paramModels.get(1).getExpressionSupport(), is(NOT_SUPPORTED)); assertThat(paramModels.get(1).getType(), instanceOf(DefaultStringType.class)); assertThat(paramModels.get(1).isRequired(), is(false)); assertThat(paramModels.get(2).getName(), is("category")); assertThat(paramModels.get(2).getExpressionSupport(), is(NOT_SUPPORTED)); assertThat(paramModels.get(2).getType(), instanceOf(StringType.class)); assertThat(paramModels.get(2).isRequired(), is(false)); }
@Test public void idempotentMessageValidator() { final OperationModel filterModel = coreExtensionModel.getOperationModel("idempotentMessageValidator").get(); assertThat(filterModel.getStereotype(), is(PROCESSOR)); assertOutputSameAsInput(filterModel); assertThat(filterModel.getAllParameterModels(), hasSize(4)); assertThat(filterModel.getAllParameterModels().get(0).getName(), is("idExpression")); assertThat(filterModel.getAllParameterModels().get(0).getExpressionSupport(), is(SUPPORTED)); assertThat(filterModel.getAllParameterModels().get(0).getType(), instanceOf(DefaultStringType.class)); assertThat(filterModel.getAllParameterModels().get(0).isRequired(), is(false)); assertThat(filterModel.getAllParameterModels().get(1).getName(), is("valueExpression")); assertThat(filterModel.getAllParameterModels().get(1).getExpressionSupport(), is(SUPPORTED)); assertThat(filterModel.getAllParameterModels().get(1).getType(), instanceOf(DefaultStringType.class)); assertThat(filterModel.getAllParameterModels().get(1).isRequired(), is(false)); assertThat(filterModel.getAllParameterModels().get(2).getName(), is("storePrefix")); assertThat(filterModel.getAllParameterModels().get(2).getExpressionSupport(), is(NOT_SUPPORTED)); assertThat(filterModel.getAllParameterModels().get(2).getType(), instanceOf(DefaultStringType.class)); assertThat(filterModel.getAllParameterModels().get(2).isRequired(), is(false)); assertThat(filterModel.getAllParameterModels().get(3).getName(), is("objectStore")); assertThat(filterModel.getAllParameterModels().get(3).getExpressionSupport(), is(NOT_SUPPORTED)); assertThat(filterModel.getAllParameterModels().get(3).getType(), instanceOf(DefaultObjectType.class)); assertThat(filterModel.getAllParameterModels().get(3).isRequired(), is(false)); assertThat(filterModel.getAllParameterModels().get(3).getAllowedStereotypes().size(), is(1)); assertThat(filterModel.getAllParameterModels().get(3).getAllowedStereotypes().get(0), is(OBJECT_STORE)); }
@Override public void visit(OperationModel operationModel) { OutputModel typedOutputModel = resolveOutputModelType(operationModel.getOutput(), outputMetadataDescriptor.getPayloadMetadata()); OutputModel typedAttributesModel = resolveOutputModelType(operationModel.getOutputAttributes(), outputMetadataDescriptor.getAttributesMetadata()); typedModel.set((T) new ImmutableOperationModel(operationModel.getName(), operationModel.getDescription(), resolveParameterGroupModelType( operationModel.getParameterGroupModels(), inputMetadataDescriptor.getAllParameters()), operationModel.getNestedComponents(), typedOutputModel, typedAttributesModel, operationModel.isBlocking(), operationModel.getExecutionType(), operationModel.requiresConnection(), operationModel.isTransactional(), operationModel.supportsStreaming(), operationModel.getDisplayModel().orElse(null), operationModel.getErrorModels(), operationModel.getStereotype(), operationModel.getModelProperties(), operationModel.getNotificationModels())); }