SaveCustomerDataTest.java

package durbodax.commands.customer;

import durbodax.customers.Customer;
import durbodax.customers.CustomerData;
import durbodax.customers.Enums.ChildrenUnderFive;
import durbodax.customers.Enums.EducationLevel;
import durbodax.customers.Enums.EmploymentStatus;
import durbodax.customers.Enums.Farm;
import durbodax.customers.Enums.LaborForce;
import durbodax.customers.Enums.LastYearWorked;
import durbodax.customers.Enums.LinkToFather;
import durbodax.customers.Enums.LinkToMother;
import durbodax.customers.Enums.LinkToSpouse;
import durbodax.customers.Enums.MaritalStatus;
import durbodax.customers.Enums.MovedIn;
import durbodax.customers.Enums.Ownership;
import durbodax.customers.Enums.Race;
import durbodax.customers.Enums.RelationWHeadHouse;
import durbodax.customers.Enums.ResidentialStatus;
import durbodax.customers.Enums.SchoolStatus;
import durbodax.customers.Enums.SchoolType;
import durbodax.customers.Enums.Sex;
import durbodax.customers.Enums.VeteranStatus;
import durbodax.customers.Enums.WeeksWorkedPerYear;
import durbodax.customers.Enums.WorkHours;
import durbodax.customers.Enums.WorkingClass;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;

/**
 *
 * @author Kirk Seddon
 */
public class SaveCustomerDataTest {

    public SaveCustomerDataTest() {
    }

    @BeforeClass
    public static void setUpClass() throws Exception {
    }

    @AfterClass
    public static void tearDownClass() throws Exception {
    }

    @Before
    public void setUp() {
    }

    @After
    public void tearDown() {
    }

    /**
     * Test of execute method, of class SaveCustomerData.
     */
    @Test
    public void testExecute() {

        String[] input = {
            "command",
            "35", //customer age
            "8", //eldest child age
            "2", //youngest child age

            "9", //education level - (graduate)
            "1", //employment status - (employed)
            "456", //family unit number

            "0", //farm income
            "1", //farm status - (Non-farm)
            "99", //mother's location in house

            "98", //father's location in house
            "45", //spouse's location in house
            "1", //gender - Male

            "2", //Labor Force Participation - (Yes)
            "10", //last year worked - (CURRENT_YEAR)
            "1", //link to father - (Unambiguous)

            "1", //link to mother -  (Unambiguous)
            "2", //link to spouse - (Wife_Precedes_Husband)
            "1", //marital status - (Married_Spouse_Present)

            "2", //moved in status - (TWo_Years_ago)
            "100000", //non-farm business income
            "2", //number of children in the house

            "5", //number of children under five - (ONE_CHILD)
            "4", //number of couples in the house
            "654", //number of families in the house

            "13", //number of family members in the house
            "6", //number of fathers in the house
            "10", //number of mothers in the house

            "13", //number of siblings in the house
            "3", //occupation income score
            "25000", //other income

            "2", //Ownership - (rented)
            "0", //poverty status
            "1", //Race - (White)

            "1", //Relatiohship - (HOUSEHOLDER)
            "12000", //rent
            "new york", //residence 5 yrs ago

            "7", //residential status - (same_state_not_reported)
            "2", //school status - (yes)
            "3", //school type - private

            "0", //social security income
            "100", //socio-economic index
            "200000", //total family income

            "125000", //total personal income
            "125000", //total wage and salary income
            "0", //total welfare income

            "300000", //total house value
            "1", //veteran status - no service
            "2", //working class- wage or salary

            "6", //hours worked per week - 41-48
            "6", //weeks worked per year - 50-52
            "state of california" //birthplace
        };

        InitCustomerData clearCustomerData = new InitCustomerData();
        CreateCustomer createCustomer = new CreateCustomer();
        SaveCustomerData saveCustomerData = new SaveCustomerData();
        LoadCustomerData loadCustomerData = new LoadCustomerData();

        clearCustomerData.execute(new String[] { "command" } );
        createCustomer.execute(input);
        int customerID = (Integer)saveCustomerData.execute(new String[] { "command" });
        clearCustomerData.execute(new String[] { "command" } );
        loadCustomerData.execute(new String[] { "command", Integer.toString(customerID) });


       Customer customer = CustomerData.CUSTOMER.getCustomer();
        assertEquals(35, customer.getAge());
        assertEquals(8, customer.getAgeOfEldestChild());
        assertEquals(2, customer.getAgeOfYoungestChild());
        assertEquals(EducationLevel.GRADUATE, customer.getEducationLevelEnum());
        assertEquals(EmploymentStatus.EMPLOYED, customer.getEmploymentStatusEnum());
        assertEquals(456, customer.getFamilyMembership());
        assertEquals(0, customer.getFarmIncome());
        assertEquals(Farm.NON_FARM, customer.getFarmStatusEnum());
        assertEquals(99, customer.getMothersLocationInHouse());
        assertEquals(98, customer.getFathersLocationInHouse());
        assertEquals(45, customer.getSpouseLocationInHouse());
        assertEquals(Sex.Male, customer.getGenderEnum());
        assertEquals(LaborForce.YES, customer.getLaborForceEnum());
        assertEquals(LastYearWorked.CURRENT_YEAR, customer.getLastYearWorkedEnum());
        assertEquals(LinkToMother.UNAMBIGUOUS_MOTHER_LINK, customer.getLinkToMotherEnum());
        assertEquals(LinkToFather.UNAMBIGUOUS_FATHER_LINK, customer.getLinkToFatherEnum());
        assertEquals(LinkToSpouse.WIFE_PRECEDES_HUSBAND, customer.getLinkToSpouseEnum());
        assertEquals(MaritalStatus.MARRIED_SPOUSE_PRESENT, customer.getMaritalStatusEnum());
        assertEquals(MovedIn.TWO_YEAR_AGO, customer.getMovedInCodeEnum());
        assertEquals(100000, customer.getNonFarmBusinessIncome());
        assertEquals(2, customer.getNumChildrenInHouse());
        assertEquals(ChildrenUnderFive.FIVE_CHILDREN, customer.getNumChildrenUnderFiveInHouseEnum());
        assertEquals(4, customer.getNumCouplesInHouse());
        assertEquals(654, customer.getNumFamiliesInHouse());
        assertEquals(13, customer.getNumFamilyMembersInHouse());
        assertEquals(6, customer.getNumFathersInHouse());
        assertEquals(10, customer.getNumMothersInHouse());
        assertEquals(13, customer.getNumSiblingsInHouse());
        assertEquals(3, customer.getOccupationIncomeScore());
        assertEquals(25000, customer.getOtherIncome());
        assertEquals(Ownership.RENTED, customer.getOwnershipEnum());
        assertEquals(0, customer.getPovertyStatus());
        assertEquals(Race.White, customer.getRaceEnum());
        assertEquals(RelationWHeadHouse.HOUSEHOLDER, customer.getRelationshipWHouseholderEnum());
        assertEquals(12000, customer.getRent());
        assertTrue("new york".equalsIgnoreCase(customer.getResidence5YearsAgo().trim()));
        assertEquals(ResidentialStatus.SAME_STATE_NOT_REPORTED, customer.getResidentialStatusEnum());
        assertEquals(SchoolStatus.YES, customer.getSchoolStatusEnum());
        assertEquals(SchoolType.PRIVATE_SCHOOL, customer.getSchoolTypeEnum());
        assertEquals(0, customer.getSocialSecurityIncome());
        assertEquals(100, customer.getSocioEconomicIndex());
        assertEquals(200000, customer.getTotalFamilyIncome());
        assertEquals(125000, customer.getTotalPersonalIncome());
        assertEquals(125000, customer.getWageAndSalaryIncome());
        assertEquals(0, customer.getWelfareIncome());
        assertEquals(300000, customer.getValue());
        assertEquals(VeteranStatus.NO_SERVICE, customer.getVeteranStatusEnum());
        assertEquals(WorkingClass.WAGE_OR_SALARY, customer.getWorkClassEnum());
        assertEquals(WorkHours._41_TO_48_HRS, customer.getWorkHoursEnum());
        assertEquals(WeeksWorkedPerYear._50_TO_52_WEEKS, customer.getWeeksWorkedPerYearEnum());
        assertTrue("state of california".equalsIgnoreCase(customer.getBirthplace().trim()));
    }

}