package com.breakersoft.plow.test.thrift.dao;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import javax.annotation.Resource;
import org.junit.Before;
import org.junit.Test;
import com.breakersoft.plow.dispatcher.DispatchService;
import com.breakersoft.plow.dispatcher.dao.DispatchDao;
import com.breakersoft.plow.dispatcher.dao.DispatchTaskDao;
import com.breakersoft.plow.dispatcher.dao.ProcDao;
import com.breakersoft.plow.dispatcher.domain.DispatchJob;
import com.breakersoft.plow.dispatcher.domain.DispatchNode;
import com.breakersoft.plow.dispatcher.domain.DispatchProc;
import com.breakersoft.plow.dispatcher.domain.DispatchTask;
import com.breakersoft.plow.event.JobLaunchEvent;
import com.breakersoft.plow.service.JobService;
import com.breakersoft.plow.test.AbstractTest;
import com.breakersoft.plow.thrift.JobSpecT;
import com.breakersoft.plow.thrift.ProcFilterT;
import com.breakersoft.plow.thrift.ProcT;
import com.breakersoft.plow.thrift.dao.ThriftProcDao;
public class ThriftProcDaoTests extends AbstractTest {
@Resource
JobService jobService;
@Resource
ThriftProcDao thriftProcDao;
@Resource
DispatchTaskDao dispatchTaskDao;
@Resource
DispatchDao dispatchDao;
@Resource
ProcDao procDao;
@Resource
DispatchService dispatchService;
private DispatchNode node;
private DispatchJob job;
private DispatchProc proc;
private DispatchTask task;
private JobLaunchEvent event;
@Before
public void init() {
JobSpecT spec = getTestJobSpec();
event = jobService.launch(spec);
node = dispatchDao.getDispatchNode(
nodeService.createNode(getTestNodePing()).getName());
job = new DispatchJob(event.getJob());
task = dispatchTaskDao.getDispatchableTasks(job, node, 10).get(0);
assertTrue(dispatchTaskDao.reserve(task));
proc = dispatchService.allocateProc(node, task);
}
@Test
public void testGetProc() {
ProcT proct = thriftProcDao.getProc(proc.getProcId());
assertEquals(proct.id, proc.getProcId().toString());
}
@Test
public void testGetProcsByProject() {
ProcFilterT filter = new ProcFilterT();
filter.addToProjectIds(TEST_PROJECT.getProjectId().toString());
assertEquals(1, thriftProcDao.getProcs(filter).size());
}
@Test
public void testGetProcsByFolder() {
ProcFilterT filter = new ProcFilterT();
filter.addToFolderIds(event.getFolder().getFolderId().toString());
assertEquals(1, thriftProcDao.getProcs(filter).size());
}
@Test
public void testGetProcsByJob() {
ProcFilterT filter = new ProcFilterT();
filter.addToJobIds(job.getJobId().toString());
assertEquals(1, thriftProcDao.getProcs(filter).size());
}
@Test
public void testGetProcsByLayer() {
ProcFilterT filter = new ProcFilterT();
filter.addToLayerIds(task.getLayerId().toString());
assertEquals(1, thriftProcDao.getProcs(filter).size());
}
@Test
public void testGetProcsByTask() {
ProcFilterT filter = new ProcFilterT();
filter.addToTaskIds(task.getTaskId().toString());
assertEquals(1, thriftProcDao.getProcs(filter).size());
}
@Test
public void testGetProcsByCluster() {
ProcFilterT filter = new ProcFilterT();
filter.addToClusterIds(node.getClusterId().toString());
assertEquals(1, thriftProcDao.getProcs(filter).size());
}
}