use of org.mule.weave.v2.el.WeaveDefaultExpressionLanguageFactoryService in project mule by mulesoft.
the class GlobalBindingContextProviderTestCase method getStartUpRegistryObjects.
@Override
protected Map<String, Object> getStartUpRegistryObjects() {
Map<String, Object> objects = new HashMap<>();
DefaultExpressionLanguageFactoryService weaveExpressionExecutor = new WeaveDefaultExpressionLanguageFactoryService();
objects.put(weaveExpressionExecutor.getName(), weaveExpressionExecutor);
objects.put(KEY, new TestGlobalBindingContextProvider());
return objects;
}
use of org.mule.weave.v2.el.WeaveDefaultExpressionLanguageFactoryService in project mule by mulesoft.
the class AbstractWeaveExpressionLanguageTestCase method setUp.
@Before
public void setUp() {
weaveExpressionExecutor = new WeaveDefaultExpressionLanguageFactoryService();
when(registry.lookupByType(DefaultExpressionLanguageFactoryService.class)).thenReturn(of(weaveExpressionExecutor));
expressionLanguage = DataWeaveExpressionLanguageAdaptor.create(muleContext, registry);
}
use of org.mule.weave.v2.el.WeaveDefaultExpressionLanguageFactoryService in project mule by mulesoft.
the class IdempotentMessageValidatorTestCase method testIdCheckWithHash.
@Test
public void testIdCheckWithHash() throws Exception {
String dwHashExpression = "%dw 2.0\n" + "output text/plain\n" + "import dw::Crypto\n" + "---\n" + "Crypto::hashWith(payload,'SHA-256')";
String payload = "payload to be hashed";
final BaseEventContext context = mock(BaseEventContext.class);
when(context.getCorrelationId()).thenReturn("1");
Message message = of(payload);
CoreEvent event = CoreEvent.builder(context).message(message).build();
// Set DW expression to hash value
idempotent.setIdExpression(dwHashExpression);
// Evaluate DW expression outside MessageValidator
ExpressionLanguageAdaptor expressionLanguageAdaptor = new DataWeaveExpressionLanguageAdaptor(muleContext, mock(Registry.class), new WeaveDefaultExpressionLanguageFactoryService());
TypedValue hashedValue = expressionLanguageAdaptor.evaluate(dwHashExpression, event, NULL_BINDING_CONTEXT);
// This one will process the event on the target endpoint
CoreEvent processedEvent = idempotent.process(event);
assertNotNull(processedEvent);
assertEquals(idempotent.getObjectStore().retrieve(IOUtils.toString((ByteArrayBasedCursorStreamProvider) hashedValue.getValue())), "1");
// This will not process, because the message is a duplicate
message = of(payload);
event = CoreEvent.builder(context).message(message).build();
expected.expect(ValidationException.class);
processedEvent = idempotent.process(event);
}
use of org.mule.weave.v2.el.WeaveDefaultExpressionLanguageFactoryService in project mule by mulesoft.
the class IdempotentMessageValidatorTestCase method differentIdsShouldBeStored.
@Test
public void differentIdsShouldBeStored() throws Exception {
String dwHashExpression = "%dw 2.0\n" + "output text/plain\n" + "import dw::Crypto\n" + "---\n" + "Crypto::SHA1(payload)";
String payload = "payload to be hashed";
String otherPayload = "this is another payload to be hashed";
final BaseEventContext context = mock(BaseEventContext.class);
when(context.getCorrelationId()).thenReturn("1");
Message message = of(payload);
CoreEvent event = CoreEvent.builder(context).message(message).build();
// Set DW expression to hash value
idempotent.setIdExpression(dwHashExpression);
// Evaluate DW expression outside MessageValidator
ExpressionLanguageAdaptor expressionLanguageAdaptor = new DataWeaveExpressionLanguageAdaptor(muleContext, mock(Registry.class), new WeaveDefaultExpressionLanguageFactoryService());
TypedValue hashedValue = expressionLanguageAdaptor.evaluate(dwHashExpression, event, NULL_BINDING_CONTEXT);
// This one will process the event on the target endpoint
CoreEvent processedEvent = idempotent.process(event);
assertNotNull(processedEvent);
assertEquals(idempotent.getObjectStore().retrieve(IOUtils.toString((ByteArrayBasedCursorStreamProvider) hashedValue.getValue())), "1");
// This will process, because the message is a new one
Message otherMessage = of(otherPayload);
event = CoreEvent.builder(context).message(otherMessage).build();
processedEvent = idempotent.process(event);
assertNotNull(processedEvent);
}
use of org.mule.weave.v2.el.WeaveDefaultExpressionLanguageFactoryService in project mule by mulesoft.
the class OperationMessageProcessorTestCase method operationWithoutExpressionInTargetValueParameter.
@Test
public void operationWithoutExpressionInTargetValueParameter() throws Exception {
String flowName = "flowName";
expectedException.expect(IllegalOperationException.class);
expectedException.expectMessage(format(INVALID_TARGET_MESSAGE, flowName, operationModel.getName(), "something that is not an expression", TARGET_VALUE_PARAMETER_NAME));
target = TARGET_VAR;
targetValue = TARGET_VAR;
messageProcessor = createOperationMessageProcessor();
when(context.getRegistry().lookupObject(OBJECT_EXPRESSION_LANGUAGE)).thenReturn(new MVELExpressionLanguage(context));
when(context.getRegistry().lookupObject(DefaultExpressionLanguageFactoryService.class)).thenReturn(new WeaveDefaultExpressionLanguageFactoryService());
doReturn(new DefaultExpressionManager()).when(context).getExpressionManager();
FlowConstruct flowConstruct = mock(FlowConstruct.class);
when(flowConstruct.getName()).thenReturn(flowName);
messageProcessor.setMuleContext(context);
messageProcessor.initialise();
}
Aggregations