package org.springframework.data.jdbc.jms.object; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.math.BigDecimal; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jms.core.JmsTemplate; import org.springframework.jms.listener.DefaultMessageListenerContainer; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.transaction.TransactionConfiguration; import org.springframework.transaction.annotation.Transactional; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration @TransactionConfiguration public class ObjectPayloadTests { @Autowired private JmsTemplate jmsTemplate; @Autowired private MessageDelegate delegate; @Autowired private DefaultMessageListenerContainer container; @Transactional @Test @Rollback(false) public void sendMessage() { final Object value = new BigDecimal("123.45"); jmsTemplate.convertAndSend("jmsadmin.jms_object_queue", value); } @Test public void stopListener() { // let the container process the message try { Thread.sleep(10000L); } catch (InterruptedException e) { e.printStackTrace(); fail("interrupted"); } container.stop(); assertTrue("messages not received", delegate.getCount() > 0); } }