package org.apache.mesos.hbase;
import com.google.protobuf.ByteString;
import org.apache.mesos.Protos;
import org.apache.mesos.hbase.state.LiveState;
import org.apache.mesos.hbase.util.HBaseConstants;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class TestLiveState {
private LiveState liveState;
@Test
public void addsAndRemovesStagingTasks() {
liveState.addStagingTask(createTaskInfo("journalnode").getTaskId());
assertEquals(1, liveState.getStagingTasksSize());
liveState.removeStagingTask(createTaskInfo("journalnode").getTaskId());
assertEquals(0, liveState.getStagingTasksSize());
}
@Before
public void setup() {
liveState = new LiveState();
}
private Protos.TaskStatus createTaskStatus(String taskId, Integer taskNumber, String message) {
return Protos.TaskStatus.newBuilder()
.setSlaveId(Protos.SlaveID.newBuilder().setValue("slave." + taskNumber.toString()))
.setTaskId(Protos.TaskID.newBuilder().setValue(taskId + "." + taskNumber.toString()))
.setState(Protos.TaskState.TASK_RUNNING)
.setMessage(message)
.build();
}
private Protos.TaskInfo createTaskInfo(String taskName) {
return Protos.TaskInfo.newBuilder()
.setName(taskName)
.setTaskId(Protos.TaskID.newBuilder().setValue(taskName + "." + "1"))
.setSlaveId(Protos.SlaveID.newBuilder().setValue("slave.1"))
.setData(ByteString.copyFromUtf8(
String.format("bin/hbase-mesos-%s", taskName)))
.build();
}
}