package org.marketcetera.saclient.rpc; import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; import org.marketcetera.module.ModuleInfo; import org.marketcetera.module.ModuleURN; import org.marketcetera.saclient.CreateStrategyParameters; import com.google.common.collect.Lists; import com.google.common.collect.Maps; /* $License$ */ /** * Provides an implementation of <code>SAClientServiceAdapter</code> for testing. * * @author <a href="mailto:colin@marketcetera.com">Colin DuPlantis</a> * @version $Id: MockSAClientServiceAdapter.java 16901 2014-05-11 16:14:11Z colin $ * @since 2.4.0 */ public class MockSAClientServiceAdapter implements SAServiceAdapter { /* (non-Javadoc) * @see org.marketcetera.saclient.rpc.SAClientServiceAdapter#getProviders() */ @Override public List<ModuleURN> getProviders() { providersCount.incrementAndGet(); return providersToReturn; } /* (non-Javadoc) * @see org.marketcetera.saclient.rpc.SAClientServiceAdapter#getInstances(org.marketcetera.module.ModuleURN) */ @Override public List<ModuleURN> getInstances(ModuleURN inProvider) { instancesRequests.add(inProvider); return instancesToReturn; } /* (non-Javadoc) * @see org.marketcetera.saclient.rpc.SAClientServiceAdapter#getModuleInfo(org.marketcetera.module.ModuleURN) */ @Override public ModuleInfo getModuleInfo(ModuleURN inInstance) { moduleInfoRequests.add(inInstance); return moduleInfoToReturn; } /* (non-Javadoc) * @see org.marketcetera.saclient.rpc.SAClientServiceAdapter#start(org.marketcetera.module.ModuleURN) */ @Override public void start(ModuleURN inInstance) { startRequests.add(inInstance); } /* (non-Javadoc) * @see org.marketcetera.saclient.rpc.SAClientServiceAdapter#stop(org.marketcetera.module.ModuleURN) */ @Override public void stop(ModuleURN inInstance) { stopRequests.add(inInstance); } /* (non-Javadoc) * @see org.marketcetera.saclient.rpc.SAClientServiceAdapter#delete(org.marketcetera.module.ModuleURN) */ @Override public void delete(ModuleURN inInstance) { deleteRequests.add(inInstance); } /* (non-Javadoc) * @see org.marketcetera.saclient.rpc.SAClientServiceAdapter#getProperties(org.marketcetera.module.ModuleURN) */ @Override public Map<String,Object> getProperties(ModuleURN inInstance) { propertiesRequests.add(inInstance); return propertiesToReturn; } /* (non-Javadoc) * @see org.marketcetera.saclient.rpc.SAClientServiceAdapter#setProperties(org.marketcetera.module.ModuleURN, java.util.Map) */ @Override public Map<String,Object> setProperties(ModuleURN inInstance, Map<String,Object> inProperties) { propertiesRequests.add(inInstance); return inProperties; } /* (non-Javadoc) * @see org.marketcetera.saclient.rpc.SAClientServiceAdapter#createStrategy(org.marketcetera.saclient.CreateStrategyParameters) */ @Override public ModuleURN createStrategy(CreateStrategyParameters inParameters) { createStrategyRequests.add(inParameters); return createModuleURNToReturn; } /* (non-Javadoc) * @see org.marketcetera.saclient.rpc.SAClientServiceAdapter#getStrategyCreateParms(org.marketcetera.module.ModuleURN) */ @Override public CreateStrategyParameters getStrategyCreateParms(ModuleURN inInstance) { strategyCreateParmsRequests.add(inInstance); return parametersToReturn; } /* (non-Javadoc) * @see org.marketcetera.saclient.rpc.SAClientServiceAdapter#sendData(java.lang.Object) */ @Override public void sendData(Object inData) { sentData = inData; } /** * Get the providersToReturn value. * * @return a <code>List<ModuleURN></code> value */ public List<ModuleURN> getProvidersToReturn() { return providersToReturn; } /** * Get the providersCount value. * * @return an <code>AtomicInteger</code> value */ public AtomicInteger getProvidersCount() { return providersCount; } /** * Get the instancesToReturn value. * * @return a <code>List<ModuleURN></code> value */ public List<ModuleURN> getInstancesToReturn() { return instancesToReturn; } /** * Get the instancesRequests value. * * @return a <code>List<ModuleURN></code> value */ public List<ModuleURN> getInstancesRequests() { return instancesRequests; } /** * Get the moduleInfoToReturn value. * * @return a <code>ModuleInfo</code> value */ public ModuleInfo getModuleInfoToReturn() { return moduleInfoToReturn; } /** * Sets the moduleInfoToReturn value. * * @param inModuleInfoToReturn a <code>ModuleInfo</code> value */ public void setModuleInfoToReturn(ModuleInfo inModuleInfoToReturn) { moduleInfoToReturn = inModuleInfoToReturn; } /** * Get the moduleInfoRequests value. * * @return a <code>List<ModuleURN></code> value */ public List<ModuleURN> getModuleInfoRequests() { return moduleInfoRequests; } /** * Get the startRequests value. * * @return a <code>List<ModuleURN></code> value */ public List<ModuleURN> getStartRequests() { return startRequests; } /** * Get the stopRequests value. * * @return a <code>List<ModuleURN></code> value */ public List<ModuleURN> getStopRequests() { return stopRequests; } /** * Get the deleteRequests value. * * @return a <code>List<ModuleURN></code> value */ public List<ModuleURN> getDeleteRequests() { return deleteRequests; } /** * Get the propertiesRequests value. * * @return a <code>List<ModuleURN></code> value */ public List<ModuleURN> getPropertiesRequests() { return propertiesRequests; } /** * Sets the propertiesRequests value. * * @param inPropertiesRequests a <code>List<ModuleURN></code> value */ public void setPropertiesRequests(List<ModuleURN> inPropertiesRequests) { propertiesRequests = inPropertiesRequests; } /** * Get the propertiesToReturn value. * * @return a <code>Map<String,Object></code> value */ public Map<String,Object> getPropertiesToReturn() { return propertiesToReturn; } /** * Get the createModuleURNToReturn value. * * @return a <code>ModuleURN</code> value */ public ModuleURN getCreateModuleURNToReturn() { return createModuleURNToReturn; } /** * Sets the createModuleURNToReturn value. * * @param inCreateModuleURNToReturn a <code>ModuleURN</code> value */ public void setCreateModuleURNToReturn(ModuleURN inCreateModuleURNToReturn) { createModuleURNToReturn = inCreateModuleURNToReturn; } /** * Get the createStrategyRequests value. * * @return a <code>List<CreateStrategyParameters></code> value */ public List<CreateStrategyParameters> getCreateStrategyRequests() { return createStrategyRequests; } /** * Get the parametersToReturn value. * * @return a <code>CreateStrategyParameters</code> value */ public CreateStrategyParameters getParametersToReturn() { return parametersToReturn; } /** * Sets the parametersToReturn value. * * @param inParametersToReturn a <code>CreateStrategyParameters</code> value */ public void setParametersToReturn(CreateStrategyParameters inParametersToReturn) { parametersToReturn = inParametersToReturn; } /** * Get the strategyCreateParmsRequests value. * * @return a <code>List<ModuleURN></code> value */ public List<ModuleURN> getStrategyCreateParmsRequests() { return strategyCreateParmsRequests; } /** * Get the sentData value. * * @return an <code>Object</code> value */ public Object getSentData() { return sentData; } /** * Sets the sentData value. * * @param inSentData an <code>Object</code> value */ public void setSentData(Object inSentData) { sentData = inSentData; } /** * Resets test values. */ public void reset() { providersToReturn.clear(); providersCount.set(0); instancesToReturn.clear(); instancesRequests.clear(); moduleInfoRequests.clear(); moduleInfoToReturn = null; startRequests.clear(); stopRequests.clear(); deleteRequests.clear(); propertiesRequests.clear(); propertiesToReturn.clear(); createStrategyRequests.clear(); createModuleURNToReturn = null; parametersToReturn = null; strategyCreateParmsRequests.clear(); sentData = null; } /** * provides to return value */ private final List<ModuleURN> providersToReturn = Lists.newArrayList(); /** * count of providers invocation */ private final AtomicInteger providersCount = new AtomicInteger(0); /** * instances to return value */ private final List<ModuleURN> instancesToReturn = Lists.newArrayList(); /** * instances requests */ private final List<ModuleURN> instancesRequests = Lists.newArrayList(); /** * module info requests */ private final List<ModuleURN> moduleInfoRequests = Lists.newArrayList(); /** * module info to return */ private ModuleInfo moduleInfoToReturn; /** * start requests value */ private final List<ModuleURN> startRequests = Lists.newArrayList(); /** * stop requests value */ private final List<ModuleURN> stopRequests = Lists.newArrayList(); /** * delete requests value */ private final List<ModuleURN> deleteRequests = Lists.newArrayList(); /** * properties requests value */ private List<ModuleURN> propertiesRequests = Lists.newArrayList(); /** * properties to return value */ private final Map<String,Object> propertiesToReturn = Maps.newHashMap(); /** * create strategy requests value */ private final List<CreateStrategyParameters> createStrategyRequests = Lists.newArrayList(); /** * create module urn to return */ private ModuleURN createModuleURNToReturn; /** * create strategy parameters to return */ private CreateStrategyParameters parametersToReturn; /** * create strategy params requests */ private final List<ModuleURN> strategyCreateParmsRequests = Lists.newArrayList(); /** * object sent to {@link #sendData(Object)} */ private Object sentData; }