Skip to content

Commit 288269f

Browse files
committed
More functional tests for name parser.
1 parent 87daa53 commit 288269f

File tree

1 file changed

+77
-5
lines changed

1 file changed

+77
-5
lines changed

src/test/functional/java/org/nameapi/client/services/parser/personnameparser/PersonNameParserCommandTest.java

Lines changed: 77 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,19 @@
55
import org.nameapi.client.services.FunctionalTestsNameApiModeFactory;
66
import org.nameapi.client.lib.NameApiRemoteExecutors;
77
import org.nameapi.client.services.AbstractTest;
8+
import org.nameapi.ontology5.input.entities.person.LegalInputPerson;
9+
import org.nameapi.ontology5.input.entities.person.LegalInputPersonBuilder;
810
import org.nameapi.ontology5.input.entities.person.NaturalInputPerson;
911
import org.nameapi.ontology5.input.entities.person.NaturalInputPersonBuilder;
12+
import org.nameapi.ontology5.input.entities.person.gender.ComputedPersonGender;
13+
import org.nameapi.ontology5.input.entities.person.name.builder.AmericanInputPersonNameBuilder;
14+
import org.nameapi.ontology5.input.entities.person.name.builder.NameBuilders;
15+
import org.nameapi.ontology5.input.entities.person.name.builder.WesternInputPersonNameBuilder;
1016
import org.nameapi.ontology5.output.entities.person.name.OutputPersonName;
1117
import org.nameapi.ontology5.output.entities.person.name.TermType;
1218
import org.nameapi.ontology5.services.parser.personnameparser.ParsedPerson;
1319
import org.nameapi.ontology5.services.parser.personnameparser.PersonNameParserResult;
20+
import org.testng.annotations.DataProvider;
1421
import org.testng.annotations.Test;
1522

1623
import static org.testng.Assert.assertEquals;
@@ -21,16 +28,81 @@ public class PersonNameParserCommandTest extends AbstractTest {
2128

2229
private final CommandExecutor executor = NameApiRemoteExecutors.get();
2330

24-
@Test
25-
public void testCall() throws Exception {
31+
@Test(dataProvider = "testNaturalPerson_1")
32+
public void testNaturalPerson_1(NaturalInputPerson inputPerson) throws Exception {
2633
PersonNameParserCommand command = new PersonNameParserCommand();
2734
Mode mode = FunctionalTestsNameApiModeFactory.functionalTest();
28-
NaturalInputPerson person = new NaturalInputPersonBuilder().name(makeName("Petra Müller")).build();
29-
PersonNameParserResult result = executor.execute(command, mode, person).get();
35+
PersonNameParserResult result = executor.execute(command, mode, inputPerson).get();
3036
ParsedPerson parsedPerson = result.getBestMatch().getParsedPerson();
31-
OutputPersonName firstName = parsedPerson.getNames().get(0);
37+
OutputPersonName firstName = parsedPerson.getOutputPersonName();
3238
assertEquals("Petra", firstName.getFirst(TermType.GIVENNAME).get().getString());
3339
assertEquals("Müller", firstName.getFirst(TermType.SURNAME).get().getString());
40+
assertEquals(parsedPerson.getGender().getGender(), ComputedPersonGender.FEMALE);
41+
}
42+
@DataProvider
43+
protected Object[][] testNaturalPerson_1() {
44+
return new Object[][]{
45+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().fullname("Petra Müller").build()).build()},
46+
{new NaturalInputPersonBuilder().name(new WesternInputPersonNameBuilder().givenName("Petra").surname("Müller").build()).build()}
47+
};
48+
}
49+
50+
@Test
51+
public void testAmericanStyle_1() throws Exception {
52+
NaturalInputPerson inputPerson = new NaturalInputPersonBuilder().name(new AmericanInputPersonNameBuilder()
53+
.prefix("Dr.")
54+
.givenName("Peter")
55+
.middleName("T.")
56+
.surname("Johnson")
57+
.suffix("jr")
58+
.build()).build();
59+
PersonNameParserCommand command = new PersonNameParserCommand();
60+
Mode mode = FunctionalTestsNameApiModeFactory.functionalTest();
61+
PersonNameParserResult result = executor.execute(command, mode, inputPerson).get();
62+
ParsedPerson parsedPerson = result.getBestMatch().getParsedPerson();
63+
OutputPersonName firstName = parsedPerson.getOutputPersonName();
64+
assertEquals("Dr.", firstName.getFirst(TermType.TITLE).get().getString());
65+
assertEquals("Peter", firstName.getFirst(TermType.GIVENNAME).get().getString());
66+
assertEquals("T.", firstName.getFirst(TermType.MIDDLENAME).get().getString()); //TODO will be MIDDLENAMEINITIAL
67+
assertEquals("Johnson", firstName.getFirst(TermType.SURNAME).get().getString());
68+
assertEquals("jr", firstName.getFirst(TermType.QUALIFIER).get().getString());
69+
assertEquals(parsedPerson.getGender().getGender(), ComputedPersonGender.MALE);
70+
}
71+
@Test
72+
public void testAmericanStyle_2() throws Exception {
73+
NaturalInputPerson inputPerson = new NaturalInputPersonBuilder().name(new AmericanInputPersonNameBuilder()
74+
.fullname("Dr. Peter T. Johnson jr")
75+
.build()).build();
76+
PersonNameParserCommand command = new PersonNameParserCommand();
77+
Mode mode = FunctionalTestsNameApiModeFactory.functionalTest();
78+
PersonNameParserResult result = executor.execute(command, mode, inputPerson).get();
79+
ParsedPerson parsedPerson = result.getBestMatch().getParsedPerson();
80+
OutputPersonName firstName = parsedPerson.getOutputPersonName();
81+
assertEquals("Dr.", firstName.getFirst(TermType.TITLE).get().getString());
82+
assertEquals("Peter", firstName.getFirst(TermType.GIVENNAME).get().getString());
83+
//assertEquals("T.", firstName.getFirst(TermType.MIDDLENAME).get().getString()); //currenty GIVENNAMEINITIAL because the client has to send a flag saying he prefers American style names. TODO will be MIDDLENAMEINITIAL
84+
assertEquals("Johnson", firstName.getFirst(TermType.SURNAME).get().getString());
85+
assertEquals("jr", firstName.getFirst(TermType.QUALIFIER).get().getString());
86+
assertEquals(parsedPerson.getGender().getGender(), ComputedPersonGender.MALE);
87+
}
88+
89+
90+
@Test(dataProvider = "testLegalPerson_1")
91+
public void testLegalPerson_1(LegalInputPerson inputPerson) throws Exception {
92+
PersonNameParserCommand command = new PersonNameParserCommand();
93+
Mode mode = FunctionalTestsNameApiModeFactory.functionalTest();
94+
PersonNameParserResult result = executor.execute(command, mode, inputPerson).get();
95+
ParsedPerson parsedPerson = result.getBestMatch().getParsedPerson();
96+
OutputPersonName firstName = parsedPerson.getOutputPersonName();
97+
assertEquals("Google", firstName.getFirst(TermType.BUSINESSNAME).get().getString());
98+
assertEquals("Inc.", firstName.getFirst(TermType.BUSINESSLEGALFORM).get().getString());
99+
}
100+
@DataProvider
101+
protected Object[][] testLegalPerson_1() {
102+
return new Object[][]{
103+
{new LegalInputPersonBuilder().name(NameBuilders.legal().name("Google Inc.").build()).build()},
104+
{new LegalInputPersonBuilder().name(NameBuilders.legal().name("Google").legalForm("Inc.").build()).build()}
105+
};
34106
}
35107

36108
}

0 commit comments

Comments
 (0)