package net.techreadiness.batch.org;
import javax.inject.Inject;
import javax.inject.Named;
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 OrgItemReaderTest {
@Inject
@Named("orgReader")
private ItemStreamReader<OrgData> orgReader;
@After
public void after() {
orgReader.close();
}
@Test
public void testReader() throws Exception {
orgReader.open(new ExecutionContext());
OrgData orgData = orgReader.read();
Assert.assertEquals("school", orgData.getOrg().getOrgTypeCode());
Assert.assertEquals("Icy-400", orgData.getOrg().getParentOrgCode());
Assert.assertEquals("Icy-r2d2", orgData.getOrg().getCode());
Assert.assertEquals("Robot Academy", orgData.getOrg().getName());
Assert.assertEquals(Boolean.FALSE, orgData.getOrg().getInactive());
Assert.assertEquals("1 X Wing Ave", orgData.getOrg().getAddressLine1());
Assert.assertEquals("line2", orgData.getOrg().getAddressLine2());
Assert.assertEquals("Base", orgData.getOrg().getCity());
Assert.assertEquals("Icy", orgData.getOrg().getState());
Assert.assertEquals("12345", orgData.getOrg().getZip());
Assert.assertEquals("319-555-5555", orgData.getOrg().getPhone());
Assert.assertEquals("123", orgData.getOrg().getPhoneExtension());
Assert.assertEquals("319-555-5556", orgData.getOrg().getFax());
Assert.assertEquals("C3P0", orgData.getContacts().get("primary").getName());
Assert.assertEquals("Protocol Droid", orgData.getContacts().get("primary").getTitle());
Assert.assertEquals("cLine1", orgData.getContacts().get("primary").getAddressLine1());
Assert.assertEquals("cLine2", orgData.getContacts().get("primary").getAddressLine2());
Assert.assertEquals("cCity", orgData.getContacts().get("primary").getCity());
Assert.assertEquals("cState", orgData.getContacts().get("primary").getState());
Assert.assertEquals("cZip", orgData.getContacts().get("primary").getZip());
Assert.assertEquals("319-555-5557", orgData.getContacts().get("primary").getPhone());
Assert.assertEquals("234", orgData.getContacts().get("primary").getPhoneExtension());
Assert.assertEquals("319-555-5558", orgData.getContacts().get("primary").getFax());
Assert.assertEquals("c3p0@galaxy.net", orgData.getContacts().get("primary").getEmail());
Assert.assertEquals("c2Name", orgData.getContacts().get("secondary").getName());
Assert.assertEquals("c2Title", orgData.getContacts().get("secondary").getTitle());
Assert.assertEquals("c2Line1", orgData.getContacts().get("secondary").getAddressLine1());
Assert.assertEquals("c2Line2", orgData.getContacts().get("secondary").getAddressLine2());
Assert.assertEquals("c2City", orgData.getContacts().get("secondary").getCity());
Assert.assertEquals("c2State", orgData.getContacts().get("secondary").getState());
Assert.assertEquals("c2Zip", orgData.getContacts().get("secondary").getZip());
Assert.assertEquals("319-555-5559", orgData.getContacts().get("secondary").getPhone());
Assert.assertEquals("345", orgData.getContacts().get("secondary").getPhoneExtension());
Assert.assertEquals("319-555-5560", orgData.getContacts().get("secondary").getFax());
Assert.assertEquals("c2Email@mail.com", orgData.getContacts().get("secondary").getEmail());
Assert.assertEquals(2, orgData.getLineNumber());
Assert.assertNotNull(orgData.getRawData());
}
@Test
public void testNullParentCode() throws Exception {
ExecutionContext context = new ExecutionContext();
context.putInt("FlatFileItemReader.read.count", 1);
orgReader.open(context);
OrgData orgData = orgReader.read();
Assert.assertNull(orgData.getOrg().getParentOrgCode());
Assert.assertEquals(3, orgData.getLineNumber());
Assert.assertNotNull(orgData.getRawData());
}
@Test
public void testInvalidInactive() throws Exception {
ExecutionContext context = new ExecutionContext();
context.putInt("FlatFileItemReader.read.count", 2);
orgReader.open(context);
OrgData orgData = orgReader.read();
Assert.assertTrue(orgData.getOrg().getInactive());
Assert.assertEquals(4, orgData.getLineNumber());
Assert.assertNotNull(orgData.getRawData());
}
}