package org.pac4j.oauth.run;
import org.pac4j.core.client.IndirectClient;
import org.pac4j.core.profile.CommonProfile;
import org.pac4j.core.run.RunClient;
import org.pac4j.core.profile.Gender;
import org.pac4j.core.profile.ProfileHelper;
import org.pac4j.core.util.CommonHelper;
import org.pac4j.oauth.client.LinkedIn2Client;
import org.pac4j.oauth.profile.linkedin2.*;
import java.util.List;
import static org.junit.Assert.*;
/**
* Run manually a test for the {@link LinkedIn2Client}.
*
* @author Jerome Leleu
* @since 1.9.0
*/
public final class RunLinkedIn2Client extends RunClient {
public static void main(String[] args) throws Exception {
new RunLinkedIn2Client().run();
}
@Override
protected String getLogin() {
return "testscribeup@gmail.com";
}
@Override
protected String getPassword() {
return "testpwdscribeup56";
}
@Override
protected IndirectClient getClient() {
final LinkedIn2Client client = new LinkedIn2Client();
client.setKey("gsqj8dn56ayn");
client.setSecret("kUFAZ2oYvwMQ6HFl");
client.setScope("r_basicprofile r_emailaddress rw_company_admin w_share");
client.setCallbackUrl(PAC4J_URL);
return client;
}
@Override
protected boolean canCancel() {
return true;
}
@Override
protected void verifyProfile(CommonProfile userProfile) {
final LinkedIn2Profile profile = (LinkedIn2Profile) userProfile;
assertEquals("JJjS_5BOzW", profile.getId());
assertEquals(LinkedIn2Profile.class.getName() + CommonProfile.SEPARATOR + "JJjS_5BOzW",
profile.getTypedId());
assertTrue(ProfileHelper.isTypedIdOf(profile.getTypedId(), LinkedIn2Profile.class));
assertTrue(CommonHelper.isNotBlank(profile.getAccessToken()));
assertCommonProfile(userProfile,
"testscribeup@gmail.com",
"test",
"scribeUp",
"test scribeUp",
null,
Gender.UNSPECIFIED,
null,
"https://media.licdn.com/mpr/mprx/0_XGm9Ldp1WfMsB74Zk32WLwptW7DZvoWZQisWLwSfnuJeEmY4eXYVwIJ3bFSb9DeNL3uHo21cF5lC",
"https://www.linkedin.com/in/test-scribeup-16b0aa48", "Paris Area, France");
final LinkedIn2Location location = profile.getCompleteLocation();
assertEquals("Paris Area, France", location.getName());
assertNull(profile.getMaidenName());
assertEquals("ScribeUP développeur chez OpenSource", profile.getHeadline());
assertEquals("Information Technology and Services", profile.getIndustry());
assertEquals(1, profile.getNumConnections().intValue());
assertEquals("This is a summary...", profile.getSummary());
assertNull(profile.getSpecialties());
final List<LinkedIn2Position> positions = profile.getPositions();
assertEquals(2, positions.size());
final LinkedIn2Position position = positions.get(0);
assertEquals("417494299", position.getId());
assertEquals("Developer", position.getTitle());
assertEquals("Desc", position.getSummary());
final LinkedIn2Date startDate = position.getStartDate();
assertEquals(2012, startDate.getYear().intValue());
assertEquals(3, startDate.getMonth().intValue());
assertNull(position.getEndDate());
final LinkedIn2Company company = position.getCompany();
assertEquals("PAC4J", company.getName());
assertNull(company.getIndustry());
assertEquals("https://www.linkedin.com/profile/view?id=AAoAAAn67mMBxVIxeJXn2T6XBvOFEAMLv7RiJQQ&authType=name&authToken=_IWF&trk=api*a167383*s175634*",
profile.getSiteStandardProfileRequest());
assertEquals("AAoAAAn67mMBxVIxeJXn2T6XBvOFEAMLv7RiJQQ", profile.getOAuth10Id());
assertEquals(16, profile.getAttributes().size());
}
}