package org.ourgrid.acceptance.util.discoveryservice; import java.util.HashSet; import java.util.Map; import java.util.Set; import java.util.TreeMap; import org.easymock.classextension.EasyMock; import org.ourgrid.acceptance.util.DiscoveryServiceAcceptanceUtil; import org.ourgrid.common.interfaces.status.DiscoveryServiceStatusProviderClient; import org.ourgrid.discoveryservice.DiscoveryServiceComponent; import org.ourgrid.discoveryservice.business.dao.DiscoveryServiceInfo; import org.ourgrid.discoveryservice.communication.receiver.DiscoveryServiceControlReceiver; import org.ourgrid.matchers.DiscoveryServiceCompleteStatusMatcher; import br.edu.ufcg.lsd.commune.container.ObjectDeployment; import br.edu.ufcg.lsd.commune.container.logging.CommuneLogger; import br.edu.ufcg.lsd.commune.context.ModuleContext; import br.edu.ufcg.lsd.commune.identification.ContainerID; import br.edu.ufcg.lsd.commune.identification.DeploymentID; import br.edu.ufcg.lsd.commune.testinfra.AcceptanceTestUtil; public class Req_504_Util extends DiscoveryServiceAcceptanceUtil { public Req_504_Util(ModuleContext context) { super(context); } public void getEmptyCompleteStatusWithStartedDS(DiscoveryServiceComponent component, Map<DiscoveryServiceInfo, Set<String>> expectedLocalDSNetwork) { getCompleteStatus(component, expectedLocalDSNetwork, true); } public void getEmptyCompleteStatus(DiscoveryServiceComponent component, boolean isStarted) { Map<DiscoveryServiceInfo, Set<String>> expectedLocalDSNetwork = new TreeMap<DiscoveryServiceInfo, Set<String>>(); expectedLocalDSNetwork.put(new DiscoveryServiceInfo( getDiscoveryServiceControlDeployment(component).getDeploymentID().getServiceID().toString(), true), new HashSet<String>()); getCompleteStatus(component, expectedLocalDSNetwork, isStarted); } public void getCompleteStatus(DiscoveryServiceComponent component, Map<DiscoveryServiceInfo, Set<String>> network) { getCompleteStatus(component, network, true); } public void getCompleteStatus(DiscoveryServiceComponent component, Map<DiscoveryServiceInfo, Set<String>> network, boolean isStarted) { DiscoveryServiceControlReceiver dscc = (DiscoveryServiceControlReceiver) getDiscoveryServiceControl(component); ObjectDeployment dsOD = getDiscoveryServiceControlDeployment(component); DiscoveryServiceStatusProviderClient statusProviderMock = EasyMock.createMock(DiscoveryServiceStatusProviderClient.class); CommuneLogger oldLogger = component.getLogger(); CommuneLogger newLogger = EasyMock.createMock(CommuneLogger.class); component.setLogger(newLogger); DeploymentID deploymentID = new DeploymentID(new ContainerID("dsClient", "dsServer", "peer", "peerPK"), "peer"); AcceptanceTestUtil.publishTestObject(component, deploymentID, statusProviderMock, DiscoveryServiceStatusProviderClient.class); AcceptanceTestUtil.setExecutionContext(component, dsOD, deploymentID); if (isStarted) { statusProviderMock.hereIsCompleteStatus(DiscoveryServiceCompleteStatusMatcher.eqMatcher(network)); } else { newLogger.warn("Received a status request from: " + deploymentID.getServiceID() + ", but the component is not started."); } EasyMock.replay(newLogger); EasyMock.replay(statusProviderMock); dscc.getCompleteStatus(statusProviderMock); EasyMock.verify(newLogger); EasyMock.verify(statusProviderMock); component.setLogger(oldLogger); } }