Search in sources :

Example 6 with User

use of org.springframework.integration.jdbc.storedproc.User in project spring-integration by spring-projects.

the class StoredProcMessageHandlerDerbyIntegrationTests method testDerbyStoredProcedureInsertWithExpression.

@Test
public void testDerbyStoredProcedureInsertWithExpression() {
    StoredProcExecutor storedProcExecutor = new StoredProcExecutor(embeddedDatabase);
    StoredProcMessageHandler messageHandler = new StoredProcMessageHandler(storedProcExecutor);
    storedProcExecutor.setStoredProcedureName("CREATE_USER");
    final List<ProcedureParameter> procedureParameters = new ArrayList<ProcedureParameter>();
    procedureParameters.add(new ProcedureParameter("username", null, "payload.username.toUpperCase()"));
    procedureParameters.add(new ProcedureParameter("password", null, "payload.password.toUpperCase()"));
    procedureParameters.add(new ProcedureParameter("email", null, "payload.email.toUpperCase()"));
    storedProcExecutor.setProcedureParameters(procedureParameters);
    storedProcExecutor.setBeanFactory(mock(BeanFactory.class));
    storedProcExecutor.afterPropertiesSet();
    messageHandler.setBeanFactory(mock(BeanFactory.class));
    messageHandler.afterPropertiesSet();
    MessageBuilder<User> message = MessageBuilder.withPayload(new User("Eric.Cartman", "c4rtm4n", "eric@cartman.com"));
    messageHandler.handleMessage(message.build());
    Map<String, Object> map = jdbcTemplate.queryForMap("SELECT * FROM USERS WHERE USERNAME=?", "ERIC.CARTMAN");
    assertEquals("Wrong username", "ERIC.CARTMAN", map.get("USERNAME"));
    assertEquals("Wrong password", "C4RTM4N", map.get("PASSWORD"));
    assertEquals("Wrong email", "ERIC@CARTMAN.COM", map.get("EMAIL"));
}
Also used : ProcedureParameter(org.springframework.integration.jdbc.storedproc.ProcedureParameter) User(org.springframework.integration.jdbc.storedproc.User) ArrayList(java.util.ArrayList) BeanFactory(org.springframework.beans.factory.BeanFactory) Test(org.junit.Test)

Example 7 with User

use of org.springframework.integration.jdbc.storedproc.User in project spring-integration by spring-projects.

the class StoredProcMessageHandlerDerbyIntegrationTests method testDerbyStoredProcedureInsertWithDefaultSqlSource.

@Test
public void testDerbyStoredProcedureInsertWithDefaultSqlSource() {
    StoredProcExecutor storedProcExecutor = new StoredProcExecutor(embeddedDatabase);
    StoredProcMessageHandler messageHandler = new StoredProcMessageHandler(storedProcExecutor);
    storedProcExecutor.setStoredProcedureName("CREATE_USER");
    storedProcExecutor.setBeanFactory(mock(BeanFactory.class));
    storedProcExecutor.afterPropertiesSet();
    messageHandler.setBeanFactory(mock(BeanFactory.class));
    messageHandler.afterPropertiesSet();
    MessageBuilder<User> message = MessageBuilder.withPayload(new User("username", "password", "email"));
    messageHandler.handleMessage(message.build());
    Map<String, Object> map = jdbcTemplate.queryForMap("SELECT * FROM USERS WHERE USERNAME=?", "username");
    assertEquals("Wrong username", "username", map.get("USERNAME"));
    assertEquals("Wrong password", "password", map.get("PASSWORD"));
    assertEquals("Wrong email", "email", map.get("EMAIL"));
}
Also used : User(org.springframework.integration.jdbc.storedproc.User) BeanFactory(org.springframework.beans.factory.BeanFactory) Test(org.junit.Test)

Example 8 with User

use of org.springframework.integration.jdbc.storedproc.User in project spring-integration by spring-projects.

the class StoredProcMessageHandlerDerbyIntegrationTests method testDerbyStoredProcInsertWithDefaultSqlSourceAndSpelProcName.

@Test
public void testDerbyStoredProcInsertWithDefaultSqlSourceAndSpelProcName() throws Exception {
    StoredProcExecutor storedProcExecutor = new StoredProcExecutor(embeddedDatabase);
    StoredProcMessageHandler messageHandler = new StoredProcMessageHandler(storedProcExecutor);
    ExpressionFactoryBean efb = new ExpressionFactoryBean("headers.headerWithProcedureName");
    efb.afterPropertiesSet();
    Expression expression = efb.getObject();
    storedProcExecutor.setStoredProcedureNameExpression(expression);
    storedProcExecutor.setBeanFactory(mock(BeanFactory.class));
    storedProcExecutor.afterPropertiesSet();
    messageHandler.setBeanFactory(mock(BeanFactory.class));
    messageHandler.afterPropertiesSet();
    MessageBuilder<User> message = MessageBuilder.withPayload(new User("username", "password", "email"));
    message.setHeader("headerWithProcedureName", "CREATE_USER");
    messageHandler.handleMessage(message.build());
    Map<String, Object> map = jdbcTemplate.queryForMap("SELECT * FROM USERS WHERE USERNAME=?", "username");
    assertEquals("Wrong username", "username", map.get("USERNAME"));
    assertEquals("Wrong password", "password", map.get("PASSWORD"));
    assertEquals("Wrong email", "email", map.get("EMAIL"));
}
Also used : ExpressionFactoryBean(org.springframework.integration.config.ExpressionFactoryBean) User(org.springframework.integration.jdbc.storedproc.User) Expression(org.springframework.expression.Expression) BeanFactory(org.springframework.beans.factory.BeanFactory) Test(org.junit.Test)

Example 9 with User

use of org.springframework.integration.jdbc.storedproc.User in project spring-integration by spring-projects.

the class StoredProcMessageHandlerDerbyIntegrationTests method testDerbyStoredProcedureInsertWithHeaderExpression.

@Test
public void testDerbyStoredProcedureInsertWithHeaderExpression() {
    StoredProcExecutor storedProcExecutor = new StoredProcExecutor(embeddedDatabase);
    StoredProcMessageHandler messageHandler = new StoredProcMessageHandler(storedProcExecutor);
    storedProcExecutor.setStoredProcedureName("CREATE_USER");
    final List<ProcedureParameter> procedureParameters = new ArrayList<ProcedureParameter>();
    procedureParameters.add(new ProcedureParameter("USERNAME", null, "headers[business_id] + '_' + payload.username"));
    procedureParameters.add(new ProcedureParameter("password", "static_password", null));
    procedureParameters.add(new ProcedureParameter("email", "static_email", null));
    storedProcExecutor.setProcedureParameters(procedureParameters);
    storedProcExecutor.setBeanFactory(mock(BeanFactory.class));
    storedProcExecutor.afterPropertiesSet();
    messageHandler.setBeanFactory(mock(BeanFactory.class));
    messageHandler.afterPropertiesSet();
    MessageBuilder<User> message = MessageBuilder.withPayload(new User("Eric.Cartman", "c4rtm4n", "eric@cartman.com"));
    message.setHeader("business_id", "1234");
    messageHandler.handleMessage(message.build());
    Map<String, Object> map = jdbcTemplate.queryForMap("SELECT * FROM USERS WHERE USERNAME=?", "1234_Eric.Cartman");
    assertEquals("Wrong username", "1234_Eric.Cartman", map.get("USERNAME"));
    assertEquals("Wrong password", "static_password", map.get("PASSWORD"));
    assertEquals("Wrong email", "static_email", map.get("EMAIL"));
}
Also used : ProcedureParameter(org.springframework.integration.jdbc.storedproc.ProcedureParameter) User(org.springframework.integration.jdbc.storedproc.User) ArrayList(java.util.ArrayList) BeanFactory(org.springframework.beans.factory.BeanFactory) Test(org.junit.Test)

Example 10 with User

use of org.springframework.integration.jdbc.storedproc.User in project spring-integration by spring-projects.

the class StoredProcJmxManagedBeanTests method testOutboundGateWayJmxAttributes.

@Test
@SuppressWarnings("unchecked")
public void testOutboundGateWayJmxAttributes() throws Exception {
    final List<MBeanServer> servers = MBeanServerFactory.findMBeanServer(null);
    assertEquals(1, servers.size());
    final MBeanServer server = servers.iterator().next();
    final Set<ObjectName> objectNames = server.queryNames(ObjectName.getInstance("org.springframework.integration.jdbc.test:name=my gateway.storedProcExecutor,*"), null);
    assertEquals(1, objectNames.size());
    ObjectName name = objectNames.iterator().next();
    Map<String, Object> cacheStatistics = (Map<String, Object>) server.getAttribute(name, "JdbcCallOperationsCacheStatisticsAsMap");
    assertEquals(11, cacheStatistics.size());
    assertEquals(0L, cacheStatistics.get("hitCount"));
    assertEquals(0L, cacheStatistics.get("loadCount"));
    assertEquals(0L, cacheStatistics.get("loadExceptionCount"));
    assertEquals(0L, cacheStatistics.get("loadSuccessCount"));
    assertEquals(0L, cacheStatistics.get("missCount"));
    userService.createUser(new User("myUsername", "myPassword", "myEmail"));
    List<Message<Collection<User>>> received = new ArrayList<Message<Collection<User>>>();
    received.add(consumer.poll(2000));
    Message<Collection<User>> message = received.get(0);
    assertNotNull(message);
    assertNotNull(message.getPayload());
    Map<String, Object> cacheStatistics2 = (Map<String, Object>) server.getAttribute(name, "JdbcCallOperationsCacheStatisticsAsMap");
    assertEquals(11, cacheStatistics2.size());
    assertEquals(0L, cacheStatistics2.get("hitCount"));
    assertEquals(1L, cacheStatistics2.get("loadCount"));
    assertEquals(0L, cacheStatistics2.get("loadExceptionCount"));
    assertEquals(1L, cacheStatistics2.get("loadSuccessCount"));
    assertEquals(1L, cacheStatistics2.get("missCount"));
}
Also used : User(org.springframework.integration.jdbc.storedproc.User) CreateUser(org.springframework.integration.jdbc.storedproc.CreateUser) Message(org.springframework.messaging.Message) ArrayList(java.util.ArrayList) ObjectName(javax.management.ObjectName) Collection(java.util.Collection) Map(java.util.Map) MBeanServer(javax.management.MBeanServer) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)11 User (org.springframework.integration.jdbc.storedproc.User)11 ArrayList (java.util.ArrayList)5 Collection (java.util.Collection)5 BeanFactory (org.springframework.beans.factory.BeanFactory)5 Message (org.springframework.messaging.Message)5 CreateUser (org.springframework.integration.jdbc.storedproc.CreateUser)4 Expression (org.springframework.expression.Expression)2 ExpressionFactoryBean (org.springframework.integration.config.ExpressionFactoryBean)2 ProcedureParameter (org.springframework.integration.jdbc.storedproc.ProcedureParameter)2 ErrorMessage (org.springframework.messaging.support.ErrorMessage)2 DirtiesContext (org.springframework.test.annotation.DirtiesContext)2 Map (java.util.Map)1 MBeanServer (javax.management.MBeanServer)1 ObjectName (javax.management.ObjectName)1 MessageHandlingException (org.springframework.messaging.MessageHandlingException)1 GenericMessage (org.springframework.messaging.support.GenericMessage)1