Search in sources :

Example 16 with JsonInboundMessageMapper

use of org.springframework.integration.support.json.JsonInboundMessageMapper in project spring-integration by spring-projects.

the class AbstractJsonInboundMessageMapperTests method testToMessageWithBeanHeaderTypeMappingFailure.

@Test
public void testToMessageWithBeanHeaderTypeMappingFailure() throws Exception {
    TestBean bean = new TestBean();
    UUID id = UUID.randomUUID();
    String jsonMessage = "{\"headers\":{\"$timestamp\":1,\"$id\":\"" + id + "\",\"myHeader\":" + getBeanAsJson(bean) + "},\"payload\":\"myPayloadStuff\"}";
    JsonInboundMessageMapper mapper = new JsonInboundMessageMapper(String.class, getParser());
    Map<String, Class<?>> headerTypes = new HashMap<String, Class<?>>();
    headerTypes.put("myHeader", Long.class);
    mapper.setHeaderTypes(headerTypes);
    try {
        mapper.toMessage(jsonMessage);
        fail();
    } catch (IllegalArgumentException ex) {
    // Expected
    }
}
Also used : JsonInboundMessageMapper(org.springframework.integration.support.json.JsonInboundMessageMapper) HashMap(java.util.HashMap) UUID(java.util.UUID) Test(org.junit.Test)

Example 17 with JsonInboundMessageMapper

use of org.springframework.integration.support.json.JsonInboundMessageMapper in project spring-integration by spring-projects.

the class StoredProcOutboundGatewayWithSpelIntegrationTests method testInt2865SqlReturnType.

@Test
@Transactional
public void testInt2865SqlReturnType() throws Exception {
    Mockito.reset(this.clobSqlReturnType);
    Message<String> testMessage = MessageBuilder.withPayload("TEST").setHeader("FOO", "BAR").build();
    String messageId = testMessage.getHeaders().getId().toString();
    String jsonMessage = new JsonOutboundMessageMapper().fromMessage(testMessage);
    this.jdbcTemplate.update("INSERT INTO json_message VALUES (?,?)", messageId, jsonMessage);
    this.getMessageChannel.send(new GenericMessage<String>(messageId));
    Message<?> resultMessage = this.output2Channel.receive(10000);
    assertNotNull(resultMessage);
    Object resultPayload = resultMessage.getPayload();
    assertTrue(resultPayload instanceof String);
    Message<?> message = new JsonInboundMessageMapper(String.class, new Jackson2JsonMessageParser()).toMessage((String) resultPayload);
    assertEquals(testMessage.getPayload(), message.getPayload());
    assertEquals(testMessage.getHeaders().get("FOO"), message.getHeaders().get("FOO"));
    Mockito.verify(clobSqlReturnType).getTypeValue(Mockito.any(CallableStatement.class), Mockito.eq(2), Mockito.eq(JdbcTypesEnum.CLOB.getCode()), Mockito.eq((String) null));
}
Also used : JsonInboundMessageMapper(org.springframework.integration.support.json.JsonInboundMessageMapper) Jackson2JsonMessageParser(org.springframework.integration.support.json.Jackson2JsonMessageParser) CallableStatement(java.sql.CallableStatement) JsonOutboundMessageMapper(org.springframework.integration.support.json.JsonOutboundMessageMapper) Test(org.junit.Test) Transactional(org.springframework.transaction.annotation.Transactional)

Aggregations

Test (org.junit.Test)17 JsonInboundMessageMapper (org.springframework.integration.support.json.JsonInboundMessageMapper)17 UUID (java.util.UUID)11 Type (java.lang.reflect.Type)2 HashMap (java.util.HashMap)2 List (java.util.List)2 Jackson2JsonMessageParser (org.springframework.integration.support.json.Jackson2JsonMessageParser)2 JsonOutboundMessageMapper (org.springframework.integration.support.json.JsonOutboundMessageMapper)2 CallableStatement (java.sql.CallableStatement)1 StringRedisTemplate (org.springframework.data.redis.core.StringRedisTemplate)1 RedisAvailable (org.springframework.integration.redis.rules.RedisAvailable)1 GenericMessage (org.springframework.messaging.support.GenericMessage)1 Transactional (org.springframework.transaction.annotation.Transactional)1