package org.familysearch.platform.ct;
import org.testng.annotations.Test;
import java.util.Collection;
import java.util.LinkedList;
import static org.testng.AssertJUnit.*;
public class ChangeTypeTest {
private Collection<ChangeType> typesTested;
@Test
public void testIt() {
typesTested = new LinkedList<ChangeType>();
// test the contract that the @XmlEnumValue is unique and does not change its value
testChangeType( "Person Created", ChangeType.CREATE_PERSON );
testChangeType( "Couple Relationship Created", ChangeType.CREATE_COUPLE_RELATIONSHIP );
testChangeType( "Child and Parents Relationship Created", ChangeType.CREATE_CHILD_AND_PARENTS_RELATIONSHIP);
testChangeType( "Person Removed", ChangeType.DELETE_PERSON );
testChangeType( "Couple Relationship Removed", ChangeType.DELETE_COUPLE_RELATIONSHIP );
testChangeType( "Child and Parents Relationship Removed", ChangeType.DELETE_CHILD_AND_PARENTS_RELATIONSHIP);
testChangeType( "Man Added", ChangeType.ADD_MAN );
testChangeType( "Woman Added", ChangeType.ADD_WOMAN );
testChangeType( "Father Added", ChangeType.ADD_FATHER );
testChangeType( "Mother Added", ChangeType.ADD_MOTHER );
testChangeType( "Child Added", ChangeType.ADD_CHILD );
testChangeType( "Man Changed", ChangeType.EDIT_MAN );
testChangeType( "Woman Changed", ChangeType.EDIT_WOMAN );
testChangeType( "Father Changed", ChangeType.EDIT_FATHER );
testChangeType( "Mother Changed", ChangeType.EDIT_MOTHER );
testChangeType( "Child Changed", ChangeType.EDIT_CHILD );
testChangeType( "Father Removed", ChangeType.REMOVE_FATHER );
testChangeType( "Mother Removed", ChangeType.REMOVE_MOTHER );
testChangeType( "Person Merged", ChangeType.MERGE_PERSON );
testChangeType( "Couple Relationship Merged", ChangeType.MERGE_COUPLE_RELATIONSHIP );
testChangeType( "Child and Parents Relationship Merged", ChangeType.MERGE_CHILD_AND_PARENTS_RELATIONSHIP);
testChangeType( "Person Unmerged", ChangeType.UNMERGE_PERSON );
testChangeType( "Couple Relationship Unmerged", ChangeType.UNMERGE_COUPLE_RELATIONSHIP );
testChangeType( "Child and Parents Relationship Unmerged", ChangeType.UNMERGE_CHILD_AND_PARENTS_RELATIONSHIP);
testChangeType( "Person Restored", ChangeType.UNTOMBSTONE_PERSON );
testChangeType( "Couple Relationship Restored", ChangeType.UNTOMBSTONE_COUPLE_RELATIONSHIP );
testChangeType( "Child and Parents Relationship Restored", ChangeType.UNTOMBSTONE_CHILD_AND_PARENTS_RELATIONSHIP);
/* Not currently supported
testChangeType( "PersonAccessControl Changed", ChangeType.EDIT_PERSON_ACCESS_CONTROL );
testChangeType( "Couple Relationship AccessControl Changed", ChangeType.EDIT_COUPLE_RELATIONSHIP_ACCESS_CONTROL );
testChangeType( "Parent-Child Relationship AccessControl Changed", ChangeType.EDIT_PARENT_CHILD_RELATIONSHIP_ACCESS_CONTROL );
testChangeType( "Change Removed", ChangeType.DELETE_CHANGE );
testChangeType( "Admin Label Set", ChangeType.SET_ADMIN_LABEL );
testChangeType( "Admin Label Cleared", ChangeType.CLEAR_ADMIN_LABEL );
testChangeType( "Not A Match Declaration Set", ChangeType.SET_NOT_A_MATCH_DECLARATION );
testChangeType( "Not A Match Declaration Cleared", ChangeType.CLEAR_NOT_A_MATCH_DECLARATION );
*/
testChangeType( "Set Person Not a Match", ChangeType.ADD_PERSON_NOT_A_MATCH);
testChangeType( "Remove Person Not a Match", ChangeType.REMOVE_PERSON_NOT_A_MATCH);
testChangeType( "Person Source Reference Added", ChangeType.ADD_PERSON_SOURCE_REFERENCE);
testChangeType( "Person Source Reference Changed", ChangeType.EDIT_PERSON_SOURCE_REFERENCE);
testChangeType( "Person Source Reference Removed", ChangeType.DELETE_PERSON_SOURCE_REFERENCE);
testChangeType( "Couple Source Reference Added", ChangeType.ADD_COUPLE_SOURCE_REFERENCE);
testChangeType( "Couple Source Reference Changed", ChangeType.EDIT_COUPLE_SOURCE_REFERENCE);
testChangeType( "Couple Source Reference Removed", ChangeType.DELETE_COUPLE_SOURCE_REFERENCE);
testChangeType( "Child and Parents Source Reference Added", ChangeType.ADD_CHILD_PARENTS_SOURCE_REFERENCE);
testChangeType( "Child and Parents Source Reference Changed", ChangeType.EDIT_CHILD_PARENTS_SOURCE_REFERENCE);
testChangeType( "Child and Parents Source Reference Removed", ChangeType.DELETE_CHILD_PARENTS_SOURCE_REFERENCE);
testChangeType( "Person Discussion Reference Added", ChangeType.ADD_PERSON_DISCUSSION_REFERENCE);
testChangeType( "Person Discussion Reference Changed", ChangeType.EDIT_PERSON_DISCUSSION_REFERENCE);
testChangeType( "Person Discussion Reference Removed", ChangeType.DELETE_PERSON_DISCUSSION_REFERENCE);
testChangeType( "Couple Discussion Reference Added", ChangeType.ADD_COUPLE_DISCUSSION_REFERENCE);
testChangeType( "Couple Discussion Reference Changed", ChangeType.EDIT_COUPLE_DISCUSSION_REFERENCE);
testChangeType( "Couple Discussion Reference Removed", ChangeType.DELETE_COUPLE_DISCUSSION_REFERENCE);
testChangeType( "Child and Parents Discussion Reference Added", ChangeType.ADD_CHILD_PARENTS_DISCUSSION_REFERENCE);
testChangeType( "Child and Parents Discussion Reference Changed", ChangeType.EDIT_CHILD_PARENTS_DISCUSSION_REFERENCE);
testChangeType( "Child and Parents Discussion Reference Removed", ChangeType.DELETE_CHILD_PARENTS_DISCUSSION_REFERENCE);
testChangeType( "Person Evidence Reference Added", ChangeType.ADD_PERSON_EVIDENCE_REFERENCE);
testChangeType( "Person Evidence Reference Changed", ChangeType.EDIT_PERSON_EVIDENCE_REFERENCE);
testChangeType( "Person Evidence Reference Removed", ChangeType.DELETE_PERSON_EVIDENCE_REFERENCE);
testChangeType( "Couple Evidence Reference Added", ChangeType.ADD_COUPLE_EVIDENCE_REFERENCE);
testChangeType( "Couple Evidence Reference Changed", ChangeType.EDIT_COUPLE_EVIDENCE_REFERENCE);
testChangeType( "Couple Evidence Reference Removed", ChangeType.DELETE_COUPLE_EVIDENCE_REFERENCE);
testChangeType( "Child and Parents Evidence Reference Added", ChangeType.ADD_CHILD_PARENTS_EVIDENCE_REFERENCE);
testChangeType( "Child and Parents Evidence Reference Changed", ChangeType.EDIT_CHILD_PARENTS_EVIDENCE_REFERENCE);
testChangeType( "Child and Parents Evidence Reference Removed", ChangeType.DELETE_CHILD_PARENTS_EVIDENCE_REFERENCE);
testChangeType( "Affiliation Added", ChangeType.ADD_AFFILIATION );
testChangeType( "Affiliation Changed", ChangeType.EDIT_AFFILIATION );
testChangeType( "Affiliation Removed", ChangeType.DELETE_AFFILIATION );
testChangeType( "Bar Mitzvah Added", ChangeType.ADD_BAR_MITZVAH );
testChangeType( "Bar Mitzvah Changed", ChangeType.EDIT_BAR_MITZVAH );
testChangeType( "Bar Mitzvah Removed", ChangeType.DELETE_BAR_MITZVAH );
testChangeType( "Bat Mitzvah Added", ChangeType.ADD_BAS_MITZVAH);
testChangeType( "Bat Mitzvah Changed", ChangeType.EDIT_BAS_MITZVAH);
testChangeType( "Bat Mitzvah Removed", ChangeType.DELETE_BAS_MITZVAH);
testChangeType( "Birth Added", ChangeType.ADD_BIRTH );
testChangeType( "Birth Changed", ChangeType.EDIT_BIRTH );
testChangeType( "Birth Removed", ChangeType.DELETE_BIRTH );
testChangeType( "Burial Added", ChangeType.ADD_BURIAL );
testChangeType( "Burial Changed", ChangeType.EDIT_BURIAL );
testChangeType( "Burial Removed", ChangeType.DELETE_BURIAL );
testChangeType( "Christening Added", ChangeType.ADD_CHRISTENING );
testChangeType( "Christening Changed", ChangeType.EDIT_CHRISTENING );
testChangeType( "Christening Removed", ChangeType.DELETE_CHRISTENING );
testChangeType( "Cremation Added", ChangeType.ADD_CREMATION );
testChangeType( "Cremation Changed", ChangeType.EDIT_CREMATION );
testChangeType( "Cremation Removed", ChangeType.DELETE_CREMATION );
testChangeType( "Death Added", ChangeType.ADD_DEATH );
testChangeType( "Death Changed", ChangeType.EDIT_DEATH );
testChangeType( "Death Removed", ChangeType.DELETE_DEATH );
testChangeType( "Military Service Added", ChangeType.ADD_MILITARY_SERVICE );
testChangeType( "Military Service Changed", ChangeType.EDIT_MILITARY_SERVICE );
testChangeType( "Military Service Removed", ChangeType.DELETE_MILITARY_SERVICE );
testChangeType( "Naturalization Added", ChangeType.ADD_NATURALIZATION );
testChangeType( "Naturalization Changed", ChangeType.EDIT_NATURALIZATION );
testChangeType( "Naturalization Removed", ChangeType.DELETE_NATURALIZATION );
testChangeType( "Title of Nobility Added", ChangeType.ADD_NOBILITY_TYPE );
testChangeType( "Title of Nobility Changed", ChangeType.EDIT_NOBILITY_TYPE );
testChangeType( "Title of Nobility Removed", ChangeType.DELETE_NOBILITY_TYPE );
testChangeType( "Occupation Added", ChangeType.ADD_OCCUPATION );
testChangeType( "Occupation Changed", ChangeType.EDIT_OCCUPATION );
testChangeType( "Occupation Removed", ChangeType.DELETE_OCCUPATION );
testChangeType( "Religion Added", ChangeType.ADD_RELIGIOUS_AFFILIATION );
testChangeType( "Religion Changed", ChangeType.EDIT_RELIGIOUS_AFFILIATION );
testChangeType( "Religion Removed", ChangeType.DELETE_RELIGIOUS_AFFILIATION );
testChangeType( "Residence Added", ChangeType.ADD_RESIDENCE );
testChangeType( "Residence Changed", ChangeType.EDIT_RESIDENCE );
testChangeType( "Residence Removed", ChangeType.DELETE_RESIDENCE );
testChangeType( "Stillbirth Added", ChangeType.ADD_STILLBORN );
testChangeType( "Stillbirth Changed", ChangeType.EDIT_STILLBORN );
testChangeType( "Stillbirth Removed", ChangeType.DELETE_STILLBORN );
testChangeType( "Couple Event Added", ChangeType.ADD_COUPLE_EVENT );
testChangeType( "Couple Event Changed", ChangeType.EDIT_COUPLE_EVENT );
testChangeType( "Couple Event Removed", ChangeType.DELETE_COUPLE_EVENT );
testChangeType( "Other Event Added", ChangeType.ADD_OTHER_EVENT );
testChangeType( "Other Event Changed", ChangeType.EDIT_OTHER_EVENT );
testChangeType( "Other Event Removed", ChangeType.DELETE_OTHER_EVENT );
testChangeType( "Caste Added", ChangeType.ADD_CASTE_NAME );
testChangeType( "Caste Changed", ChangeType.EDIT_CASTE_NAME );
testChangeType( "Caste Removed", ChangeType.DELETE_CASTE_NAME );
testChangeType( "Clan Added", ChangeType.ADD_CLAN_NAME );
testChangeType( "Clan Changed", ChangeType.EDIT_CLAN_NAME );
testChangeType( "Clan Removed", ChangeType.DELETE_CLAN_NAME );
testChangeType( "Died Before Eight Added", ChangeType.ADD_DIED_BEFORE_EIGHT );
testChangeType( "Died Before Eight Changed", ChangeType.EDIT_DIED_BEFORE_EIGHT );
testChangeType( "Died Before Eight Removed", ChangeType.DELETE_DIED_BEFORE_EIGHT );
testChangeType( "Life Sketch Added", ChangeType.ADD_LIFE_SKETCH );
testChangeType( "Life Sketch Changed", ChangeType.EDIT_LIFE_SKETCH );
testChangeType( "Life Sketch Removed", ChangeType.DELETE_LIFE_SKETCH );
testChangeType( "National Id Added", ChangeType.ADD_NATIONAL_ID );
testChangeType( "National Id Changed", ChangeType.EDIT_NATIONAL_ID );
testChangeType( "National Id Removed", ChangeType.DELETE_NATIONAL_ID );
testChangeType( "Nationality Added", ChangeType.ADD_NATIONAL_ORIGIN );
testChangeType( "Nationality Changed", ChangeType.EDIT_NATIONAL_ORIGIN );
testChangeType( "Nationality Removed", ChangeType.DELETE_NATIONAL_ORIGIN );
testChangeType( "Physical Description Added", ChangeType.ADD_PHYSICAL_DESCRIPTION );
testChangeType( "Physical Description Changed", ChangeType.EDIT_PHYSICAL_DESCRIPTION );
testChangeType( "Physical Description Removed", ChangeType.DELETE_PHYSICAL_DESCRIPTION );
testChangeType( "Ethnicity Added", ChangeType.ADD_RACE );
testChangeType( "Ethnicity Changed", ChangeType.EDIT_RACE );
testChangeType( "Ethnicity Removed", ChangeType.DELETE_RACE );
testChangeType( "Tribe Name Added", ChangeType.ADD_TRIBE_NAME );
testChangeType( "Tribe Name Changed", ChangeType.EDIT_TRIBE_NAME );
testChangeType( "Tribe Name Removed", ChangeType.DELETE_TRIBE_NAME );
testChangeType( "Other Fact Added", ChangeType.ADD_OTHER_FACT );
testChangeType( "Other Fact Changed", ChangeType.EDIT_OTHER_FACT );
testChangeType( "Other Fact Removed", ChangeType.DELETE_OTHER_FACT );
testChangeType( "Gender Added", ChangeType.ADD_GENDER );
testChangeType( "Gender Changed", ChangeType.EDIT_GENDER );
testChangeType( "Gender Removed", ChangeType.DELETE_GENDER );
testChangeType( "Birth Name Added", ChangeType.ADD_BIRTH_NAME);
testChangeType( "Birth Name Changed", ChangeType.EDIT_BIRTH_NAME);
testChangeType( "Birth Name Removed", ChangeType.DELETE_BIRTH_NAME);
testChangeType( "Aka Name Added", ChangeType.ADD_ALTERNATE_NAME );
testChangeType( "Aka Name Changed", ChangeType.EDIT_ALTERNATE_NAME );
testChangeType( "Aka Name Removed", ChangeType.DELETE_ALTERNATE_NAME );
testChangeType( "Aka Name Added", ChangeType.ADD_AKA_NAME );
testChangeType( "Aka Name Changed", ChangeType.EDIT_AKA_NAME );
testChangeType( "Aka Name Removed", ChangeType.DELETE_AKA_NAME );
testChangeType( "Married Name Added", ChangeType.ADD_MARRIED_NAME );
testChangeType( "Married Name Changed", ChangeType.EDIT_MARRIED_NAME );
testChangeType( "Married Name Removed", ChangeType.DELETE_MARRIED_NAME );
testChangeType( "Other Name Added", ChangeType.ADD_OTHER_NAME );
testChangeType( "Other Name Changed", ChangeType.EDIT_OTHER_NAME );
testChangeType( "Other Name Removed", ChangeType.DELETE_OTHER_NAME );
testChangeType( "Nickname Added", ChangeType.ADD_NICK_NAME );
testChangeType( "Nickname Changed", ChangeType.EDIT_NICK_NAME );
testChangeType( "Nickname Removed", ChangeType.DELETE_NICK_NAME );
testChangeType( "Lineage Added", ChangeType.ADD_LINEAGE );
testChangeType( "Lineage Changed", ChangeType.EDIT_LINEAGE );
testChangeType( "Lineage Removed", ChangeType.DELETE_LINEAGE );
testChangeType( "Person Note Added", ChangeType.ADD_PERSON_NOTE);
testChangeType( "Person Note Changed", ChangeType.EDIT_PERSON_NOTE);
testChangeType( "Person Note Removed", ChangeType.DELETE_PERSON_NOTE);
testChangeType( "Couple Note Added", ChangeType.ADD_COUPLE_NOTE);
testChangeType( "Couple Note Changed", ChangeType.EDIT_COUPLE_NOTE);
testChangeType( "Couple Note Removed", ChangeType.DELETE_COUPLE_NOTE);
testChangeType( "Child and Parents Note Added", ChangeType.ADD_CHILD_PARENTS_NOTE);
testChangeType( "Child and Parents Note Changed", ChangeType.EDIT_CHILD_PARENTS_NOTE);
testChangeType( "Child and Parents Note Removed", ChangeType.DELETE_CHILD_PARENTS_NOTE);
}
private void testChangeType( String enumStr, ChangeType changeType ) {
String typeString = changeType.toString();
assertEquals( enumStr, typeString );
typesTested.add( changeType );
}
}