package net.techreadiness.batch.org;
import net.techreadiness.batch.CoreFieldExtractor;
import net.techreadiness.service.object.Contact;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.springframework.core.io.ClassPathResource;
import com.google.common.collect.Maps;
public class OrgExportFieldExtractorTest {
private OrgData org;
private CoreFieldExtractor<OrgData> fieldExtractor;
@Before
public void setup() {
org = new OrgData();
org.getOrg().setExtendedAttributes(Maps.<String, String> newHashMap());
fieldExtractor = new CoreFieldExtractor<>();
fieldExtractor.setResource(new ClassPathResource("net/techreadiness/batch/org/org-export-mapping.txt"));
}
@Test
public void testEmptyOrg() {
Object[] fields = fieldExtractor.extract(org);
Assert.assertEquals(35, fields.length);
}
@Test
public void testOrg() {
org.getOrg().setOrgTypeCode("school");
org.getOrg().setParentOrgLocalCode("parent");
org.getOrg().setLocalCode("code");
org.getOrg().setName("name");
org.getOrg().setInactive(false);
org.getOrg().setAddressLine1("addressLine1");
org.getOrg().setAddressLine2("addressLine2");
org.getOrg().setCity("city");
org.getOrg().setState("state");
org.getOrg().setZip("zip");
org.getOrg().setPhone("phone");
org.getOrg().setPhoneExtension("phoneExtension");
org.getOrg().setFax("fax");
Object[] fields = fieldExtractor.extract(org);
Assert.assertEquals("school", fields[0]);
Assert.assertEquals("parent", fields[1]);
Assert.assertEquals("code", fields[2]);
Assert.assertEquals("name", fields[3]);
Assert.assertEquals("false", fields[4]);
Assert.assertEquals("addressLine1", fields[5]);
Assert.assertEquals("addressLine2", fields[6]);
Assert.assertEquals("city", fields[7]);
Assert.assertEquals("state", fields[8]);
Assert.assertEquals("zip", fields[9]);
Assert.assertEquals("phone", fields[10]);
Assert.assertEquals("phoneExtension", fields[11]);
Assert.assertEquals("fax", fields[12]);
Assert.assertEquals(35, fields.length);
}
@Test
public void testContact1() {
Contact contact = new Contact();
contact.setContactTypeCode("primary");
contact.setName("name");
contact.setTitle("title");
contact.setAddressLine1("addressLine1");
contact.setAddressLine2("addressLine2");
contact.setCity("city");
contact.setState("state");
contact.setZip("zip");
contact.setPhone("phone");
contact.setPhoneExtension("phoneExtension");
contact.setFax("fax");
contact.setEmail("email");
org.getContacts().put("primary", contact);
Object[] fields = fieldExtractor.extract(org);
Assert.assertEquals("name", fields[13]);
Assert.assertEquals("title", fields[14]);
Assert.assertEquals("addressLine1", fields[15]);
Assert.assertEquals("addressLine2", fields[16]);
Assert.assertEquals("city", fields[17]);
Assert.assertEquals("state", fields[18]);
Assert.assertEquals("zip", fields[19]);
Assert.assertEquals("phone", fields[20]);
Assert.assertEquals("phoneExtension", fields[21]);
Assert.assertEquals("fax", fields[22]);
Assert.assertEquals("email", fields[23]);
Assert.assertEquals(35, fields.length);
}
@Test
public void testContact2() {
Contact contact = new Contact();
contact.setContactTypeCode("secondary");
contact.setName("name");
contact.setTitle("title");
contact.setAddressLine1("addressLine1");
contact.setAddressLine2("addressLine2");
contact.setCity("city");
contact.setState("state");
contact.setZip("zip");
contact.setPhone("phone");
contact.setPhoneExtension("phoneExtension");
contact.setFax("fax");
contact.setEmail("email");
org.getContacts().put("secondary", contact);
Object[] fields = fieldExtractor.extract(org);
Assert.assertEquals("name", fields[24]);
Assert.assertEquals("title", fields[25]);
Assert.assertEquals("addressLine1", fields[26]);
Assert.assertEquals("addressLine2", fields[27]);
Assert.assertEquals("city", fields[28]);
Assert.assertEquals("state", fields[29]);
Assert.assertEquals("zip", fields[30]);
Assert.assertEquals("phone", fields[31]);
Assert.assertEquals("phoneExtension", fields[32]);
Assert.assertEquals("fax", fields[33]);
Assert.assertEquals("email", fields[34]);
Assert.assertEquals(35, fields.length);
}
}