package org.gedcomx.examples; import org.gedcomx.Gedcomx; import org.gedcomx.common.Qualifier; import org.gedcomx.conclusion.Name; import org.gedcomx.conclusion.NameForm; import org.gedcomx.conclusion.NamePart; import org.gedcomx.conclusion.Person; import org.gedcomx.rt.SerializationUtil; import org.gedcomx.types.NamePartQualifierType; import org.gedcomx.types.NamePartType; import org.testng.annotations.Test; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNull; /** * @author Ryan Heaton */ @Test public class NamesExampleTest { public void testBasicWesternName() throws Exception { NameForm nameForm = new NameForm("John Fitzgerald Kennedy") .lang("en") .part(NamePartType.Given, "John") .part(NamePartType.Given, "Fitzgerald") .part(NamePartType.Surname, "Kennedy"); Name name = new Name().nameForm(nameForm); Gedcomx gx = new Gedcomx().person(new Person().name(name)); SerializationUtil.processThroughXml(gx); SerializationUtil.processThroughJson(gx); } public void testMultipleJapaneseForms() throws Exception { NameForm kanji = new NameForm("山田太郎") .lang("ja-Hani") .part(NamePartType.Surname, "山田") .part(NamePartType.Given, "太郎"); NameForm katakana = new NameForm("ヤマダタロー") .lang("ja-Kana") .part(NamePartType.Surname, "ヤマダ") .part(NamePartType.Given, "タロー"); NameForm romanized = new NameForm("Yamada Tarō") .lang("ja-Latn") .part(NamePartType.Surname, "Tarō") .part(NamePartType.Given, "Yamada"); Name name = new Name().nameForm(kanji).nameForm(katakana).nameForm(romanized); Gedcomx gx = new Gedcomx().person(new Person().name(name)); SerializationUtil.processThroughXml(gx); SerializationUtil.processThroughJson(gx); } public void testMultipleNamePartsOnePartPerType() throws Exception { NameForm nameForm = new NameForm("José Eduardo Santos Tavares Melo Silva") .lang("pt-BR") .part(NamePartType.Given, "José Eduardo") .part(NamePartType.Surname, "Santos Tavares Melo Silva"); Name name = new Name().nameForm(nameForm); Gedcomx gx = new Gedcomx().person(new Person().name(name)); SerializationUtil.processThroughXml(gx); SerializationUtil.processThroughJson(gx); } public void testMultipleNamePartsMultiplePartsPerType() throws Exception { NameForm nameForm = new NameForm("José Eduardo Santos Tavares Melo Silva") .lang("pt-BR") .part(NamePartType.Given, "José") .part(NamePartType.Given, "Eduardo") .part(NamePartType.Surname, "Santos") .part(NamePartType.Surname, "Tavares") .part(NamePartType.Surname, "Melo") .part(NamePartType.Surname, "Silva"); Name name = new Name().nameForm(nameForm); Gedcomx gx = new Gedcomx().person(new Person().name(name)); SerializationUtil.processThroughXml(gx); SerializationUtil.processThroughJson(gx); } public void testPatronymic() throws Exception { NameForm nameForm = new NameForm("Björk Guðmundsdóttir") .lang("is") .part(NamePartType.Given, "Björk") .part(new NamePart().value("Guðmundsdóttir").qualifier(new Qualifier(NamePartQualifierType.Patronymic))); Name name = new Name().nameForm(nameForm); Gedcomx gx = new Gedcomx().person(new Person().name(name)); SerializationUtil.processThroughXml(gx); SerializationUtil.processThroughJson(gx); } public void testGetPart() throws Exception { NameForm nameForm = new NameForm("John Fitzgerald Kennedy") .lang("en") .part(NamePartType.Given, "John") .part(NamePartType.Given, "Fitzgerald") .part(NamePartType.Surname, "Kennedy"); Name name = new Name().nameForm(nameForm); assertEquals("John", name.getPart(NamePartType.Given)); assertEquals("Kennedy", name.getPart(NamePartType.Surname)); Name nameNoForms = new Name(); assertNull(nameNoForms.getPart(NamePartType.Given)); assertNull(nameNoForms.getPart(NamePartType.Surname)); Name nameNullForm = new Name().nameForm(null); assertNull(nameNullForm.getPart(NamePartType.Given)); assertNull(nameNullForm.getPart(NamePartType.Surname)); NameForm nameFormNoParts = new NameForm("John Fitzgerald Kennedy") .lang("en"); Name nameNoParts = new Name().nameForm(nameFormNoParts); assertNull(nameNoParts.getPart(NamePartType.Given)); assertNull(nameNoParts.getPart(NamePartType.Surname)); NameForm nameFormNullParts = new NameForm("John Fitzgerald Kennedy") .lang("en") .part(NamePartType.Given, null) .part(NamePartType.Surname, null); Name nameNullParts = new Name().nameForm(nameFormNullParts); assertNull(nameNullParts.getPart(NamePartType.Given)); assertNull(nameNullParts.getPart(NamePartType.Surname)); } }