private Optional<ConfigurationModel> getConfigurationModel() { return extensionModel .getConfigurationModel(MODULE_CONFIG_GLOBAL_ELEMENT_NAME); }
mockConfigurationInstance(extension1ConfigurationModel, configInstance); when(extensionModel1.getConfigurationModel(EXTENSION1_CONFIG_NAME)).thenReturn(of(extension1ConfigurationModel)); when(extensionModel1.getOperationModel(EXTENSION1_OPERATION_NAME)).thenReturn(of(extension1OperationModel)); when(extension1OperationModel.getName()).thenReturn(EXTENSION1_OPERATION_NAME);
private ConfigurationModel getConfig(String name) { return extensionModel.getConfigurationModel(name).get(); }
private ConfigurationModel getConfigurationModel() { return getExtensionModel("Marvel") .map(extension -> extension.getConfigurationModel("dr-strange").get()) .get(); }
private Optional<ConfigurationModel> looForConfiguration(ComponentModel componentModel) { final ComponentIdentifier identifier = componentModel.getIdentifier(); return identifier.getNamespace().equals(extensionModel.getXmlDslModel().getPrefix()) ? extensionModel.getConfigurationModel(identifier.getName()) : empty(); }
@Test public void untesteableConnetionProvider() throws Exception { ConnectionProviderModel connectionProviderModel = veganExtension.getConfigurationModel(APPLE) .map(c -> c.getConnectionProviders().get(0)) .get(); assertThat(connectionProviderModel.supportsConnectivityTesting(), is(false)); }
@Parameterized.Parameters(name = "{1}") public static List<Object[]> parameters() { ExtensionModel extensionModel = loadExtension(OrderedExtension.class); List<Object[]> objects = new ArrayList<>(); objects.add(new Object[] {extensionModel.getOperationModel("implicitOrder").get(), "Operation - Implicit Order"}); objects.add(new Object[] {extensionModel.getOperationModel("explicitOrder").get(), "Operation - Explicit Order"}); objects.add(new Object[] {extensionModel.getOperationModel("mixedOrder").get(), "Operation - Mixed Order"}); objects.add(new Object[] {extensionModel.getConfigurationModel("ImplicitOrderConfig").get(), "Config - Implicit Order"}); objects.add(new Object[] {extensionModel.getConfigurationModel("ExplicitOrderConfig").get(), "Config - Explicit Order"}); objects.add(new Object[] {extensionModel.getConfigurationModel("MixedOrderConfig").get(), "Config - Mixed Order"}); objects.add(new Object[] {extensionModel.getConfigurationModel("InheritsOrderConfig").get(), "Config - Inherited Order"}); objects.add(new Object[] {extensionModel.getConnectionProviderModel("implicit").get(), "Conn Provider - Implicit Order"}); objects.add(new Object[] {extensionModel.getConnectionProviderModel("explicit").get(), "Conn Provider - Explicit Order"}); objects.add(new Object[] {extensionModel.getConnectionProviderModel("mixed").get(), "Conn Provider - Mixed Order"}); objects.add(new Object[] {extensionModel.getSourceModel("ImplicitSourceOrder").get(), "Source - Implicit Order"}); objects.add(new Object[] {extensionModel.getSourceModel("ExplicitSourceOrder").get(), "Source - Explicit Order"}); objects.add(new Object[] {extensionModel.getSourceModel("MixedSourceOrder").get(), "Source - Mixed Order"}); objects.add(new Object[] {extensionModel.getSourceModel("ExplicitSourceOrderWithCallbacks").get(), "Source - With Callbacks Explicit Order"}); objects.add(new Object[] {extensionModel.getSourceModel("MixedSourceOrderWithCallbacks").get(), "Source - With Callbacks Mixed Order"}); return objects; }
@Test public void testeableConnectionProvider() throws Exception { ConnectionProviderModel connectionProviderModel = veganExtension.getConfigurationModel(BANANA) .map(c -> c.getConnectionProviders().get(0)) .get(); assertThat(connectionProviderModel.supportsConnectivityTesting(), is(true)); }
@Test public void connectionProvider() { ConnectionProviderModel provider = extensionModel.getConfigurationModel(REQUESTER_CONFIG_NAME).get().getConnectionProviders().get(0); assertThat(provider.getName(), is(REQUESTER_PROVIDER)); } }
@Test public void defaultConfigStereotype() { StereotypeModel stereotypeModel = marvelExtension.getConfigurationModel(IronMan.CONFIG_NAME).get().getStereotype(); assertThat(stereotypeModel.isAssignableTo(CONFIG), is(true)); assertStereotype(stereotypeModel, MARVEL_NAMESPACE, "IRON_MAN", CONFIG); }
@Test public void defaultConnectionStereotype() { StereotypeModel stereotypeModel = marvelExtension.getConfigurationModel(DrStrange.CONFIG_NAME).get() .getConnectionProviderModel("mystic").get().getStereotype(); assertThat(stereotypeModel.isAssignableTo(CONNECTION), is(true)); assertStereotype(stereotypeModel, MARVEL_NAMESPACE, "MYSTIC", CONNECTION); }
@Test public void listenerConfig() { ConfigurationModel listener = extensionModel.getConfigurationModel(LISTENER_CONFIG_NAME).get(); assertThat(listener.getDescription(), is(LISTENER_CONFIG_DESCRIPTION)); assertThat(listener.getOperationModels(), is(empty())); assertThat(listener.getConnectionProviders(), is(empty())); assertThat(listener.getSourceModels(), hasSize(1)); }
@Test public void requesterConfig() { ConfigurationModel listener = extensionModel.getConfigurationModel(REQUESTER_CONFIG_NAME).get(); assertThat(listener.getDescription(), is(REQUESTER_CONFIG_DESCRIPTION)); assertThat(listener.getOperationModels(), hasSize(1)); assertThat(listener.getConnectionProviders(), hasSize(1)); assertThat(listener.getSourceModels(), is(empty())); }
@Test public void operationsWithConnectionsThrowsConnectivityError() { extensionModel = loadExtension(HeisenbergExtension.class); OperationModel callSaul = getNamedObject(extensionModel.getConfigurationModel("config").get().getOperationModels(), "callSaul"); Set<ErrorModel> errorTypesIdentifiers = callSaul.getErrorModels(); assertThat(errorTypesIdentifiers, hasItem(hasProperty(TYPE, is(CONNECTIVITY_ERROR_IDENTIFIER)))); }
@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 defaultSourceStereotype() { StereotypeModel stereotypeModel = marvelExtension.getConfigurationModel(DrStrange.CONFIG_NAME).get() .getSourceModel("bytes-caster").get().getStereotype(); assertThat(stereotypeModel.isAssignableTo(SOURCE), is(true)); StereotypeModel expectedParent = newStereotype(SOURCE.getType(), MARVEL_NAMESPACE).withParent(SOURCE).build(); assertStereotype(stereotypeModel, MARVEL_NAMESPACE, "BYTES-CASTER", expectedParent); }
@Test public void nonBlockingExecutionType() { ExtensionModel extensionModel = loadExtension(MarvelExtension.class); OperationModel operation = extensionModel.getConfigurationModel(CONFIG_NAME).get().getOperationModel("fireMissile").get(); assertThat(operation.isBlocking(), is(false)); assertThat(operation.getExecutionType(), is(CPU_LITE)); assertThat(operation.getOutput().getType(), instanceOf(StringType.class)); assertThat(operation.getOutputAttributes().getType(), equalTo(typeLoader.load(void.class))); }
@Test public void requestOperation() { OperationModel operation = extensionModel.getConfigurationModel(REQUESTER_CONFIG_NAME).get().getOperationModel(REQUEST_OPERATION_NAME).get(); assertThat(operation.getName(), is(REQUEST_OPERATION_NAME)); assertType(operation.getOutput().getType(), InputStream.class, BinaryType.class); List<ParameterModel> parameterModels = operation.getAllParameterModels(); assertThat(parameterModels, hasSize(5)); assertConfigRefParam(parameterModels.get(0)); assertStreamingStrategyParameter(parameterModels.get(1)); ParameterModel path = parameterModels.get(2); assertThat(path.getName(), is(PATH)); assertType(path.getType(), String.class, StringType.class); assertTargetParameter(parameterModels.get(3), parameterModels.get(4)); }
@Test public void listenerSource() { ConfigurationModel configurationModel = extensionModel.getConfigurationModel(LISTENER_CONFIG_NAME).get(); SourceModel source = configurationModel.getSourceModel(LISTEN_MESSAGE_SOURCE).get(); assertType(source.getOutput().getType(), InputStream.class, BinaryType.class); assertType(source.getOutputAttributes().getType(), Serializable.class, ObjectType.class); List<ParameterModel> parameters = source.getAllParameterModels(); assertThat(parameters, hasSize(3)); assertConfigRefParam(parameters.get(0)); assertStreamingStrategyParameter(parameters.get(1)); ParameterModel port = parameters.get(2); assertThat(port.getName(), is(PORT)); assertThat(port.isRequired(), is(false)); assertType(port.getType(), Integer.class, NumberType.class); }
@Test public void flyweight() { final ConfigurationModel appleConfiguration = aggressiveGet(veganExtension.getConfigurationModel(APPLE)); final ConfigurationModel bananaConfiguration = aggressiveGet(veganExtension.getConfigurationModel(BANANA)); final String sourceName = PaulMcCartneySource.class.getSimpleName(); SourceModel appleSource = aggressiveGet(appleConfiguration.getSourceModel(sourceName)); SourceModel bananaSource = aggressiveGet(bananaConfiguration.getSourceModel(sourceName)); assertThat(appleSource, is(sameInstance(appleSource))); assertThat(bananaSource, is(sameInstance(bananaSource))); final String operationName = "spreadTheWord"; OperationModel appleOperation = aggressiveGet(appleConfiguration.getOperationModel(operationName)); OperationModel bananaOperation = aggressiveGet(bananaConfiguration.getOperationModel(operationName)); assertThat(appleOperation, is(sameInstance(bananaOperation))); }