55import org .nameapi .client .services .FunctionalTestsNameApiModeFactory ;
66import org .nameapi .client .lib .NameApiRemoteExecutors ;
77import org .nameapi .client .services .AbstractTest ;
8+ import org .nameapi .ontology5 .input .entities .person .LegalInputPerson ;
9+ import org .nameapi .ontology5 .input .entities .person .LegalInputPersonBuilder ;
810import org .nameapi .ontology5 .input .entities .person .NaturalInputPerson ;
911import 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 ;
1016import org .nameapi .ontology5 .output .entities .person .name .OutputPersonName ;
1117import org .nameapi .ontology5 .output .entities .person .name .TermType ;
1218import org .nameapi .ontology5 .services .parser .personnameparser .ParsedPerson ;
1319import org .nameapi .ontology5 .services .parser .personnameparser .PersonNameParserResult ;
20+ import org .testng .annotations .DataProvider ;
1421import org .testng .annotations .Test ;
1522
1623import 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