Search in sources :

Example 1 with User

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

the class StoredProcMessageHandlerDerbyIntegrationTests method testDerbyStoredProcInsertWithDefaultSqlSourceAndDynamicProcName.

@Test
public void testDerbyStoredProcInsertWithDefaultSqlSourceAndDynamicProcName() throws Exception {
    StoredProcExecutor storedProcExecutor = new StoredProcExecutor(embeddedDatabase);
    StoredProcMessageHandler messageHandler = new StoredProcMessageHandler(storedProcExecutor);
    final ExpressionFactoryBean efb = new ExpressionFactoryBean("headers['stored_procedure_name']");
    efb.afterPropertiesSet();
    final 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("stored_procedure_name", "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 2 with User

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

the class StoredProcOutboundGatewayWithSpelIntegrationTests method testWithMissingMessageHeader.

@Test
@DirtiesContext
public void testWithMissingMessageHeader() throws Exception {
    User user1 = new User("First User", "my first password", "email1");
    Message<User> user1Message = MessageBuilder.withPayload(user1).build();
    this.channel.send(user1Message);
    Message<?> receive = this.startErrorsChannel.receive(10000);
    assertNotNull(receive);
    assertThat(receive, instanceOf(ErrorMessage.class));
    MessageHandlingException exception = (MessageHandlingException) receive.getPayload();
    String expectedMessage = "Unable to resolve Stored Procedure/Function name " + "for the provided Expression 'headers['my_stored_procedure']'.";
    String actualMessage = exception.getCause().getMessage();
    Assert.assertEquals(expectedMessage, actualMessage);
}
Also used : User(org.springframework.integration.jdbc.storedproc.User) ErrorMessage(org.springframework.messaging.support.ErrorMessage) MessageHandlingException(org.springframework.messaging.MessageHandlingException) Test(org.junit.Test) DirtiesContext(org.springframework.test.annotation.DirtiesContext)

Example 3 with User

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

the class StoredProcOutboundGatewayWithNamespaceIntegrationTests method test.

@Test
public void test() throws Exception {
    createUser.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());
    Collection<User> allUsers = message.getPayload();
    assertTrue(allUsers.size() == 1);
    User userFromDb = allUsers.iterator().next();
    assertEquals("Wrong username", "myUsername", userFromDb.getUsername());
    assertEquals("Wrong password", "myPassword", userFromDb.getPassword());
    assertEquals("Wrong email", "'myEmail'", userFromDb.getEmail());
}
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) Collection(java.util.Collection) Test(org.junit.Test)

Example 4 with User

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

the class StoredProcOutboundGatewayWithNamespaceIntegrationTests method testStoredProcOutboundGatewayInsideChain.

// INT-1029
@Test
public void testStoredProcOutboundGatewayInsideChain() throws Exception {
    Message<User> requestMessage = MessageBuilder.withPayload(new User("myUsername", "myPassword", "myEmail")).build();
    storedProcOutboundGatewayInsideChain.send(requestMessage);
    @SuppressWarnings("unchecked") Message<Collection<User>> message = (Message<Collection<User>>) replyChannel.receive();
    assertNotNull(message);
    assertNotNull(message.getPayload());
    Collection<User> allUsers = message.getPayload();
    assertTrue(allUsers.size() == 1);
    User userFromDb = allUsers.iterator().next();
    assertEquals("Wrong username", "myUsername", userFromDb.getUsername());
    assertEquals("Wrong password", "myPassword", userFromDb.getPassword());
    assertEquals("Wrong email", "myEmail", userFromDb.getEmail());
}
Also used : User(org.springframework.integration.jdbc.storedproc.User) CreateUser(org.springframework.integration.jdbc.storedproc.CreateUser) Message(org.springframework.messaging.Message) Collection(java.util.Collection) Test(org.junit.Test)

Example 5 with User

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

the class StoredProcOutboundGatewayWithSpringContextIntegrationTests method test.

@Test
public void test() throws Exception {
    createUser.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);
    context.stop();
    assertNotNull(message);
    assertNotNull(message.getPayload());
    assertNotNull(message.getPayload() instanceof Collection<?>);
    Collection<User> allUsers = message.getPayload();
    assertTrue(allUsers.size() == 1);
}
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) Collection(java.util.Collection) 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