@Test public void updatesEncodingOnTransformation() throws Exception { Message message = Message.builder().value(TEST_PAYLOAD).mediaType(APPLICATION_XML_DEFAULT).build(); Transformer transformer = mock(Transformer.class); when(transformer.isSourceDataTypeSupported(any())).thenReturn(true); DataType outputDataType = DataType.builder().type(Integer.class).charset(CUSTOM_ENCODING).build(); when(transformer.getReturnDataType()).thenReturn(outputDataType); when(transformer.transform(anyObject())).thenReturn(Integer.valueOf(1)); CoreEvent muleEvent = mock(CoreEvent.class); Message result = transformationService.applyTransformers(message, muleEvent, singletonList(transformer)); assertDataType(result, Integer.class, APPLICATION_XML, CUSTOM_ENCODING); }
@Test public void updatesMimeTypeOnTransformation() throws Exception { Message message = Message.builder().value(TEST_PAYLOAD).mediaType(ANY.withCharset(CUSTOM_ENCODING)).build(); Transformer transformer = mock(Transformer.class); when(transformer.isSourceDataTypeSupported(any())).thenReturn(true); DataType outputDataType = DataType.builder().type(Integer.class).mediaType(APPLICATION_XML).build(); when(transformer.getReturnDataType()).thenReturn(outputDataType); when(transformer.transform(any(Message.class))).thenReturn(1); CoreEvent muleEvent = mock(CoreEvent.class); Message result = transformationService.applyTransformers(message, muleEvent, singletonList(transformer)); assertDataType(result, Integer.class, APPLICATION_XML, CUSTOM_ENCODING); }
@Test public void createNewMessageViaMessageInterface() { Message message = Message.builder().value(TEST_PAYLOAD).build(); assertThat(message.getPayload().getValue(), is(TEST_PAYLOAD)); assertThat(message.getPayload().getDataType(), is(STRING)); assertThat(message.getAttributes().getValue(), is(nullValue())); }
@Test public void entrySetFunction() throws Exception { final String key = "foo"; final String value = "bar"; CoreEvent event = eventBuilder(muleContext).message(Message.builder().value(singletonMap(key, value)).build()).build(); TypedValue result = expressionLanguage.evaluate("dw::core::Objects::entrySet(payload)", event, BindingContext.builder().build()); assertThat(result.getValue(), instanceOf(List.class)); assertThat(((List) result.getValue()).get(0), instanceOf(Map.class)); Map entry = (Map) ((List) result.getValue()).get(0); assertThat(entry.get("key"), equalTo(key)); assertThat(entry.get("value"), equalTo(value)); }
private CoreEvent createEvent(Object payload, OAuthConfig config, Flow flow) { return CoreEvent.builder(create(flow, fromSingleComponent(config.getOwnerConfigName()))) .message(Message.builder().value(payload).build()).build(); }
@Test public void maintainsDataTypeOnGetPayloadTransformation() throws Exception { InputStream payload = mock(InputStream.class); Message message = Message.builder().value(payload).mediaType(APPLICATION_XML_CUSTOM).build(); MuleRegistry muleRegistry = mock(MuleRegistry.class); when(muleContext.getRegistry()).thenReturn(muleRegistry); Transformer transformer = mock(Transformer.class); when(transformer.transform(anyObject(), anyObject())).thenReturn(TEST_PAYLOAD); when(muleRegistry.lookupTransformer(any(), any())).thenReturn(transformer); assertThat(message.getPayload().getDataType().getMediaType().getPrimaryType(), equalTo(APPLICATION_XML.getPrimaryType())); assertThat(message.getPayload().getDataType().getMediaType().getSubType(), equalTo(APPLICATION_XML.getSubType())); assertThat(message.getPayload().getDataType().getMediaType().getCharset().get(), equalTo(CUSTOM_ENCODING)); }
@Test public void expectedOutputShouldBeUsed() throws Exception { CoreEvent jsonMessage = eventBuilder(muleContext).message(Message.builder().value("{\"student\": false}").mediaType(APPLICATION_JSON).build()) .build(); TypedValue result = expressionLanguage.evaluate("payload.student", BOOLEAN, jsonMessage, BindingContext.builder().build()); assertThat(result.getValue(), is(false)); }
private CoreEvent newEvent(Object payload, MediaType applicationJson) throws MuleException { return CoreEvent.builder(this.<CoreEvent>newEvent()) .message(Message.builder() .value(payload) .mediaType(applicationJson) .build()) .build(); }
@Benchmark @Threads(Threads.MAX) public CoreEvent source() { CoreEvent event; Message.Builder messageBuilder = Message.builder().value(PAYLOAD); CoreEvent.Builder eventBuilder = CoreEvent.builder(create("", "", CONNECTOR_LOCATION, NullExceptionHandler.getInstance())).message(messageBuilder.build()); event = eventBuilder.build(); return from(handler.process(event, (params, e) -> just(e), () -> emptyMap(), CONNECTOR_LOCATION)).block(); }
@Test public void updatesTypeOnTransformation() throws Exception { Message message = Message.builder().value(1).mediaType(APPLICATION_XML_DEFAULT).build(); Transformer transformer = mock(Transformer.class); when(transformer.isSourceDataTypeSupported(any())).thenReturn(true); DataType outputDataType = DataType.builder().type(Integer.class).mediaType(ANY).charset(DEFAULT_ENCODING).build(); when(transformer.getReturnDataType()).thenReturn(outputDataType); when(transformer.transform(anyObject())).thenReturn(1); CoreEvent muleEvent = mock(CoreEvent.class); Message result = transformationService.applyTransformers(message, muleEvent, singletonList(transformer)); assertDataType(result, Integer.class, APPLICATION_XML, DEFAULT_ENCODING); }
@Test public void setsDataTypeFromPreviousMessageOnCreation() throws Exception { Message message = Message.builder().value(1).mediaType(APPLICATION_XML_CUSTOM).build(); assertDataType(InternalMessage.builder(message).build(), message.getPayload().getDataType()); }
private BiConsumer<AuthorizationCodeDanceCallbackContext, ResourceOwnerOAuthContext> afterCallback(OAuthConfig config, Flow flow) { return (callbackContext, oauthContext) -> { AuthorizationCodeState state = toAuthorizationCodeState(config, oauthContext); CoreEvent event = (CoreEvent) callbackContext.getParameter(DANCE_CALLBACK_EVENT_KEY) .orElseGet(() -> createEvent(state, config, flow)); event = CoreEvent.builder(event).message(Message.builder().value(state).build()).build(); runFlow(flow, event, config, "after"); }; }
@Benchmark @Threads(Threads.MAX) public Either<SourcePolicyFailureResult, SourcePolicySuccessResult> source() { CoreEvent event; Message.Builder messageBuilder = Message.builder().value(PAYLOAD); CoreEvent.Builder eventBuilder = CoreEvent.builder(create("", "", CONNECTOR_LOCATION, NullExceptionHandler.getInstance())).message(messageBuilder.build()); event = eventBuilder.build(); return from(handler.process(event, sourceRpp)).block(); }
@Test public void overridesDataTypeFromPreviousMessageOnCreation() throws Exception { Message message = Message.builder().value(1).mediaType(APPLICATION_XML_CUSTOM).build(); assertDataType(InternalMessage.builder(message).value("TEST").build(), String.class, APPLICATION_XML, CUSTOM_ENCODING); }
@Benchmark @Threads(Threads.MAX) public Either<SourcePolicyFailureResult, SourcePolicySuccessResult> source() { CoreEvent event; Message.Builder messageBuilder = Message.builder().value(PAYLOAD); CoreEvent.Builder eventBuilder = CoreEvent.builder(create("", "", CONNECTOR_LOCATION, NullExceptionHandler.getInstance())).message(messageBuilder.build()); event = eventBuilder.build(); return from(handler.process(event, sourceRpp)).block(); }
@Test public void operationReturnsOperationResultThatOnlySpecifiesPayload() throws Exception { Object payload = "hello world!"; when(operationExecutor.execute(any(ExecutionContext.class))).thenReturn(just(builder().output(payload).build())); event = CoreEvent.builder(event).message(Message.builder().value("").attributesValue(mock(Object.class)).build()).build(); Message message = messageProcessor.process(event).getMessage(); assertThat(message, is(notNullValue())); assertThat(message.getPayload().getValue(), is(sameInstance(payload))); assertThat(message.getAttributes().getValue(), is(nullValue())); assertThat(message.getPayload().getDataType().getType().equals(String.class), is(true)); }
@Test public void usesCustomEncodingWithNoProperty() throws Exception { Message message = Message.builder().value(TEST_PAYLOAD).mediaType(ANY.withCharset(CUSTOM_ENCODING)).build(); assertThat(message.getPayload().getDataType().getMediaType().getCharset().get(), equalTo(CUSTOM_ENCODING)); assertCustomEncoding(message); }
@Setup public void setup() throws Exception { muleContext = createMuleContextWithServices(); muleContext.start(); flow = createFlow(muleContext); registerObject(muleContext, FLOW_NAME, flow, FlowConstruct.class); Message.Builder messageBuilder = Message.builder().value(PAYLOAD); CoreEvent.Builder eventBuilder = CoreEvent.builder(create(flow, CONNECTOR_LOCATION)).message(messageBuilder.build()); event = eventBuilder.build(); }
@Before public void before() throws MuleException { expressionManager = muleContext.getExpressionManager(); event = eventBuilder(muleContext).message(Message.builder().value("").attributesValue(attributes).build()).build(); when(operationContext.getEvent()).thenReturn(event); when(operationContext.getMuleContext()).thenReturn(muleContext); when(componentModel.getModelProperty(MediaTypeModelProperty.class)).thenReturn(empty()); }
@Test public void createAPIMessageViaMessageInterfaceFromCopy() { org.mule.runtime.api.message.Message message; message = org.mule.runtime.api.message.Message.builder().value(TEST_PAYLOAD).build(); org.mule.runtime.api.message.Message messageCopy; messageCopy = org.mule.runtime.api.message.Message.builder(message).value(true).attributesValue(BASE_ATTRIBUTES).build(); assertThat(messageCopy.getPayload().getValue(), is(true)); assertThat(messageCopy.getPayload().getDataType(), is(BOOLEAN)); assertThat(messageCopy.getAttributes().getValue(), is(BASE_ATTRIBUTES)); assertThat(messageCopy.getAttributes().getDataType(), is(BASE_ATTRIBUTES_DATATYPE)); }