package org.gedcomx.conclusion; import org.gedcomx.common.Attribution; import org.gedcomx.common.ResourceReference; import org.gedcomx.source.SourceReference; import org.gedcomx.common.URI; import org.gedcomx.types.EventRoleType; import org.gedcomx.types.EventType; import org.testng.annotations.Test; import java.util.ArrayList; import static org.gedcomx.rt.SerializationUtil.processThroughJson; import static org.gedcomx.rt.SerializationUtil.processThroughXml; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertNull; /** * @author Ryan Heaton */ @Test public class EventTest { public void testCtors() throws Exception { Event event; event = new Event(); assertNull(event.getAttribution()); assertNull(event.getConfidence()); assertNull(event.getDate()); assertNull(event.getExtensionElements()); assertNull(event.getId()); assertNull(event.getKnownType()); assertNull(event.getLang()); assertNull(event.getLink("junkRel")); assertNull(event.getLinks()); assertEquals(0, event.getLinks("junkRel").size()); assertNull(event.getNotes()); assertNull(event.getPlace()); assertNull(event.getRoles()); assertNull(event.getSources()); assertNull(event.getType()); assertNull(event.getTransientProperty("junkProp")); event = new Event(EventType.Birth); assertEquals(EventType.Birth, event.getKnownType()); assertEquals("http://gedcomx.org/Birth", event.getType().toURI().toString()); assertNull(event.getAttribution()); assertNull(event.getConfidence()); assertNull(event.getDate()); assertNull(event.getExtensionElements()); assertNull(event.getId()); assertNull(event.getLang()); assertNull(event.getLink("junkRel")); assertNull(event.getLinks()); assertEquals(0, event.getLinks("junkRel").size()); assertNull(event.getNotes()); assertNull(event.getPlace()); assertNull(event.getRoles()); assertNull(event.getSources()); assertNull(event.getTransientProperty("junkProp")); Date date = new Date(); date.setOriginal("junkDate"); PlaceReference place = new PlaceReference(); place.setOriginal("junkPlace"); event = new Event(EventType.Birth, date, place); assertEquals(EventType.Birth, event.getKnownType()); assertEquals("http://gedcomx.org/Birth", event.getType().toURI().toString()); assertEquals("junkDate", event.getDate().getOriginal()); assertEquals("junkPlace", event.getPlace().getOriginal()); assertNull(event.getAttribution()); assertNull(event.getConfidence()); assertNull(event.getExtensionElements()); assertNull(event.getId()); assertNull(event.getLang()); assertNull(event.getLink("junkRel")); assertNull(event.getLinks()); assertEquals(0, event.getLinks("junkRel").size()); assertNull(event.getNotes()); assertNull(event.getRoles()); assertNull(event.getSources()); assertNull(event.getTransientProperty("junkProp")); } public void testSetKnownTypeWithNull() throws Exception { Event event = new Event(); event.setKnownType(null); assertNull(event.getKnownType()); } /** * tests processing a event through xml... */ public void testEventXml() throws Exception { Event event = createTestEvent(); event = processThroughXml(event); assertTestEvent(event); } /** * tests processing a event through json... */ public void testPersonJson() throws Exception { Event event = createTestEvent(); event = processThroughJson(event); assertTestEvent(event); } private Event createTestEvent() { Event event = new Event(); event.setKnownType(EventType.Marriage); event.setAttribution(new Attribution()); event.getAttribution().setChangeMessage("explanation"); event.setDate(new Date()); event.getDate().setOriginal("date"); event.setPlace(new PlaceReference()); event.getPlace().setOriginal("place"); event.setRoles(new ArrayList<EventRole>()); EventRole role = new EventRole(); role.setKnownType(EventRoleType.Official); role.setPerson(new ResourceReference()); role.getPerson().setResource(URI.create("urn:person")); event.getRoles().add(role); SourceReference sourceReference = new SourceReference(); sourceReference.setDescriptionRef(URI.create("urn:source-ref")); event.addSource(sourceReference); return event; } private void assertTestEvent(Event event) { assertEquals(EventType.Marriage, event.getKnownType()); assertEquals("explanation", event.getAttribution().getChangeMessage()); assertEquals("date", event.getDate().getOriginal()); assertEquals("place", event.getPlace().getOriginal()); assertEquals(1, event.getRoles().size()); assertEquals(EventRoleType.Official, event.getRoles().get(0).getKnownType()); assertEquals("urn:person", event.getRoles().get(0).getPerson().getResource().toString()); assertEquals("urn:source-ref", event.getSources().get(0).getDescriptionRef().toURI().toString()); } }