package org.pac4j.vertx.auth; import io.vertx.core.buffer.Buffer; import org.junit.Test; import org.pac4j.vertx.profile.TestOAuth1Profile; import org.pac4j.vertx.profile.TestOAuth2Profile; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; /** * @author Jeremy Prime */ public class Pac4jUserTest { private static final String TEST_USER_ID_1 = "testUserId1"; private static final String TEST_CLIENT_1 = "testClient1"; private static final String TEST_SECRET_1 = "testSecret1"; private static final String TEST_ACCESS_TOKEN_1 = "testAccessToken1"; private static final String TEST_USER_ID_2 = "testUserId2"; private static final String TEST_CLIENT_2 = "testClient2"; private static final String TEST_ACCESS_TOKEN_2 = "testAccessToken2"; @Test public void testClusterSerializationAndDeserializationSingleProfile() throws Exception { final TestOAuth1Profile profileToSerialize = getTestOAuth1Profile(); final Pac4jUser userToSerialize = new Pac4jUser(); userToSerialize.setUserProfile(TEST_CLIENT_1, profileToSerialize, false); final Buffer buf = Buffer.buffer(); userToSerialize.writeToBuffer(buf); final Pac4jUser deserializedUser = new Pac4jUser(); deserializedUser.readFromBuffer(0, buf); final TestOAuth1Profile profile = (TestOAuth1Profile) deserializedUser.pac4jUserProfiles().get(TEST_CLIENT_1); assertThat(profile, is(profileToSerialize)); assertThat(deserializedUser.principal().encodePrettily(), is(userToSerialize.principal().encodePrettily())); } @Test public void testClusterSerializationAndDeserializationMultipleProfiles() throws Exception { final TestOAuth1Profile oAuth1Profile = getTestOAuth1Profile(); final TestOAuth2Profile oAuth2Profile = getTestOAuth2Profile(); final Pac4jUser userToSerialize = new Pac4jUser(); userToSerialize.setUserProfile(TEST_CLIENT_1, oAuth1Profile, true); userToSerialize.setUserProfile(TEST_CLIENT_2, oAuth2Profile, true); final Buffer buf = Buffer.buffer(); userToSerialize.writeToBuffer(buf); final Pac4jUser deserializedUser = new Pac4jUser(); deserializedUser.readFromBuffer(0, buf); final TestOAuth1Profile deserializedOAuth1Profile = (TestOAuth1Profile) deserializedUser.pac4jUserProfiles().get(TEST_CLIENT_1); final TestOAuth2Profile deserializedOAuth2Profile = (TestOAuth2Profile) deserializedUser.pac4jUserProfiles().get(TEST_CLIENT_2); assertThat(deserializedOAuth1Profile, is(oAuth1Profile)); assertThat(deserializedOAuth2Profile, is(oAuth2Profile)); } private static TestOAuth1Profile getTestOAuth1Profile() { final TestOAuth1Profile profileToSerialize = new TestOAuth1Profile(); profileToSerialize.setId(TEST_USER_ID_1); profileToSerialize.setClientName(TEST_CLIENT_1); profileToSerialize.setAccessSecret(TEST_SECRET_1); profileToSerialize.setAccessToken(TEST_ACCESS_TOKEN_1); return profileToSerialize; } private static TestOAuth2Profile getTestOAuth2Profile() { final TestOAuth2Profile profileToSerialize = new TestOAuth2Profile(); profileToSerialize.setId(TEST_USER_ID_2); profileToSerialize.setClientName(TEST_CLIENT_2); profileToSerialize.setAccessToken(TEST_ACCESS_TOKEN_2); return profileToSerialize; } }