package org.ourgrid.acceptance.discoveryservice; import static org.junit.Assert.assertTrue; import java.util.ArrayList; import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeMap; import org.junit.Test; import org.ourgrid.acceptance.util.discoveryservice.Req_502_Util; import org.ourgrid.acceptance.util.discoveryservice.Req_504_Util; import org.ourgrid.acceptance.util.discoveryservice.Req_505_Util; import org.ourgrid.acceptance.util.discoveryservice.Req_506_Util; import org.ourgrid.acceptance.util.discoveryservice.Req_508_Util; import org.ourgrid.acceptance.util.discoveryservice.Req_511_Util; import org.ourgrid.discoveryservice.DiscoveryServiceComponent; import org.ourgrid.discoveryservice.DiscoveryServiceConstants; import org.ourgrid.discoveryservice.business.dao.DiscoveryServiceDAO; import org.ourgrid.discoveryservice.business.dao.DiscoveryServiceDAOFactory; import org.ourgrid.discoveryservice.business.dao.DiscoveryServiceInfo; import org.ourgrid.peer.PeerConstants; import org.ourgrid.reqtrace.ReqTest; import br.edu.ufcg.lsd.commune.container.ObjectDeployment; import br.edu.ufcg.lsd.commune.identification.ServiceID; import br.edu.ufcg.lsd.commune.testinfra.AcceptanceTestUtil; import br.edu.ufcg.lsd.commune.testinfra.util.TestStub; public class Req_505_Test extends DiscoveryServiceAcceptanceTestCase { private Req_502_Util req_502_util = new Req_502_Util(getComponentContext()); private Req_505_Util req_505_util = new Req_505_Util(getComponentContext()); private Req_504_Util req_504_util = new Req_504_Util(getComponentContext()); private Req_506_Util req_506_util = new Req_506_Util(getComponentContext()); private Req_508_Util req_508_Util = new Req_508_Util(getComponentContext()); private Req_511_Util req_511_util = new Req_511_Util(getComponentContext()); /** * Create a DS; * Start a DS with the correct public key; * Call the joinCommunity message with the following parameters: * o WorkerProvider: username = test, servername = servertest and service = REMOTE_WORKERPROVIDER; * o PeerStatusProvider: username = test, servername = servertest and service = PEER; * Call the getCompleteStatus message; * Verify if the conectedPeers list contains a the peer added. * * @throws Exception */ @ReqTest(test = "AT-505.1", reqs = "") @Test public void test_AT_505_1_AddAPeerToTheCommunity() throws Exception{ //create and start a DS DiscoveryServiceComponent component = req_502_util.startDiscoveryService(); //Get Local DS ServiceID ObjectDeployment dsOD = dsAcceptanceUtil.getDiscoveryServiceDeployment(component); String localDSServiceID = dsOD.getDeploymentID().getServiceID().toString(); //create a WorkerProvider TestStub dscTestStub = req_505_util.createDiscoveryServiceClient(new ServiceID("test", "servertest", PeerConstants.MODULE_NAME, PeerConstants.DS_CLIENT)); //Call joinCommunity List<String> dscServiceIDList = new LinkedList<String>(); dscServiceIDList.add(dscTestStub.getDeploymentID().getContainerID().getUserAtServer()); req_505_util.getRemoteWorkerProviders(component, dscServiceIDList, dscTestStub, true); assertTrue(AcceptanceTestUtil.isInterested(component, dscTestStub.getDeploymentID().getServiceID(), dsAcceptanceUtil.getDiscoveryServiceDeployment(component).getDeploymentID())); Set<String> peers = new HashSet<String>(); peers.add(dscTestStub.getDeploymentID().getContainerID().getUserAtServer()); Map<DiscoveryServiceInfo, Set<String>> expectedLocalDSNetwork = new TreeMap<DiscoveryServiceInfo, Set<String>>(); expectedLocalDSNetwork.put(new DiscoveryServiceInfo(localDSServiceID), peers); //Call getCompletStatusMessage req_504_util.getCompleteStatus(component, expectedLocalDSNetwork); } /** * Create a DS; * Start a DS with the correct public key; * Call the joinCommunity message with the following parameters: o WorkerProvider: username = test, servername = servertest and service = REMOTE_WORKERPROVIDER; o PeerStatusProvider: username = test, servername = servertest and service = PEER; * Call the getCompleteStatus message; * Verify if the conectedPeers list contains a the peer added. * Call again the joinCommunity with the above parameters; * Verify if the following warn message was logged: * The client with ID [serviceID] is already added. * Call the getCompleteStatus message; * Verify if the conectedPeers list contains only the peer added */ @ReqTest(test = "AT-505.2", reqs = "") @Test public void test_AT_505_2_AddAPeerToTheCommunityAgain() throws Exception{ //create and start a DS DiscoveryServiceComponent component = req_502_util.startDiscoveryService(); //Get Local DS ServiceID ObjectDeployment dsOD = dsAcceptanceUtil.getDiscoveryServiceDeployment(component); String localDSServiceID = dsOD.getDeploymentID().getServiceID().toString(); //create a WorkerProvider TestStub dscTestStub = req_505_util.createDiscoveryServiceClient(new ServiceID("test", "servertest", PeerConstants.MODULE_NAME, PeerConstants.DS_CLIENT)); //Call joinCommunity List<String> dscServiceIDList = new LinkedList<String>(); dscServiceIDList.add(dscTestStub.getDeploymentID().getContainerID().getUserAtServer()); req_505_util.getRemoteWorkerProviders(component, dscServiceIDList, dscTestStub); assertTrue(AcceptanceTestUtil.isInterested(component, dscTestStub.getDeploymentID().getServiceID(), dsAcceptanceUtil.getDiscoveryServiceDeployment(component).getDeploymentID())); Set<String> peers = new HashSet<String>(); peers.add(dscTestStub.getDeploymentID().getContainerID().getUserAtServer()); Map<DiscoveryServiceInfo, Set<String>> expectedLocalDSNetwork = new TreeMap<DiscoveryServiceInfo, Set<String>>(); expectedLocalDSNetwork.put(new DiscoveryServiceInfo(localDSServiceID), peers); //Call getCompletStatusMessage req_504_util.getCompleteStatus(component, expectedLocalDSNetwork); //Call joinCommunity req_505_util.getRemoteWorkerProviders(component, dscServiceIDList, dscTestStub, true); assertTrue(AcceptanceTestUtil.isInterested(component, dscTestStub.getDeploymentID().getServiceID(), dsAcceptanceUtil.getDiscoveryServiceDeployment(component).getDeploymentID())); //Call getCompletStatusMessage req_504_util.getCompleteStatus(component, expectedLocalDSNetwork); } @ReqTest(test = "AT-505.3", reqs = "") @Test public void test_AT_505_3_AddAPeerToTheCommunityAndShutItDown() throws Exception{ //create and start a DS DiscoveryServiceComponent component = req_502_util.startDiscoveryService(); //Get Local DS ServiceID ObjectDeployment dsOD = dsAcceptanceUtil.getDiscoveryServiceDeployment(component); String localDSServiceID = dsOD.getDeploymentID().getServiceID().toString(); //create a WorkerProvider TestStub dscTestStub = req_505_util.createDiscoveryServiceClient(new ServiceID("test", "servertest", PeerConstants.MODULE_NAME, PeerConstants.DS_CLIENT)); //Call joinCommunity List<String> dscServiceIDList = new LinkedList<String>(); dscServiceIDList.add(dscTestStub.getDeploymentID().getContainerID().getUserAtServer()); req_505_util.getRemoteWorkerProviders(component, dscServiceIDList, dscTestStub); assertTrue(AcceptanceTestUtil.isInterested(component, dscTestStub.getDeploymentID().getServiceID(), dsAcceptanceUtil.getDiscoveryServiceDeployment(component).getDeploymentID())); Set<String> peers = new HashSet<String>(); peers.add(dscTestStub.getDeploymentID().getContainerID().getUserAtServer()); Map<DiscoveryServiceInfo, Set<String>> expectedLocalDSNetwork = new TreeMap<DiscoveryServiceInfo, Set<String>>(); expectedLocalDSNetwork.put(new DiscoveryServiceInfo(localDSServiceID), peers); //Call getCompletStatusMessage req_504_util.getCompleteStatus(component, expectedLocalDSNetwork); //Notify RWP failure req_505_util.notifyDiscoveryServiceClientFailure(component, dscTestStub); peers.clear(); expectedLocalDSNetwork.put(new DiscoveryServiceInfo(localDSServiceID), peers); //Call getCompletStatusMessage req_504_util.getCompleteStatus(component, expectedLocalDSNetwork); } /** * Create a DS; * Start a DS with the correct public key; * Call the joinCommunity message with the following parameters: o WorkerProvider: username = test, servername = servertest and service = REMOTE_WORKERPROVIDER; o PeerStatusProvider: username = test, servername = servertest and service = PEER; * Call the getCompleteStatus message; * Verify if the conectedPeers list contains the peer added. * Call the getRemoteWorkerProviders message from a client with the following parameters: o username = test, servername = servertest; * Verify if the result list contains the WorkerProvider added. * @throws Exception */ @ReqTest(test = "AT-505.4", reqs = "") @Test public void test_AT_505_4_consultingARemotePeerAddedToCommunity() throws Exception{ //create and start a DS DiscoveryServiceComponent component = req_502_util.startDiscoveryService(); //Get Local DS ServiceID ObjectDeployment dsOD = dsAcceptanceUtil.getDiscoveryServiceDeployment(component); String localDSServiceID = dsOD.getDeploymentID().getServiceID().toString(); //create a WorkerProvider TestStub dscTestStub = req_505_util.createDiscoveryServiceClient(new ServiceID("test", "servertest", PeerConstants.MODULE_NAME, PeerConstants.DS_CLIENT)); //Call joinCommunity List<String> dscServiceIDList = new LinkedList<String>(); dscServiceIDList.add(dscTestStub.getDeploymentID().getContainerID().getUserAtServer()); req_505_util.getRemoteWorkerProviders(component, dscServiceIDList, dscTestStub); assertTrue(AcceptanceTestUtil.isInterested(component, dscTestStub.getDeploymentID().getServiceID(), dsAcceptanceUtil.getDiscoveryServiceDeployment(component).getDeploymentID())); Set<String> peers = new HashSet<String>(); peers.add(dscTestStub.getDeploymentID().getContainerID().getUserAtServer()); Map<DiscoveryServiceInfo, Set<String>> expectedLocalDSNetwork = new TreeMap<DiscoveryServiceInfo, Set<String>>(); expectedLocalDSNetwork.put(new DiscoveryServiceInfo(localDSServiceID), peers); //Call getCompletStatusMessage req_504_util.getCompleteStatus(component, expectedLocalDSNetwork); //Call the getRemoteWorkerProviders message req_505_util.getRemoteWorkerProviders(component, dscServiceIDList, dscTestStub, true); assertTrue(AcceptanceTestUtil.isInterested(component, dscTestStub.getDeploymentID().getServiceID(), dsAcceptanceUtil.getDiscoveryServiceDeployment(component).getDeploymentID())); } /** * Create a DS; * Start a DS with the correct public key; * Call the joinCommunity message with the following parameters: o WorkerProvider: username = test, servername = servertest and service = REMOTE_WORKERPROVIDER; o PeerStatusProvider: username = test, servername = servertest and service = PEER; * Call the joinCommunity message with the following parameters: o WorkerProvider: username = test2, servername = servertest2 and service = REMOTE_WORKERPROVIDER; o PeerStatusProvider: username = test2, servername = servertest2 and service = PEER; * Call the getCompleteStatus message; * Verify if the conectedPeers list contains the peer added. * Call the leaveCommunity message with a client with the following attributes: o username = test, servername = servertest; * Call the joinCommunity message with the following parameters: o WorkerProvider: username = test3, servername = servertest3 and service = REMOTE_WORKERPROVIDER; o PeerStatusProvider: username = test3, servername = servertest3 and service = PEER; * Call the getRemoteWorkerProviders message from a client with the following parameters: o username = test2, servername = servertest2; * Verify if the result list contains the WorkerProviders with username = test2 and username = test3 * @throws Exception */ @ReqTest(test = "AT-505.5", reqs = "") @Test public void test_AT_505_5_consultingARemotePeerAddedToCommunityAndLaterRemoved() throws Exception{ //create and start a DS DiscoveryServiceComponent component = req_502_util.startDiscoveryService(); //Get Local DS ServiceID ObjectDeployment dsOD = dsAcceptanceUtil.getDiscoveryServiceDeployment(component); String localDSServiceID = dsOD.getDeploymentID().getServiceID().toString(); //create a WorkerProvider TestStub dscTestStub = req_505_util.createDiscoveryServiceClient(new ServiceID("test", "servertest", PeerConstants.MODULE_NAME, PeerConstants.DS_CLIENT)); //Call joinCommunity List<String> dscServiceIDList = new LinkedList<String>(); dscServiceIDList.add(dscTestStub.getDeploymentID().getContainerID().getUserAtServer()); req_505_util.getRemoteWorkerProviders(component, dscServiceIDList, dscTestStub); assertTrue(AcceptanceTestUtil.isInterested(component, dscTestStub.getDeploymentID().getServiceID(), dsAcceptanceUtil.getDiscoveryServiceDeployment(component).getDeploymentID())); //create another WorkerProvider TestStub dscTestStub2 = req_505_util.createDiscoveryServiceClient(new ServiceID("test2", "servertest2", PeerConstants.MODULE_NAME, PeerConstants.DS_CLIENT)); //Call joinCommunity dscServiceIDList.add(dscTestStub2.getDeploymentID().getContainerID().getUserAtServer()); req_505_util.getRemoteWorkerProviders(component, dscServiceIDList, dscTestStub2); assertTrue(AcceptanceTestUtil.isInterested(component, dscTestStub2.getDeploymentID().getServiceID(), dsAcceptanceUtil.getDiscoveryServiceDeployment(component).getDeploymentID())); Set<String> peers = new HashSet<String>(); peers.add(dscTestStub.getDeploymentID().getContainerID().getUserAtServer()); peers.add(dscTestStub2.getDeploymentID().getContainerID().getUserAtServer()); Map<DiscoveryServiceInfo, Set<String>> expectedLocalDSNetwork = new TreeMap<DiscoveryServiceInfo, Set<String>>(); expectedLocalDSNetwork.put(new DiscoveryServiceInfo(localDSServiceID), peers); //Call getCompletStatusMessage req_504_util.getCompleteStatus(component, expectedLocalDSNetwork); //Call leaveCommunity message req_506_util.leaveCommunity(component, dscTestStub); //create another WorkerProvider TestStub dscTestStub3 = req_505_util.createDiscoveryServiceClient(new ServiceID("test3", "servertest3", PeerConstants.MODULE_NAME, PeerConstants.DS_CLIENT)); //Call joinCommunity dscServiceIDList.clear(); dscServiceIDList.add(dscTestStub2.getDeploymentID().getContainerID().getUserAtServer()); dscServiceIDList.add(dscTestStub3.getDeploymentID().getContainerID().getUserAtServer()); req_505_util.getRemoteWorkerProviders(component, dscServiceIDList, dscTestStub3); assertTrue(AcceptanceTestUtil.isInterested(component, dscTestStub3.getDeploymentID().getServiceID(), dsAcceptanceUtil.getDiscoveryServiceDeployment(component).getDeploymentID())); peers.remove(dscTestStub.getDeploymentID().getContainerID().getUserAtServer()); peers.add(dscTestStub3.getDeploymentID().getContainerID().getUserAtServer()); expectedLocalDSNetwork.put(new DiscoveryServiceInfo(localDSServiceID), peers); //Call getCompletStatusMessage req_504_util.getCompleteStatus(component, expectedLocalDSNetwork); } /** * Create a DS; * Start a DS with the correct public key; * Call the joinCommunity message with the following parameters: o WorkerProvider: username = test, servername = servertest and service = REMOTE_WORKERPROVIDER; o PeerStatusProvider: username = test, servername = servertest and service = PEER; * Call the joinCommunity message with the following parameters: o WorkerProvider: username = test, servername = servertest and service = REMOTE_WORKERPROVIDER; o PeerStatusProvider: username = test, servername = servertest and service = PEER; * Call the getCompleteStatus message; * Verify if the conectedPeers list contains the peer with new DeploymentID. * @throws Exception */ @ReqTest(test = "AT-505.6", reqs = "") @Test public void test_AT_505_6_consultingARemotePeerAddedToCommunityAndLaterHasNewDeploymentID() throws Exception{ //create and start a DS DiscoveryServiceComponent component = req_502_util.startDiscoveryService(); //Get Local DS ServiceID ObjectDeployment dsOD = dsAcceptanceUtil.getDiscoveryServiceDeployment(component); String localDSServiceID = dsOD.getDeploymentID().getServiceID().toString(); //create a WorkerProvider TestStub dscTestStub = req_505_util.createDiscoveryServiceClient(new ServiceID("test", "servertest", PeerConstants.MODULE_NAME, PeerConstants.DS_CLIENT)); //Call joinCommunity List<String> dscServiceIDList = new LinkedList<String>(); dscServiceIDList.add(dscTestStub.getDeploymentID().getContainerID().getUserAtServer()); req_505_util.getRemoteWorkerProviders(component, dscServiceIDList, dscTestStub); assertTrue(AcceptanceTestUtil.isInterested(component, dscTestStub.getDeploymentID().getServiceID(), dsAcceptanceUtil.getDiscoveryServiceDeployment(component).getDeploymentID())); //create another WorkerProvider TestStub dscTestStub2 = req_505_util.createDiscoveryServiceClient(new ServiceID("test", "servertest", PeerConstants.MODULE_NAME, PeerConstants.DS_CLIENT)); //Call joinCommunity dscServiceIDList.clear(); dscServiceIDList.add(dscTestStub2.getDeploymentID().getContainerID().getUserAtServer()); req_505_util.getRemoteWorkerProviders(component, dscServiceIDList, dscTestStub2, true); assertTrue(AcceptanceTestUtil.isInterested(component, dscTestStub2.getDeploymentID().getServiceID(), dsAcceptanceUtil.getDiscoveryServiceDeployment(component).getDeploymentID())); Set<String> peers = new HashSet<String>(); peers.add(dscTestStub.getDeploymentID().getContainerID().getUserAtServer()); peers.add(dscTestStub2.getDeploymentID().getContainerID().getUserAtServer()); Map<DiscoveryServiceInfo, Set<String>> expectedLocalDSNetwork = new TreeMap<DiscoveryServiceInfo, Set<String>>(); expectedLocalDSNetwork.put(new DiscoveryServiceInfo(localDSServiceID), peers); //Call getCompletStatusMessage req_504_util.getCompleteStatus(component, expectedLocalDSNetwork); } @ReqTest(test = "AT-505.7", reqs = "") @Test public void test_AT_505_7_AddPeerToCommunityWithMoreDSs() throws Exception{ //create and start a DS DiscoveryServiceComponent component = req_502_util.startDiscoveryService(); //Get Local DS ServiceID ObjectDeployment dsOD = dsAcceptanceUtil.getDiscoveryServiceDeployment(component); ServiceID localDSServiceID = dsOD.getDeploymentID().getServiceID(); //Get the instance of DAO and add the remote DS in it DiscoveryServiceDAO dsDao = DiscoveryServiceDAOFactory.getInstance().getDiscoveryServiceDAO(); //create a remote DS List<TestStub> dsList = new ArrayList<TestStub>(); TestStub dsTestStub = req_511_util.createDiscoveryService(new ServiceID("remoteds", "server", "DS", DiscoveryServiceConstants.DS_OBJECT_NAME)); dsList.add(dsTestStub); //Remote DS joins network List<ServiceID> dsServiceIDList = new ArrayList<ServiceID>(); dsServiceIDList.add(dsTestStub.getDeploymentID().getServiceID()); req_511_util.getDiscoveryServices(component, dsServiceIDList, dsTestStub); //create WorkerProvider 1 TestStub dscTestStub1 = req_505_util.createDiscoveryServiceClient(new ServiceID("remotepeer", "server", PeerConstants.MODULE_NAME, PeerConstants.DS_CLIENT)); //Call joinCommunity List<String> dscServiceIDList = new LinkedList<String>(); dscServiceIDList.add(dscTestStub1.getDeploymentID().getContainerID().getUserAtServer()); req_505_util.getRemoteWorkerProviders(component, dscServiceIDList, dscTestStub1, dsList); assertTrue(AcceptanceTestUtil.isInterested(component, dscTestStub1.getDeploymentID().getServiceID(), dsAcceptanceUtil.getDiscoveryServiceDeployment(component).getDeploymentID())); TestStub dscTestStub2 = req_505_util.createDiscoveryServiceClient(new ServiceID("remotepeer2", "server", PeerConstants.MODULE_NAME, PeerConstants.DS_CLIENT)); dscServiceIDList.add(dscTestStub2.getDeploymentID().getContainerID().getUserAtServer()); req_505_util.getRemoteWorkerProviders(component, dscServiceIDList, dscTestStub2, dsList); assertTrue(AcceptanceTestUtil.isInterested(component, dscTestStub2.getDeploymentID().getServiceID(), dsAcceptanceUtil.getDiscoveryServiceDeployment(component).getDeploymentID())); Set<String> peers = new HashSet<String>(); peers.add(dscTestStub1.getDeploymentID().getContainerID().getUserAtServer()); peers.add(dscTestStub2.getDeploymentID().getContainerID().getUserAtServer()); Map<DiscoveryServiceInfo, Set<String>> expectedLocalDSNetwork = new TreeMap<DiscoveryServiceInfo, Set<String>>(); expectedLocalDSNetwork.put(new DiscoveryServiceInfo(localDSServiceID.toString(), true), peers); expectedLocalDSNetwork.put(new DiscoveryServiceInfo(dsTestStub.getDeploymentID().getServiceID().toString(), true), new HashSet<String>()); //Call getCompletStatusMessage req_504_util.getCompleteStatus(component, expectedLocalDSNetwork); assertTrue(dsDao.getDSInfo(dsTestStub.getDeploymentID().getServiceID().toString()).isUp()); } @ReqTest(test = "AT-505.8", reqs = "") @Test public void test_AT_505_8_AddADSInANetworkWithJustPeers() throws Exception{ //Create and start a DS DiscoveryServiceComponent component = req_502_util.startDiscoveryService(); //Get Local DS ServiceID ObjectDeployment dsOD = dsAcceptanceUtil.getDiscoveryServiceDeployment(component); ServiceID localDSServiceID = dsOD.getDeploymentID().getServiceID(); //Get the instance of DAO and add the remote DS in it DiscoveryServiceDAO dsDao = DiscoveryServiceDAOFactory.getInstance().getDiscoveryServiceDAO(); //Create WorkerProvider 1 TestStub dscTestStub = req_505_util.createDiscoveryServiceClient(new ServiceID("test", "servertest", PeerConstants.MODULE_NAME, PeerConstants.DS_CLIENT)); //Call joinCommunity List<String> dscServiceIDList = new LinkedList<String>(); dscServiceIDList.add(dscTestStub.getDeploymentID().getContainerID().getUserAtServer()); req_505_util.getRemoteWorkerProviders(component, dscServiceIDList, dscTestStub); assertTrue(AcceptanceTestUtil.isInterested(component, dscTestStub.getDeploymentID().getServiceID(), dsAcceptanceUtil.getDiscoveryServiceDeployment(component).getDeploymentID())); Set<String> peers = new HashSet<String>(); peers.add(dscTestStub.getDeploymentID().getContainerID().getUserAtServer()); Map<DiscoveryServiceInfo, Set<String>> expectedLocalDSNetwork = new TreeMap<DiscoveryServiceInfo, Set<String>>(); expectedLocalDSNetwork.put(new DiscoveryServiceInfo(localDSServiceID.toString(), true), peers); //Call getCompletStatusMessage req_504_util.getCompleteStatus(component, expectedLocalDSNetwork); //Create a remote DS List<TestStub> dsList = new ArrayList<TestStub>(); TestStub dsTestStub = req_511_util.createDiscoveryService(new ServiceID("remoteds", "server", "DS", DiscoveryServiceConstants.DS_OBJECT_NAME)); dsList.add(dsTestStub); //remote DS joins network List<ServiceID> dsServiceIDList = new ArrayList<ServiceID>(); dsServiceIDList.add(dsTestStub.getDeploymentID().getServiceID()); req_511_util.getDiscoveryServices(component, dsServiceIDList, dsTestStub); expectedLocalDSNetwork.put(new DiscoveryServiceInfo(dsTestStub.getDeploymentID().getServiceID().toString(), true), new HashSet<String>()); //Call getCompletStatusMessage req_504_util.getCompleteStatus(component, expectedLocalDSNetwork); assertTrue(dsDao.getDSInfo(dsTestStub.getDeploymentID().getServiceID().toString()).isUp()); } @ReqTest(test = "AT-505.9", reqs = "") @Test public void test_AT_505_9_DSWithPeerAddressesReceivesEmptyPeerList() throws Exception{ //Create and start a DS DiscoveryServiceComponent component = req_502_util.startDiscoveryService(); //Get Local DS ServiceID ObjectDeployment dsOD = dsAcceptanceUtil.getDiscoveryServiceDeployment(component); ServiceID localDSServiceID = dsOD.getDeploymentID().getServiceID(); //Get the instance of DAO and add the remote DS in it DiscoveryServiceDAO dsDao = DiscoveryServiceDAOFactory.getInstance().getDiscoveryServiceDAO(); //Create WorkerProvider 1 TestStub dscTestStub = req_505_util.createDiscoveryServiceClient(new ServiceID("test", "servertest", PeerConstants.MODULE_NAME, PeerConstants.DS_CLIENT)); //Call joinCommunity List<String> dscServiceIDList = new LinkedList<String>(); dscServiceIDList.add(dscTestStub.getDeploymentID().getContainerID().getUserAtServer()); req_505_util.getRemoteWorkerProviders(component, dscServiceIDList, dscTestStub); assertTrue(AcceptanceTestUtil.isInterested(component, dscTestStub.getDeploymentID().getServiceID(), dsAcceptanceUtil.getDiscoveryServiceDeployment(component).getDeploymentID())); Set<String> peers = new HashSet<String>(); peers.add(dscTestStub.getDeploymentID().getContainerID().getUserAtServer()); Map<DiscoveryServiceInfo, Set<String>> expectedLocalDSNetwork = new TreeMap<DiscoveryServiceInfo, Set<String>>(); expectedLocalDSNetwork.put(new DiscoveryServiceInfo(localDSServiceID.toString(), true), peers); //Call getCompletStatusMessage req_504_util.getCompleteStatus(component, expectedLocalDSNetwork); //Create a remote DS List<TestStub> dsList = new ArrayList<TestStub>(); TestStub dsTestStub = req_511_util.createDiscoveryService(new ServiceID("remoteds", "server", "DS", DiscoveryServiceConstants.DS_OBJECT_NAME)); dsList.add(dsTestStub); //remote DS joins network List<ServiceID> dsServiceIDList = new ArrayList<ServiceID>(); dsServiceIDList.add(dsTestStub.getDeploymentID().getServiceID()); req_511_util.getDiscoveryServices(component, dsServiceIDList, dsTestStub); // Call doNotifyFailure message req_508_Util.doNotifyFailure(component, dscTestStub); assertTrue(dsDao.getDSInfo(dsTestStub.getDeploymentID().getServiceID().toString()).isUp()); expectedLocalDSNetwork.put(new DiscoveryServiceInfo(localDSServiceID.toString(), true), new HashSet<String>()); expectedLocalDSNetwork.put(new DiscoveryServiceInfo(dsTestStub.getDeploymentID().getServiceID().toString(), true), new HashSet<String>()); //Call getCompletStatusMessage req_504_util.getCompleteStatus(component, expectedLocalDSNetwork); } @ReqTest(test = "AT-505.10", reqs = "") @Test public void test_AT_505_10_PeerJoinsDSWithPeerAddress() throws Exception{ // Start the Discovery Service DiscoveryServiceComponent component = req_502_util.startDiscoveryService(); //Get Local DS ServiceID ObjectDeployment dsOD = dsAcceptanceUtil.getDiscoveryServiceDeployment(component); ServiceID localDSServiceID = dsOD.getDeploymentID().getServiceID(); //Get the instance of DAO and add the remote DS in it DiscoveryServiceDAO dsDao = DiscoveryServiceDAOFactory.getInstance().getDiscoveryServiceDAO(); //Create a remote DS List<TestStub> dsList = new ArrayList<TestStub>(); TestStub dsTestStub = req_511_util.createDiscoveryService(new ServiceID("remoteds", "server", "DS", DiscoveryServiceConstants.DS_OBJECT_NAME)); dsList.add(dsTestStub); // Create WorkerProvider 1 TestStub dscTestStub = req_505_util.createDiscoveryServiceClient(new ServiceID("test1", "servertest", PeerConstants.MODULE_NAME, PeerConstants.DS_CLIENT)); // Create WorkerProvider 2 TestStub dscTestStub2 = req_505_util.createDiscoveryServiceClient(new ServiceID("test2", "servertest", PeerConstants.MODULE_NAME, PeerConstants.DS_CLIENT)); //remote DS joins network List<ServiceID> dsServiceIDList = new ArrayList<ServiceID>(); dsServiceIDList.add(dsTestStub.getDeploymentID().getServiceID()); req_511_util.getDiscoveryServices(component, dsServiceIDList, dsTestStub); Map<DiscoveryServiceInfo, Set<String>> expectedLocalDSNetwork = new TreeMap<DiscoveryServiceInfo, Set<String>>(); expectedLocalDSNetwork.put(new DiscoveryServiceInfo(localDSServiceID.toString(), true), new HashSet<String>()); expectedLocalDSNetwork.put(new DiscoveryServiceInfo(dsTestStub.getDeploymentID().getServiceID().toString(), true), new HashSet<String>()); //Call getCompletStatusMessage req_504_util.getCompleteStatus(component, expectedLocalDSNetwork); assertTrue(dsDao.getDSInfo(dsTestStub.getDeploymentID().getServiceID().toString()).isUp()); // Create the address of a remote DS String remoteDSAddress = dsTestStub.getDeploymentID().getServiceID().toString(); // Create and set the peers of the remote DS in DAO Set<String> remoteDSPeers = new HashSet<String>(); remoteDSPeers.add(dscTestStub.getDeploymentID().getContainerID().getUserAtServer()); dsDao.addDiscoveryService(new DiscoveryServiceInfo(remoteDSAddress, true), remoteDSPeers); assertTrue(dsDao.getDSInfo(remoteDSAddress).isUp()); Set<String> remotePeers = new HashSet<String>(); remotePeers.add(dscTestStub.getDeploymentID().getContainerID().getUserAtServer()); expectedLocalDSNetwork.put(new DiscoveryServiceInfo(dsTestStub.getDeploymentID().getServiceID().toString(), true), remotePeers); //Call getCompletStatusMessage req_504_util.getCompleteStatus(component, expectedLocalDSNetwork); //Call joinCommunity List<String> localDSCServiceIDList = new LinkedList<String>(); localDSCServiceIDList.add(dscTestStub2.getDeploymentID().getContainerID().getUserAtServer()); List<String> allDSCServiceIDList = new LinkedList<String>(localDSCServiceIDList); allDSCServiceIDList.add(dscTestStub.getDeploymentID().getContainerID().getUserAtServer()); req_505_util.getRemoteWorkerProviders(component, allDSCServiceIDList, dscTestStub2, dsList, false, localDSCServiceIDList); assertTrue(AcceptanceTestUtil.isInterested(component, dscTestStub2.getDeploymentID().getServiceID(), dsAcceptanceUtil.getDiscoveryServiceDeployment(component).getDeploymentID())); Set<String> localPeers = new HashSet<String>(); localPeers.add(dscTestStub2.getDeploymentID().getContainerID().getUserAtServer()); expectedLocalDSNetwork.put(new DiscoveryServiceInfo(localDSServiceID.toString(), true), localPeers); //Call getCompletStatusMessage req_504_util.getCompleteStatus(component, expectedLocalDSNetwork); } }