package zx.soft.zookeeper.book;
import org.junit.Test;
import zx.soft.zookeeper.book.Master;
import zx.soft.zookeeper.book.Worker;
import zx.soft.zookeeper.book.Master.MasterStates;
public class TestWorkerChanges extends BaseTestCase {
@Test(timeout = 50000)
public void addWorker() throws Exception {
Master master = new Master("localhost:" + port);
master.startZK();
while (!master.isConnected()) {
Thread.sleep(500);
}
master.bootstrap();
master.runForMaster();
while (master.getState() == MasterStates.RUNNING) {
Thread.sleep(100);
}
master.close();
Worker worker = new Worker("localhost:" + port);
worker.startZK();
while (!worker.isConnected()) {
Thread.sleep(100);
}
/*
* bootstrap() create some necessary znodes.
*/
worker.bootstrap();
/*
* Registers this worker so that the leader knows that
* it is here.
*/
worker.register();
while (master.getWorkersSize() == 0) {
Thread.sleep(100);
}
worker.close();
}
}