package com.breakersoft.plow.test.dao;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import javax.annotation.Resource;
import org.junit.Test;
import org.springframework.dao.DataIntegrityViolationException;
import com.breakersoft.plow.Cluster;
import com.breakersoft.plow.dao.ClusterDao;
import com.breakersoft.plow.dao.NodeDao;
import com.breakersoft.plow.rnd.thrift.Ping;
import com.breakersoft.plow.test.AbstractTest;
public class ClusterDaoTests extends AbstractTest {
@Resource
ClusterDao clusterDao;
@Resource
NodeDao nodeDao;
private final static String[] TAGS = new String[] {"test"};
@Test
public void create() {
clusterDao.create("default", TAGS);
}
@Test
public void delete() {
Cluster c = clusterDao.create("default", TAGS);
assertTrue(clusterDao.delete(c));
assertFalse(clusterDao.delete(c));
}
@Test(expected=DataIntegrityViolationException.class)
public void deleteWithNodeAssigned() {
Ping ping = getTestNodePing();
Cluster cluster = clusterDao.create("test", TAGS);
nodeDao.create(cluster, ping);
clusterDao.delete(cluster);
}
@Test
public void getByUUID() {
Cluster c1 = clusterDao.create("default", TAGS);
Cluster c2 = clusterDao.get(c1.getClusterId());
assertEquals(c1, c2);
}
@Test
public void getByName() {
Cluster c1 = clusterDao.create("default", TAGS);
Cluster c2 = clusterDao.get("default");
assertEquals(c1, c2);
}
@Test
public void setClusterLocked() {
Cluster c1 = clusterDao.create("default", TAGS);
assertTrue(clusterDao.setLocked(c1, true));
assertTrue(clusterDao.setLocked(c1, false));
assertFalse(clusterDao.setLocked(c1, false));
}
}