package org.ovirt.engine.core.dao.gluster; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.fail; import java.util.List; import org.junit.Before; import org.junit.Test; import org.ovirt.engine.core.common.businessentities.gluster.GlusterClusterService; import org.ovirt.engine.core.common.businessentities.gluster.GlusterServiceStatus; import org.ovirt.engine.core.common.businessentities.gluster.ServiceType; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.BaseDaoTestCase; public class GlusterClusterServiceDaoTest extends BaseDaoTestCase { private static final Guid CLUSTER_ID = new Guid("ae956031-6be2-43d6-bb8f-5191c9253314"); private static final Guid NEW_CLUSTER_ID = new Guid("eba797fb-8e3b-4777-b63c-92e7a5957d7e"); private GlusterClusterServiceDao dao; @Override @Before public void setUp() throws Exception { super.setUp(); dao = dbFacade.getGlusterClusterServiceDao(); } @Test public void testGetByClusterId() { List<GlusterClusterService> services = dao.getByClusterId(CLUSTER_ID); assertNotNull(services); assertEquals(2, services.size()); for (GlusterClusterService service : services) { switch (service.getServiceType()) { case GLUSTER: assertEquals(GlusterServiceStatus.RUNNING, service.getStatus()); break; case GLUSTER_SWIFT: assertEquals(GlusterServiceStatus.STOPPED, service.getStatus()); break; default: fail("Unexpected service type: " + service.getServiceType()); } } } @Test public void testGetByClusterIdAndServiceType() { GlusterClusterService service = dao.getByClusterIdAndServiceType(CLUSTER_ID, ServiceType.GLUSTER); assertNotNull(service); assertEquals(GlusterServiceStatus.RUNNING, service.getStatus()); } @Test public void testSave() { List<GlusterClusterService> services = dao.getByClusterId(NEW_CLUSTER_ID); assertNotNull(services); assertEquals(0, services.size()); insertTestService(NEW_CLUSTER_ID, ServiceType.SMB, GlusterServiceStatus.MIXED); services = dao.getByClusterId(NEW_CLUSTER_ID); assertNotNull(services); assertEquals(1, services.size()); GlusterClusterService service = services.get(0); assertEquals(ServiceType.SMB, service.getServiceType()); assertEquals(GlusterServiceStatus.MIXED, service.getStatus()); } @Test public void testUpdate() { GlusterClusterService service = dao.getByClusterIdAndServiceType(CLUSTER_ID, ServiceType.GLUSTER); assertNotNull(service); assertEquals(GlusterServiceStatus.RUNNING, service.getStatus()); service.setStatus(GlusterServiceStatus.STOPPED); dao.update(service); service = dao.getByClusterIdAndServiceType(CLUSTER_ID, ServiceType.GLUSTER); assertNotNull(service); assertEquals(GlusterServiceStatus.STOPPED, service.getStatus()); } private void insertTestService(Guid clusterId, ServiceType serviceType, GlusterServiceStatus status) { GlusterClusterService service = new GlusterClusterService(); service.setClusterId(clusterId); service.setServiceType(serviceType); service.setStatus(status); dao.save(service); } }