/*
* Copyright (c) 2010-2011 Lockheed Martin Corporation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.eurekastreams.server.testing;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Map;
import org.eurekastreams.commons.actions.context.ActionContext;
import org.eurekastreams.commons.actions.context.Principal;
import org.eurekastreams.commons.actions.context.PrincipalActionContext;
import org.eurekastreams.commons.actions.context.TaskHandlerActionContext;
import org.eurekastreams.commons.actions.context.async.AsyncActionContext;
import org.eurekastreams.commons.server.UserActionRequest;
import org.junit.Ignore;
/**
* Convenience routines for creating action contexts for testing execution strategies. For ease of use does not handle
* all features or cases, but should handle most.
*/
@Ignore
public final class TestContextCreator
{
/**
* Constructor to block instantiation.
*/
private TestContextCreator()
{
}
/**
* Creates a TaskHandlerActionContext<AsyncActionContext> - used for actions invoked asynchronously which can queue
* activities.
*
* @param params
* Action parameters.
* @return Context.
*/
public static TaskHandlerActionContext<ActionContext> createTaskHandlerAsyncContext(final Serializable params)
{
return new TaskHandlerActionContext<ActionContext>(new AsyncActionContext(params),
new ArrayList<UserActionRequest>());
}
/**
* Creates a TaskHandlerActionContext<PrincipalActionContext> - used for actions invoked directly by user action
* which can queue activities.
*
* @param params
* Action parameters.
* @param userAccountId
* User's account ID.
* @param userId
* User's person ID.
* @return Context.
*/
public static TaskHandlerActionContext<PrincipalActionContext> createTaskHandlerContextWithPrincipal(
final Serializable params, final String userAccountId, final long userId)
{
final Principal principal = createPrincipal(userAccountId, userId);
return createTaskHandlerContextWithPrincipal(params, principal);
}
/**
* Creates a TaskHandlerActionContext<PrincipalActionContext> - used for actions invoked directly by user action
* which can queue activities.
*
* @param params
* Action parameters.
* @param principal
* Principal for user requesting action.
* @return Context.
*/
public static TaskHandlerActionContext<PrincipalActionContext> createTaskHandlerContextWithPrincipal(
final Serializable params, final Principal principal)
{
return new TaskHandlerActionContext<PrincipalActionContext>(createPrincipalActionContext(params, principal),
new ArrayList<UserActionRequest>());
}
/**
* Creates a PrincipalActionContext - used for actions invoked directly by user action which do not queue
* activities.
*
* @param params
* Action parameters.
* @param userAccountId
* User's account ID.
* @param userId
* User's person ID.
* @return Context.
*/
public static PrincipalActionContext createPrincipalActionContext(final Serializable params,
final String userAccountId, final long userId)
{
final Principal principal = createPrincipal(userAccountId, userId);
return createPrincipalActionContext(params, principal);
}
/**
* Creates a PrincipalActionContext - used for actions invoked directly by user action which do not queue
* activities.
*
* @param params
* Action parameters.
* @param principal
* Principal for user requesting action.
* @return Context.
*/
public static PrincipalActionContext createPrincipalActionContext(final Serializable params,
final Principal principal)
{
return new PrincipalActionContext()
{
/** Fingerprint. */
private static final long serialVersionUID = 8084060031869042700L;
@Override
public Map<String, Object> getState()
{
return null;
}
@Override
public Serializable getParams()
{
return params;
}
@Override
public String getActionId()
{
return null;
}
@Override
public void setActionId(final String inActionId)
{
}
@Override
public Principal getPrincipal()
{
return principal;
}
};
}
/**
* Creates a principal.
*
* @param userAccountId
* User's account ID.
* @param userId
* User's person ID.
* @return Principal.
*/
public static Principal createPrincipal(final String userAccountId, final long userId)
{
return createPrincipal(userAccountId, userId, null);
}
/**
* Creates a principal.
*
* @param userAccountId
* User's account ID.
* @param userId
* User's person ID.
* @param openSocialId
* User's OpenSocial ID.
* @return Principal.
*/
public static Principal createPrincipal(final String userAccountId, final long userId, final String openSocialId)
{
return new Principal()
{
/** Fingerprint */
private static final long serialVersionUID = -6797414788351285562L;
@Override
public String getAccountId()
{
return userAccountId;
}
@Override
public Long getId()
{
return userId;
}
@Override
public String getOpenSocialId()
{
return openSocialId;
}
@Override
public String getSessionId()
{
return null;
}
};
}
}