@Override public String getName() { return exprExecutor.getName(); } };
@Before public void before() { genericExpressionLanguageService = mock(DefaultExpressionLanguageFactoryService.class); when(genericExpressionLanguageService.create(any())).thenReturn(genericExpressionLanguage); }
cachedExprLanguageFactoryCounter = 0; final DefaultExpressionLanguageFactoryService exprExecutor = new WeaveDefaultExpressionLanguageFactoryService(null); ExpressionLanguage exprLanguage = exprExecutor.create(); registry.registerObject(cachedExprLanguageFactory.getName(), cachedExprLanguageFactory);
@Override protected Map<String, Object> getStartUpRegistryObjects() { Map<String, Object> objects = new HashMap<>(); DefaultExpressionLanguageFactoryService weaveExpressionExecutor = new WeaveDefaultExpressionLanguageFactoryService(null); objects.put(weaveExpressionExecutor.getName(), weaveExpressionExecutor); objects.put(KEY, new TestGlobalBindingContextProvider()); return objects; }
@Test public void managedCursor() throws Exception { final DefaultExpressionLanguageFactoryService mockFactory = mock(DefaultExpressionLanguageFactoryService.class, RETURNS_DEEP_STUBS); final ExpressionLanguage expressionLanguage = mock(ExpressionLanguage.class, RETURNS_DEEP_STUBS); final CursorProvider cursorProvider = mock(CursorProvider.class); Registry registry = mock(Registry.class); when(registry.lookupByType(DefaultExpressionLanguageFactoryService.class)).thenReturn(of(mockFactory)); when(registry.lookupByName(OBJECT_EXPRESSION_LANGUAGE)) .thenReturn(of(mock(MVELExpressionLanguage.class, RETURNS_DEEP_STUBS))); when(registry.lookupByName(COMPATIBILITY_PLUGIN_INSTALLED)).thenReturn(empty()); TypedValue value = new TypedValue(cursorProvider, BYTE_ARRAY); when(expressionLanguage.evaluate(anyString(), any())).thenReturn(value); when(expressionLanguage.evaluate(anyString(), any(), any())).thenReturn(value); when(mockFactory.create(any())).thenReturn(expressionLanguage); expressionManager = new DefaultExpressionManager(); ((DefaultExpressionManager) expressionManager).setRegistry(registry); ((DefaultExpressionManager) expressionManager).setStreamingManager(streamingManager); initialiseIfNeeded(expressionManager, false, muleContext); final CoreEvent event = testEvent(); when(streamingManager.manage(cursorProvider, event.getContext())).thenReturn(cursorProvider); expressionManager.evaluate("someExpression", event); verify(streamingManager).manage(cursorProvider, event.getContext()); }
@Override protected void doConfigure(MuleContext muleContext) throws Exception { new SpiServiceRegistry().lookupProviders(Service.class, BasicRuntimeServicesConfigurationBuilder.class.getClassLoader()) .forEach(service -> { try { startIfNeeded(service); registerObject(muleContext, service.getName(), service); } catch (MuleException e) { throw new MuleRuntimeException(e); } }); DefaultExpressionLanguageFactoryService weaveExpressionExecutor = new WeaveDefaultExpressionLanguageFactoryService(null); registerObject(muleContext, weaveExpressionExecutor.getName(), weaveExpressionExecutor); } }
@Inject public DataWeaveExpressionLanguageAdaptor(MuleContext muleContext, Registry registry, DefaultExpressionLanguageFactoryService service) { this.expressionExecutor = service.create(); this.muleContext = muleContext; registerGlobalBindings(registry); }
@Override public String getName() { return exprExecutor.getName(); } };
@Test public void payloadExpressionShouldNotBeEvaluate() throws MuleException { BindingContext bindingContext = BindingContext.builder().build(); MuleContext muleContext = mock(MuleContext.class); DefaultExpressionLanguageFactoryService languageFactory = mock(DefaultExpressionLanguageFactoryService.class); ExpressionLanguage expressionLanguage = spy(ExpressionLanguage.class); when(languageFactory.create()).thenReturn(expressionLanguage); CoreEvent event = testEvent(); new DataWeaveExpressionLanguageAdaptor(muleContext, registry, languageFactory).evaluate("#[payload]", event, bindingContext); verify(expressionLanguage, never()).evaluate(eq("payload"), any(BindingContext.class)); }
@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; }
@Test public void managedCursor() throws Exception { final DefaultExpressionLanguageFactoryService mockFactory = mock(DefaultExpressionLanguageFactoryService.class, RETURNS_DEEP_STUBS); final ExpressionLanguage expressionLanguage = mock(ExpressionLanguage.class, RETURNS_DEEP_STUBS); final CursorProvider cursorProvider = mock(CursorProvider.class); Registry registry = mock(Registry.class); when(registry.lookupByType(DefaultExpressionLanguageFactoryService.class)).thenReturn(of(mockFactory)); when(registry.lookupByName(OBJECT_EXPRESSION_LANGUAGE)) .thenReturn(of(mock(MVELExpressionLanguage.class, RETURNS_DEEP_STUBS))); when(registry.lookupByName(COMPATIBILITY_PLUGIN_INSTALLED)).thenReturn(empty()); TypedValue value = new TypedValue(cursorProvider, BYTE_ARRAY); when(expressionLanguage.evaluate(anyString(), any())).thenReturn(value); when(expressionLanguage.evaluate(anyString(), any(), any())).thenReturn(value); when(mockFactory.create()).thenReturn(expressionLanguage); expressionManager = new DefaultExpressionManager(); ((DefaultExpressionManager) expressionManager).setRegistry(registry); ((DefaultExpressionManager) expressionManager).setStreamingManager(streamingManager); initialiseIfNeeded(expressionManager, false, muleContext); final CoreEvent event = testEvent(); when(streamingManager.manage(cursorProvider, event)).thenReturn(cursorProvider); expressionManager.evaluate("someExpression", event); verify(streamingManager).manage(cursorProvider, event); }
@Override protected void doConfigure(MuleContext muleContext) throws Exception { new SpiServiceRegistry().lookupProviders(Service.class, BasicRuntimeServicesConfigurationBuilder.class.getClassLoader()) .forEach(service -> { try { startIfNeeded(service); registerObject(muleContext, service.getName(), service); } catch (MuleException e) { throw new MuleRuntimeException(e); } }); DefaultExpressionLanguageFactoryService weaveExpressionExecutor = new WeaveDefaultExpressionLanguageFactoryService(); registerObject(muleContext, weaveExpressionExecutor.getName(), weaveExpressionExecutor); } }
@Override protected void doConfigure(MuleContext muleContext) throws Exception { MuleRegistry registry = muleContext.getRegistry(); new SpiServiceRegistry().lookupProviders(Service.class, BasicRuntimeServicesConfigurationBuilder.class.getClassLoader()) .forEach(service -> { try { startIfNeeded(service); registry.registerObject(service.getName(), service); } catch (MuleException e) { throw new MuleRuntimeException(e); } }); DefaultExpressionLanguageFactoryService weaveExpressionExecutor = new WeaveDefaultExpressionLanguageFactoryService(); registry.registerObject(weaveExpressionExecutor.getName(), weaveExpressionExecutor); } }