@Override public ValueResolver<Object> parse(String key, MetadataType metadataType, DslElementSyntax elementDsl) { return new StaticValueResolver<>(DataType.builder().mediaType(key).build().getMediaType()); } }
@Test public void acceptsValidMimeType() throws Exception { DataType dataType = DataType.builder().mediaType(JSON).build(); assertThat(dataType.getMediaType(), equalTo(JSON)); }
@Test(expected = IllegalArgumentException.class) public void rejectsValidMimeType() throws Exception { DataType.builder().mediaType("invalidMimeType").build(); } }
protected CoreEvent configureEvent() throws Exception { when(message.getPayload()) .thenReturn(new TypedValue<>(TEST_PAYLOAD, DataType.builder().mediaType(MediaType.create("*", "*", defaultCharset())).build())); when(message.getAttributes()) .thenReturn(new TypedValue<>(null, DataType.builder().fromObject(null).build())); return eventBuilder(muleContext).message(message).build(); }
@Test public void invalidMimeType() { expected.expect(IllegalArgumentException.class); final DataType dataType = DataType.builder().mediaType("imInvalid").build(); }
@Test public void mimeTypeWithEncoding() { final DataType dataType = DataType.builder().mediaType("text/plain;charset=ASCII").build(); assertThat(dataType.getMediaType().getPrimaryType(), is("text")); assertThat(dataType.getMediaType().getSubType(), is("plain")); assertThat(dataType.getMediaType().getCharset().get(), is(US_ASCII)); }
@Test public void testAddVariableWithMimeType() throws MimeTypeParseException, MuleException { addVariableProcessor.setIdentifier(PLAIN_STRING_KEY); addVariableProcessor.setValue(PLAIN_STRING_VALUE); addVariableProcessor.initialise(); addVariableProcessor.setReturnDataType(DataType.builder().mediaType(APPLICATION_XML).build()); event = addVariableProcessor.process(event); verifyAdded(event, PLAIN_STRING_KEY, PLAIN_STRING_VALUE); assertThat(getVariableDataType(event, PLAIN_STRING_KEY), like(String.class, APPLICATION_XML, getDefaultEncoding(mockMuleContext))); }
@Test public void setsCustomPropertyDataType() throws Exception { MediaType mediaType = APPLICATION_XML_CUSTOM; InternalMessage message = InternalMessage.builder().value(TEST_PAYLOAD) .addOutboundProperty(TEST_PROPERTY, TEST_PAYLOAD, mediaType).build(); assertOutboundPropertyDataType(message, DataType.builder(STRING).mediaType(mediaType).build()); }
@Override public DataTypeMapTypeBuilder valueMediaType(String valueMediaType) { validateAlreadyBuilt(); valueTypeBuilder.mediaType(valueMediaType); return this; }
@Override public DataTypeCollectionTypeBuilder itemMediaType(String itemMimeType) { validateAlreadyBuilt(); itemTypeBuilder.mediaType(itemMimeType); return this; }
@Override public DataTypeCollectionTypeBuilder itemMediaType(MediaType itemMediaType) { validateAlreadyBuilt(); itemTypeBuilder.mediaType(itemMediaType); return this; }
@Override public DataTypeMapTypeBuilder keyMediaType(MediaType keyMediaType) { validateAlreadyBuilt(); keyTypeBuilder.mediaType(keyMediaType); return this; }
@Test public void setsCustomMimeType() throws MuleException { setPayloadMessageProcessor.setValue(PLAIN_TEXT); setPayloadMessageProcessor.setDataType(DataType.builder().mediaType(MediaType.APPLICATION_XML).build()); setPayloadMessageProcessor.initialise(); CoreEvent response = setPayloadMessageProcessor.process(testEvent()); assertThat(response.getMessage().getPayload().getDataType(), like(String.class, MediaType.APPLICATION_XML, null)); } }
private Map<String, TypedValue<String>> wrapHeaders(Map<String, String> headers) { ImmutableMap.Builder<String, TypedValue<String>> wrapped = ImmutableMap.builder(); headers.forEach((k, v) -> wrapped.put(k, new TypedValue(v, builder().mediaType(APPLICATION_XML).build()))); return wrapped.build(); }
@Override public InternalMessage.CollectionBuilder mediaType(MediaType mediaType) { this.payload = new TypedValue<>(payload.getValue(), builder(payload.getDataType()).mediaType(mediaType).build(), payload.getLength()); return this; }
@Override public InternalMessage.CollectionBuilder attributesMediaType(MediaType mediaType) { this.attributes = new TypedValue<>(attributes.getValue(), builder(attributes.getDataType()).mediaType(mediaType).build(), attributes.getLength()); return this; }
private MediaType mergeMediaType(Message message, DataType transformed) { DataType original = message.getPayload().getDataType(); MediaType mimeType = ANY.matches(transformed.getMediaType()) ? original.getMediaType() : transformed.getMediaType(); Charset encoding = transformed.getMediaType().getCharset() .orElse(message.getPayload().getDataType().getMediaType().getCharset().orElse(getDefaultEncoding(muleContext))); return DataType.builder().mediaType(mimeType).charset(encoding).build().getMediaType(); }
@Test public void invalidMimeType() { expected.expect(IllegalArgumentException.class); final DataType dataType = DataType.builder().mediaType("imInvalid").build(); }
protected OutboundEndpoint createOutboundEndpoint(EndpointURI endpointURI, List<Processor> messageProcessors, List<Processor> responseMessageProcessors, Connector connector) { return new DefaultOutboundEndpoint(connector, endpointURI, getName(endpointURI), getProperties(), getTransactionConfig(), getDefaultDeleteUnacceptedMessages(connector), messageExchangePattern, getResponseTimeout(connector), getInitialState(connector), getEndpointEncoding(connector), name, muleContext, getRetryPolicyTemplate(connector), getRedeliveryPolicy(), responsePropertiesList, getMessageProcessorsFactory(), messageProcessors, responseMessageProcessors, isDisableTransportTransformer(), mimeType != null ? DataType.builder().mediaType(mimeType).build().getMediaType() : null); }
@Test public void setsCustomMimeType() throws MuleException { setPayloadMessageProcessor.setValue(PLAIN_TEXT); setPayloadMessageProcessor.setDataType(DataType.builder().mediaType(MediaType.APPLICATION_XML).build()); setPayloadMessageProcessor.initialise(); CoreEvent response = setPayloadMessageProcessor.process(testEvent()); assertThat(response.getMessage().getPayload().getDataType(), like(String.class, MediaType.APPLICATION_XML, null)); } }