package org.ourgrid.acceptance.util.discoveryservice; import java.util.List; import org.easymock.classextension.EasyMock; import org.ourgrid.acceptance.util.DiscoveryServiceAcceptanceUtil; import org.ourgrid.common.interfaces.DiscoveryService; import org.ourgrid.common.interfaces.DiscoveryServiceClient; import org.ourgrid.discoveryservice.DiscoveryServiceComponent; import org.ourgrid.matchers.WorkerProvidersMatcher; import br.edu.ufcg.lsd.commune.container.logging.CommuneLogger; import br.edu.ufcg.lsd.commune.context.ModuleContext; import br.edu.ufcg.lsd.commune.testinfra.AcceptanceTestUtil; import br.edu.ufcg.lsd.commune.testinfra.util.TestStub; public class Req_506_Util extends DiscoveryServiceAcceptanceUtil { public Req_506_Util(ModuleContext context) { super(context); } public void leaveCommunity(DiscoveryServiceComponent component, TestStub dsClientTestStub) { leaveCommunity(component, dsClientTestStub, true, null, null); } public void leaveCommunity(DiscoveryServiceComponent component, TestStub dsClientTestStub, List<TestStub> dsTestStubList, List<String> dscID) { leaveCommunity(component, dsClientTestStub, true, dsTestStubList, dscID); } public void leaveCommunity(DiscoveryServiceComponent component, TestStub dsClientTestStub, boolean isCommunityMember, List <TestStub> dsTestStubList, List<String> dscIDList ) { CommuneLogger logger = component.getLogger(); DiscoveryService discoveryService = (DiscoveryService) getDiscoveryServiceProxy(); DiscoveryServiceClient dsClient = (DiscoveryServiceClient) dsClientTestStub.getObject(); if (!isCommunityMember) { logger.warn("The client with ID [" + dsClientTestStub.getDeploymentID().getServiceID() + "] is not joined to the community."); EasyMock.replay(logger); AcceptanceTestUtil.publishTestObject(component, dsClientTestStub.getDeploymentID(), dsClient, DiscoveryServiceClient.class); discoveryService.leaveCommunity(dsClient); EasyMock.verify(logger); } else { if (dsTestStubList != null){ for (TestStub dsStub : dsTestStubList){ DiscoveryService ds = (DiscoveryService) dsStub.getObject(); // EasyMock.reset(ds); ds.hereIsRemoteWorkerProviderList(WorkerProvidersMatcher.eqMatcher(dscIDList)); EasyMock.replay(ds); } } discoveryService.leaveCommunity(dsClient); if (dsTestStubList != null){ for (TestStub dsStub : dsTestStubList){ DiscoveryService ds = (DiscoveryService) dsStub.getObject(); EasyMock.verify(ds); EasyMock.reset(ds); } } } EasyMock.reset(logger); } }