use of io.qameta.allure.Description in project mule by mulesoft.
the class ExtendedExpressionLanguageAdapterTestCase method enrichTypedValueCompatibility.
@Test
@Description("Verifies that enrichment using a TypedValue only works for MVEL.")
public void enrichTypedValueCompatibility() throws MuleException {
CoreEvent event = testEvent();
CoreEvent.Builder builder = builder(event);
TypedValue myPayload = new TypedValue("myPayload", STRING);
String expression = "payload";
expressionLanguageAdapter.enrich(melify(expression), event, builder, TEST_CONNECTOR_LOCATION, myPayload);
CoreEvent enrichedEvent = builder.build();
assertThat(enrichedEvent.getMessage().getPayload().getValue(), is(myPayload.getValue()));
assertThat(enrichedEvent.getMessage().getPayload().getDataType(), is(myPayload.getDataType()));
expectedException.expect(UnsupportedOperationException.class);
expressionLanguageAdapter.enrich(expression, event, builder, TEST_CONNECTOR_LOCATION, myPayload);
}
use of io.qameta.allure.Description in project mule by mulesoft.
the class ExtendedExpressionLanguageAdapterTestCase method globalContext.
@Test
@Description("Verifies that global binding context only work for DW.")
public void globalContext() throws Exception {
ExpressionFunction expressionFunction = new ExpressionFunction() {
private DataType dataType = STRING;
@Override
public Object call(Object[] objects, BindingContext bindingContext) {
return ((String) objects[0]).toUpperCase();
}
@Override
public Optional<DataType> returnType() {
return Optional.of(dataType);
}
@Override
public List<FunctionParameter> parameters() {
return asList(new FunctionParameter("x", dataType));
}
};
String global = "global";
String value = "var";
BindingContext context = BindingContext.builder().addBinding(global, new TypedValue(value, STRING)).addBinding("upper", new TypedValue(expressionFunction, fromFunction(expressionFunction))).build();
expressionLanguageAdapter.addGlobalBindings(context);
assertThat(expressionLanguageAdapter.evaluate(global, testEvent(), emptyBindingContext).getValue(), is(value));
assertThat(expressionLanguageAdapter.evaluate("upper('hey')", testEvent(), emptyBindingContext).getValue(), is("HEY"));
assertThat(expressionLanguageAdapter.evaluate(melify(global), testEvent(), context).getValue(), is(value));
expectedException.expect(ExpressionRuntimeException.class);
expressionLanguageAdapter.evaluate(melify(global), testEvent(), emptyBindingContext);
}
use of io.qameta.allure.Description in project mule by mulesoft.
the class ExtendedExpressionLanguageAdapterTestCase method flowNameVariable.
@Test
@Description("Verifies that the Flow name variable works for MVEL and DW.")
public void flowNameVariable() throws MuleException {
String expression = "flow.name";
String myFlowName = "myFlowName";
TypedValue mvelResult = expressionLanguageAdapter.evaluate(melify(expression), testEvent(), fromSingleComponent(myFlowName), emptyBindingContext);
assertThat(mvelResult.getValue(), is(myFlowName));
TypedValue dwResult = expressionLanguageAdapter.evaluate(expression, testEvent(), fromSingleComponent(myFlowName), emptyBindingContext);
assertThat(dwResult.getValue(), is(myFlowName));
}
use of io.qameta.allure.Description in project mule by mulesoft.
the class ExtendedExpressionLanguageAdapterTestCase method enrichObjectCompatibility.
@Test
@Description("Verifies that enrichment using an Object only works for MVEL.")
public void enrichObjectCompatibility() throws MuleException {
CoreEvent event = testEvent();
CoreEvent.Builder builder = builder(event);
String myPayload = "myPayload";
String expression = "payload";
expressionLanguageAdapter.enrich(melify(expression), event, builder, TEST_CONNECTOR_LOCATION, myPayload);
assertThat(builder.build().getMessage().getPayload().getValue(), is(myPayload));
expectedException.expect(UnsupportedOperationException.class);
expressionLanguageAdapter.enrich(expression, event, builder, TEST_CONNECTOR_LOCATION, myPayload);
}
use of io.qameta.allure.Description in project mule by mulesoft.
the class DefaultExpressionManagerMelDefaultTestCase method flowName.
@Test
@Description("Verifies that the flow variable exposing it's name works.")
public void flowName() throws MuleException {
FlowConstruct mockFlowConstruct = mock(FlowConstruct.class);
when(mockFlowConstruct.getName()).thenReturn("myFlowName");
String result = (String) expressionManager.evaluate("#[flow.name]", testEvent(), fromSingleComponent(mockFlowConstruct.getName())).getValue();
assertThat(result, is(mockFlowConstruct.getName()));
}
Aggregations