/*
* Copyright (C) 2003-2011 eXo Platform SAS.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.exoplatform.social.core.space;
import java.util.ArrayList;
import java.util.List;
import junit.framework.AssertionFailedError;
import org.exoplatform.portal.config.UserPortalConfigService;
import org.exoplatform.portal.mop.user.UserPortal;
import org.exoplatform.portal.pom.config.POMSession;
import org.exoplatform.portal.pom.config.POMSessionManager;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import org.exoplatform.services.security.Authenticator;
import org.exoplatform.services.security.ConversationState;
import org.exoplatform.social.core.identity.model.Identity;
import org.exoplatform.social.core.identity.provider.OrganizationIdentityProvider;
import org.exoplatform.social.core.storage.api.IdentityStorage;
import org.exoplatform.social.core.test.AbstractCoreTest;
/**
* Created by The eXo Platform SAS
* Author : Thanh_VuCong
* thanhvc@exoplatform.com
* Sep 21, 2011
*/
public class SpaceUtilsRestTest extends AbstractCoreTest {
private final Log LOG = ExoLogger.getLogger(SpaceUtilsRestTest.class);
private IdentityStorage identityStorage;
private UserPortalConfigService userPortalConfigSer_;
/** . */
private POMSessionManager mgr = null;
/** . */
private Authenticator authenticator = null;
private List<Identity> tearDownUserList = null;
private Identity root = null;
@Override
public void setUp() throws Exception {
identityStorage = (IdentityStorage) getContainer().getComponentInstanceOfType(IdentityStorage.class);
mgr = (POMSessionManager)getContainer().getComponentInstanceOfType(POMSessionManager.class);
authenticator = (Authenticator)getContainer().getComponentInstanceOfType(Authenticator.class);
root = new Identity(OrganizationIdentityProvider.NAME, "root");
identityStorage.saveIdentity(root);
tearDownUserList = new ArrayList<Identity>();
tearDownUserList.add(root);
}
@Override
public void tearDown() throws Exception {
for (Identity identity : tearDownUserList) {
identityStorage.deleteIdentity(identity);
}
}
public void testGetUserPortalForRest() throws Exception {
new UnitTest() {
@Override
protected void execute() throws Exception {
UserPortal userPortal = SpaceUtils.getUserPortalForRest();
assertNotNull(userPortal);
}
}.execute(root.getRemoteId());
}
public void testGetUserPortal() throws Exception {
new UnitTest() {
@Override
protected void execute() throws Exception {
UserPortal userPortal = SpaceUtils.getUserPortal();
assertNotNull(userPortal);
}
}.execute(root.getRemoteId());
}
private abstract class UnitTest {
/** . */
private POMSession mopSession;
protected final void execute(String userId) {
Throwable failure = null;
//
begin();
//
ConversationState conversationState = null;
if (userId != null) {
try {
conversationState = new ConversationState(authenticator.createIdentity(userId));
} catch (Exception e) {
failure = e;
}
}
//
if (failure == null) {
// Clear cache for test
mgr.clearCache();
//
mopSession = mgr.openSession();
//
ConversationState.setCurrent(conversationState);
try {
execute();
} catch (Exception e) {
failure = e;
} finally {
ConversationState.setCurrent(null);
mopSession.close(false);
end();
}
}
// Report error as a junit assertion failure
if (failure != null) {
AssertionFailedError err = new AssertionFailedError();
err.initCause(failure);
throw err;
}
}
protected abstract void execute() throws Exception;
}
}