package org.goldenorb; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.io.IOException; import java.util.List; import java.util.Map; import org.apache.zookeeper.ZooKeeper; import org.goldenorb.conf.OrbConfiguration; import org.goldenorb.jet.PartitionRequest; import org.goldenorb.zookeeper.OrbZKFailure; import org.goldenorb.zookeeper.ZookeeperUtils; import org.junit.BeforeClass; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class OrbPartitionManagerTest { private final Logger logger = LoggerFactory.getLogger(OrbPartitionManagerTest.class); private static ZooKeeper ZK; private static OrbConfiguration orbConf; @BeforeClass public static void setUpTest() throws IOException, InterruptedException, OrbZKFailure { orbConf = new OrbConfiguration(true); orbConf.setOrbZooKeeperQuorum("localhost:21810"); ZK = ZookeeperUtils.connect(orbConf.getOrbZooKeeperQuorum()); } @Test public void testOrbPartitionManager() { int requestedPartitions = 3; int reservedPartitions = 2; int totalPartitions = requestedPartitions + reservedPartitions; orbConf.setJobNumber("0"); OrbPartitionManager<OrbPartitionProcess> OPManager = new OrbPartitionManager<OrbPartitionProcess>( orbConf, OrbPartitionProcess.class); assertEquals(OPManager.getOrbConf(), orbConf); OPManager.setOrbConf(orbConf); assertEquals(OPManager.getPartitionProcessClass(), OrbPartitionProcess.class); OPManager.setPartitionProcessClass(OrbPartitionProcess.class); logger.info("OrbPartitionManager IP: " + OPManager.getIpAddress()); PartitionRequest request = new PartitionRequest(); request.setReservedPartitions(reservedPartitions); request.setActivePartitions(requestedPartitions); request.setJobID("0"); request.setBasePartitionID(0); request.setJobConf(orbConf); try { OPManager.launchPartitions(request); Map<String, List<OrbPartitionProcess>> mapOPP = OPManager.getProcessesByJob(); assertTrue(mapOPP.get("0").size() == totalPartitions); OPManager.kill("0"); } catch (InstantiationException e) { logger.error("InstantiationException."); } catch (IllegalAccessException e) { logger.error("IllegalAccessException."); } } }