use of org.mule.runtime.extension.api.runtime.exception.ExceptionHandlerFactory in project mule by mulesoft.
the class JavaDeclarationDelegateTestCase method assertTestModuleOperations.
private void assertTestModuleOperations(ExtensionDeclaration extensionDeclaration) throws Exception {
assertThat(extensionDeclaration.getOperations(), hasSize(48));
WithOperationsDeclaration withOperationsDeclaration = extensionDeclaration.getConfigurations().get(0);
assertThat(withOperationsDeclaration.getOperations().size(), is(15));
assertOperation(withOperationsDeclaration, SAY_MY_NAME_OPERATION, "");
assertOperation(withOperationsDeclaration, NAME_AS_STREAM, "");
assertOperation(withOperationsDeclaration, GET_ENEMY_OPERATION, "");
assertOperation(withOperationsDeclaration, GET_ALL_ENEMIES_OPERATION, "");
assertOperation(extensionDeclaration, KILL_OPERATION, "");
assertOperation(extensionDeclaration, KILL_CUSTOM_OPERATION, "");
assertOperation(extensionDeclaration, KILL_WITH_WEAPON, "");
assertOperation(extensionDeclaration, KILL_WITH_RICINS, "");
assertOperation(extensionDeclaration, KILL_WITH_MULTIPLES_WEAPONS, "");
assertOperation(extensionDeclaration, KILL_WITH_MULTIPLE_WILDCARD_WEAPONS, "");
assertOperation(withOperationsDeclaration, DIE, "");
assertOperation(withOperationsDeclaration, LAUNDER_MONEY, "");
assertOperation(extensionDeclaration, INJECTED_EXTENSION_MANAGER, "");
assertOperation(extensionDeclaration, ALIAS, "");
assertOperation(withOperationsDeclaration, CALL_SAUL, "");
assertOperation(extensionDeclaration, CALL_GUS_FRING, "");
assertOperation(withOperationsDeclaration, GET_SAUL_PHONE, "");
assertOperation(extensionDeclaration, GET_MEDICAL_HISTORY, "");
assertOperation(extensionDeclaration, GET_GRAMS_IN_STORAGE, "");
assertOperation(extensionDeclaration, APPROVE_INVESTMENT, "");
assertOperation(withOperationsDeclaration, GET_PAGED_PERSONAL_INFO_OPERATION, "");
assertOperation(withOperationsDeclaration, EMPTY_PAGED_OPERATION, "");
assertOperation(withOperationsDeclaration, FAILING_PAGED_OPERATION, "");
assertOperation(withOperationsDeclaration, CONNECTION_PAGED_OPERATION, "");
assertOperation(extensionDeclaration, PROCESS_INFO, "");
assertOperation(extensionDeclaration, PROCESS_WEAPON, "");
assertOperation(extensionDeclaration, PROCESS_WEAPON_LIST, "");
assertOperation(extensionDeclaration, PROCESS_WEAPON_WITH_DEFAULT_VALUE, "");
assertOperation(extensionDeclaration, FAIL_TO_EXECUTE, "");
assertOperation(extensionDeclaration, THROW_ERROR, "");
assertOperation(extensionDeclaration, BY_PASS_WEAPON, "");
assertOperation(extensionDeclaration, ECHO_AN_OPERATION_WITH_ALIAS, "");
assertOperation(extensionDeclaration, "executeRemoteKill", "");
OperationDeclaration operation = getOperation(withOperationsDeclaration, SAY_MY_NAME_OPERATION);
assertThat(operation, is(notNullValue()));
assertThat(operation.getAllParameters().isEmpty(), is(true));
operation = getOperation(withOperationsDeclaration, GET_ENEMY_OPERATION);
assertThat(operation, is(notNullValue()));
assertThat(operation.getAllParameters(), hasSize(1));
assertThat(operation.getOutput().getType(), equalTo(STRING_TYPE));
assertThat(operation.getOutputAttributes().getType(), equalTo(toMetadataType(IntegerAttributes.class)));
assertParameter(operation.getAllParameters(), "index", "", INT_TYPE, false, SUPPORTED, "0");
assertConnected(operation, false);
assertTransactional(operation, false);
operation = getOperation(withOperationsDeclaration, GET_ALL_ENEMIES_OPERATION);
assertThat(operation, is(notNullValue()));
assertThat(operation.getAllParameters(), hasSize(0));
assertThat(operation.getOutput().getType(), is(instanceOf(ArrayType.class)));
assertMessageType(((ArrayType) operation.getOutput().getType()).getType(), STRING_TYPE, TYPE_LOADER.load(IntegerAttributes.class));
assertThat(operation.getOutputAttributes().getType(), is(instanceOf(VoidType.class)));
assertConnected(operation, false);
assertTransactional(operation, false);
operation = getOperation(extensionDeclaration, KILL_OPERATION);
assertThat(operation, is(notNullValue()));
assertThat(operation.getAllParameters(), hasSize(2));
assertThat(operation.getOutput().getType(), equalTo(STRING_TYPE));
assertThat(operation.getOutputAttributes().getType(), is(instanceOf(VoidType.class)));
assertParameter(operation.getAllParameters(), "victim", "", STRING_TYPE, false, SUPPORTED, "#[payload]");
assertParameter(operation.getAllParameters(), "goodbyeMessage", "", STRING_TYPE, true, SUPPORTED, null);
assertConnected(operation, false);
assertTransactional(operation, false);
operation = getOperation(extensionDeclaration, KILL_WITH_WEAPON);
assertThat(operation, is(notNullValue()));
assertThat(operation.getAllParameters(), hasSize(3));
assertParameter(operation.getAllParameters(), "weapon", "", WEAPON_TYPE, true, SUPPORTED, null);
assertParameter(operation.getAllParameters(), "type", "", toMetadataType(WeaponType.class), true, SUPPORTED, null);
assertParameter(operation.getAllParameters(), "attributesOfWeapon", "", toMetadataType(Weapon.WeaponAttributes.class), true, SUPPORTED, null);
assertConnected(operation, false);
assertTransactional(operation, false);
operation = getOperation(extensionDeclaration, KILL_WITH_RICINS);
assertThat(operation, is(notNullValue()));
assertThat(operation.getAllParameters(), hasSize(1));
assertParameter(operation.getAllParameters(), "ricins", "", arrayOf(List.class, objectTypeBuilder(Ricin.class)), false, SUPPORTED, "#[payload]");
assertConnected(operation, false);
assertTransactional(operation, false);
operation = getOperation(extensionDeclaration, KILL_WITH_MULTIPLES_WEAPONS);
assertThat(operation, is(notNullValue()));
assertThat(operation.getAllParameters(), hasSize(1));
assertParameter(operation.getAllParameters(), "weapons", "", arrayOf(List.class, objectTypeBuilder(Weapon.class)), false, SUPPORTED, "#[payload]");
assertConnected(operation, false);
assertTransactional(operation, false);
operation = getOperation(extensionDeclaration, KILL_WITH_MULTIPLE_WILDCARD_WEAPONS);
assertThat(operation, is(notNullValue()));
assertThat(operation.getAllParameters(), hasSize(1));
assertParameter(operation.getAllParameters(), "wildCardWeapons", "", arrayOf(List.class, objectTypeBuilder(Weapon.class)), true, SUPPORTED, null);
assertConnected(operation, false);
assertTransactional(operation, false);
operation = getOperation(extensionDeclaration, KILL_CUSTOM_OPERATION);
assertThat(operation, is(notNullValue()));
assertThat(operation.getAllParameters(), hasSize(2));
assertParameter(operation.getAllParameters(), "victim", "", STRING_TYPE, false, SUPPORTED, "#[payload]");
assertParameter(operation.getAllParameters(), "goodbyeMessage", "", STRING_TYPE, true, SUPPORTED, null);
assertConnected(operation, false);
assertTransactional(operation, false);
operation = getOperation(withOperationsDeclaration, LAUNDER_MONEY);
assertParameter(operation.getAllParameters(), "amount", "", toMetadataType(long.class), true, SUPPORTED, null);
assertConnected(operation, false);
assertTransactional(operation, false);
operation = getOperation(extensionDeclaration, INJECTED_EXTENSION_MANAGER);
assertThat(operation, is(notNullValue()));
assertThat(operation.getAllParameters().isEmpty(), is(true));
assertConnected(operation, false);
assertTransactional(operation, false);
operation = getOperation(extensionDeclaration, ALIAS);
assertParameter(operation.getAllParameters(), "greeting", "", STRING_TYPE, true, SUPPORTED, null);
assertParameter(operation.getAllParameters(), "myName", "", STRING_TYPE, false, SUPPORTED, HEISENBERG);
assertParameter(operation.getAllParameters(), "age", "", toMetadataType(Integer.class), false, SUPPORTED, AGE);
assertConnected(operation, false);
assertTransactional(operation, false);
operation = getOperation(extensionDeclaration, KNOCK);
assertParameter(operation.getAllParameters(), "knockedDoor", "", toMetadataType(KnockeableDoor.class), true, SUPPORTED, null);
assertConnected(operation, false);
assertTransactional(operation, false);
operation = getOperation(extensionDeclaration, KNOCK_MANY);
assertParameter(operation.getAllParameters(), "doors", "", arrayOf(List.class, objectTypeBuilder(KnockeableDoor.class)), true, SUPPORTED, null);
assertConnected(operation, false);
assertTransactional(operation, false);
operation = getOperation(withOperationsDeclaration, CALL_SAUL);
assertThat(operation.getAllParameters(), is(empty()));
assertConnected(operation, true);
assertTransactional(operation, false);
operation = getOperation(extensionDeclaration, CURE_CANCER);
assertThat(operation.getAllParameters(), is(empty()));
assertConnected(operation, false);
assertTransactional(operation, false);
java.util.Optional<ExceptionHandlerFactory> exceptionEnricherFactory = operation.getModelProperty(ExceptionHandlerModelProperty.class).map(ExceptionHandlerModelProperty::getExceptionHandlerFactory);
assertThat(exceptionEnricherFactory.isPresent(), is(true));
assertThat(exceptionEnricherFactory.get().createHandler(), instanceOf(CureCancerExceptionEnricher.class));
operation = getOperation(extensionDeclaration, GET_MEDICAL_HISTORY);
assertParameter(operation.getAllParameters(), "healthByYear", "", TYPE_BUILDER.objectType().with(new ClassInformationAnnotation(Map.class, asList(String.class, HealthStatus.class))).openWith(TYPE_LOADER.load(HealthStatus.class)).build(), true, SUPPORTED, null);
assertConnected(operation, false);
assertTransactional(operation, false);
operation = getOperation(extensionDeclaration, GET_GRAMS_IN_STORAGE);
assertThat(operation, is(notNullValue()));
assertParameter(operation.getAllParameters(), "grams", "", TYPE_LOADER.load(int[][].class), false, SUPPORTED, "#[payload]");
assertThat(operation.getOutput().getType(), is(TYPE_LOADER.load(int[][].class)));
assertConnected(operation, false);
assertTransactional(operation, false);
operation = getOperation(extensionDeclaration, APPROVE_INVESTMENT);
assertThat(operation, is(notNullValue()));
assertParameter(operation.getAllParameters(), "investment", "", TYPE_LOADER.load(Investment.class), true, SUPPORTED, null);
assertThat(getType(operation.getOutput().getType()), equalTo(getType(TYPE_LOADER.load(Investment.class))));
assertConnected(operation, false);
assertTransactional(operation, false);
operation = getOperation(extensionDeclaration, IGNORED_OPERATION);
assertThat(operation, is(nullValue()));
operation = getOperation(withOperationsDeclaration, GET_PAGED_PERSONAL_INFO_OPERATION);
assertThat(operation.getModelProperty(PagedOperationModelProperty.class).isPresent(), is(true));
assertThat(operation.getOutput().getType(), is(instanceOf(ArrayType.class)));
ArrayType outputType = (ArrayType) operation.getOutput().getType();
assertThat(outputType.getType(), is(TYPE_LOADER.load(PersonalInfo.class)));
assertConnected(operation, true);
assertTransactional(operation, false);
operation = getOperation(extensionDeclaration, PROCESS_INFO);
assertThat(operation, is(notNullValue()));
assertConnected(operation, false);
assertTransactional(operation, false);
assertParameter(operation.getAllParameters(), "sales", "", TYPE_LOADER.load(new TypeToken<Map<String, SaleInfo>>() {
}.getType()), true, SUPPORTED, null);
operation = getOperation(extensionDeclaration, PROCESS_WEAPON);
assertThat(operation, is(notNullValue()));
assertParameter(operation.getAllParameters(), "weapon", "", WEAPON_TYPE, false, SUPPORTED, null);
assertConnected(operation, false);
operation = getOperation(extensionDeclaration, PROCESS_WEAPON_LIST);
assertThat(operation, is(notNullValue()));
assertParameter(operation.getAllParameters(), "weapons", "", TYPE_LOADER.load(new TypeToken<List<Weapon>>() {
}.getType()), false, SUPPORTED, null);
assertConnected(operation, false);
assertTransactional(operation, false);
operation = getOperation(extensionDeclaration, PROCESS_WEAPON_WITH_DEFAULT_VALUE);
assertThat(operation, is(notNullValue()));
assertParameter(operation.getAllParameters(), "weapon", "", WEAPON_TYPE, false, SUPPORTED, PAYLOAD);
assertConnected(operation, false);
assertTransactional(operation, false);
operation = getOperation(extensionDeclaration, "processWeaponListWithDefaultValue");
assertThat(operation, is(notNullValue()));
assertParameter(operation.getAllParameters(), "weapons", "", TYPE_LOADER.load(new TypeToken<List<Weapon>>() {
}.getType()), false, SUPPORTED, PAYLOAD);
assertConnected(operation, false);
assertTransactional(operation, false);
operation = getOperation(extensionDeclaration, "processAddressBook");
assertThat(operation, is(notNullValue()));
assertParameter(operation.getAllParameters(), "phoneNumbers", "", TYPE_LOADER.load(new TypeToken<List<String>>() {
}.getType()), true, SUPPORTED, null);
assertConnected(operation, false);
assertTransactional(operation, false);
operation = getOperation(extensionDeclaration, FAIL_TO_EXECUTE);
assertThat(operation, is(notNullValue()));
assertThat(operation.getAllParameters(), is(empty()));
assertThat(operation.getOutput().getType(), is(instanceOf(VoidType.class)));
assertConnected(operation, false);
assertTransactional(operation, false);
operation = getOperation(extensionDeclaration, THROW_ERROR);
assertThat(operation, is(notNullValue()));
assertThat(operation.getAllParameters(), is(empty()));
assertThat(operation.getOutput().getType(), is(instanceOf(VoidType.class)));
assertConnected(operation, false);
assertTransactional(operation, false);
operation = getOperation(extensionDeclaration, BY_PASS_WEAPON);
assertThat(operation, is(notNullValue()));
assertParameter(operation.getAllParameters(), "awesomeWeapon", "", WEAPON_TYPE, true, SUPPORTED, null);
assertParameter(operation.getAllParameters(), "awesomeName", "", STRING_TYPE, true, SUPPORTED, null);
assertThat(operation.getOutput().getType(), is(instanceOf(ObjectType.class)));
assertConnected(operation, false);
assertTransactional(operation, false);
}
Aggregations