package service; import static org.fest.assertions.Assertions.assertThat; import static org.junit.Assert.fail; import java.util.UUID; import org.junit.Test; import com.feth.play.module.pa.user.AuthUser; import com.feth.play.module.pa.user.AuthUserIdentity; import com.feth.play.module.pa.user.EmailIdentity; import providers.JackrabbitEmailPasswordAuthProvider.LoginUser; public class SimpleUserServicePluginTest { @Test public void testSave() { final SimpleUserServicePlugin plugin = new SimpleUserServicePlugin(null); { final AuthUser user = new LoginUser("password", "user@example.test"); assertThat(plugin.save(user)).isEqualTo(user); } try { final AuthUser user = new AuthUser() { private static final long serialVersionUID = 1L; @Override public String getProvider() { return "unknown"; } @Override public String getId() { return UUID.randomUUID().toString(); } }; plugin.save(user); fail("Should have triggered exception."); } catch (UnsupportedOperationException e) { // Good } } @Test public void testGetLocalIdentity() { final SimpleUserServicePlugin plugin = new SimpleUserServicePlugin(null); { final AuthUserIdentity identity = new AuthUserIdentity() { @Override public String getId() { return "user@example.test"; } @Override public String getProvider() { return "password"; } }; final EmailIdentity emailIdentity = (EmailIdentity) plugin.getLocalIdentity(identity); assertThat(emailIdentity.getId()).isEqualTo(identity.getId()); assertThat(emailIdentity.getProvider()).isEqualTo(identity.getProvider()); assertThat(emailIdentity.getEmail()).isEqualTo(identity.getId()); } try { final AuthUserIdentity identity = new AuthUserIdentity() { @Override public String getId() { return UUID.randomUUID().toString(); } @Override public String getProvider() { return "unknown"; } }; plugin.getLocalIdentity(identity); fail("Should have triggered exception."); } catch (UnsupportedOperationException e) { // Good } } @Test public void testMerge() { final SimpleUserServicePlugin plugin = new SimpleUserServicePlugin(null); // Not implemented, but this stub behaviour should be safe final AuthUser oldUser = new LoginUser("password", "old@example.test"); final AuthUser newUser = new LoginUser("password", "new@example.test"); assertThat(plugin.merge(newUser, oldUser)).isEqualTo(newUser); } @Test public void testLink() { final SimpleUserServicePlugin plugin = new SimpleUserServicePlugin(null); // Not implemented, but this stub behaviour should be safe final AuthUser oldUser = new LoginUser("password", "old@example.test"); final AuthUser newUser = new LoginUser("password", "new@example.test"); assertThat(plugin.link(oldUser, newUser)).isEqualTo(newUser); } }