Add extra test for forum question

This commit is contained in:
David Syer
2010-09-01 14:08:52 +00:00
parent e537e0dba5
commit c73cf27dd8

View File

@@ -241,6 +241,42 @@ public class JdbcPollingChannelAdapterIntegrationTests {
}
@Test
public void testSimplePollForListWithRowMapperAndUpdatePerRowWithMaxRows() {
JdbcPollingChannelAdapter adapter = new JdbcPollingChannelAdapter(
this.embeddedDatabase, "select * from item where status=2");
adapter.setUpdateSql("update item set status = 10 where id = :id");
adapter.setUpdatePerRow(true);
adapter.setMaxRowsPerPoll(1);
adapter.setRowMapper(new ItemRowMapper());
this.jdbcTemplate.update("insert into item values(1,2)");
this.jdbcTemplate.update("insert into item values(2,2)");
adapter.receive();
Message<Object> message = adapter.receive();
Object payload = message.getPayload();
List<?> rows = (List<?>) payload;
assertEquals("Wrong number of elements", 1, rows.size());
assertTrue("Wrong payload type", rows.get(0) instanceof Item);
Item item = (Item) rows.get(0);
assertEquals("Wrong id", 2, item.getId());
assertEquals("Wrong status", 2, item.getStatus());
int countOfStatusTwo = this.jdbcTemplate
.queryForInt("select count(*) from item where status = 2");
assertEquals(
"Status not updated incorect number of rows with status 2", 0,
countOfStatusTwo);
int countOfStatusTen = this.jdbcTemplate
.queryForInt("select count(*) from item where status = 10");
assertEquals(
"Status not updated incorect number of rows with status 10", 2,
countOfStatusTen);
}
@Test
public void testEmptyPoll() {
JdbcPollingChannelAdapter adapter = new JdbcPollingChannelAdapter(