package net.techreadiness.batch.user; import java.util.Calendar; import javax.inject.Inject; import javax.inject.Named; import org.hamcrest.MatcherAssert; import org.hamcrest.Matchers; import org.junit.After; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.batch.item.ExecutionContext; import org.springframework.batch.item.ItemStreamReader; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration public class UserItemReaderTest { @Inject @Named("userReader") private ItemStreamReader<UserData> userReader; @After public void after() { userReader.close(); } @Test public void testNoDates() throws Exception { userReader.open(new ExecutionContext()); UserData user = userReader.read(); Assert.assertEquals("c", user.getAction()); Assert.assertEquals("tester@email.com", user.getUser().getUsername()); Assert.assertEquals("Paul", user.getUser().getFirstName()); Assert.assertEquals("Adams", user.getUser().getLastName()); Assert.assertEquals(null, user.getUser().getEmail()); MatcherAssert.assertThat("12", Matchers.isIn(user.getOrgCodes())); MatcherAssert.assertThat("34", Matchers.isIn(user.getOrgCodes())); MatcherAssert.assertThat("56", Matchers.isIn(user.getOrgCodes())); MatcherAssert.assertThat("67", Matchers.isIn(user.getRoleCodes())); MatcherAssert.assertThat("78", Matchers.isIn(user.getRoleCodes())); MatcherAssert.assertThat("89", Matchers.isIn(user.getRoleCodes())); Assert.assertNull(user.getUser().getDisableDate()); } @Test public void testDates() throws Exception { ExecutionContext context = new ExecutionContext(); context.putInt("FlatFileItemReader.read.count", 1); userReader.open(context); UserData user = userReader.read(); Calendar cal = Calendar.getInstance(); cal.clear(); cal.set(2012, 0, 1); Assert.assertEquals(cal.getTime(), user.getUser().getActiveBeginDate()); cal.clear(); cal.set(2012, 0, 31); Assert.assertEquals(cal.getTime(), user.getUser().getActiveEndDate()); Assert.assertEquals(3, user.getLineNumber()); Assert.assertNotNull(user.getRawData()); } @Test public void testDisabled() throws Exception { ExecutionContext context = new ExecutionContext(); context.putInt("FlatFileItemReader.read.count", 2); userReader.open(context); UserData user = userReader.read(); Assert.assertNotNull(user.getUser().getDisableDate()); Assert.assertEquals(4, user.getLineNumber()); Assert.assertNotNull(user.getRawData()); } }