package org.ovirt.engine.core.dao.gluster; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.util.List; import org.junit.Test; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeSnapshotConfig; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.BaseDaoTestCase; public class GlusterVolumeSnapshotConfigDaoTest extends BaseDaoTestCase { private static final Guid CLUSTER_ID = new Guid("ae956031-6be2-43d6-bb8f-5191c9253314"); private static final Guid VOLUME_ID = new Guid("0c3f45f6-3fe9-4b35-a30c-be0d1a835ea8"); private static final String PARAM_NAME_1 = "param1"; private static final String PARAM_NAME_2 = "param2"; private static final String PARAM_NAME_3 = "param3"; private static final String NEW_PARAM_NAME = "new_param"; private GlusterVolumeSnapshotConfig existingConfig1; private GlusterVolumeSnapshotConfig existingConfig2; private GlusterVolumeSnapshotConfig existingConfig3; private GlusterVolumeSnapshotConfig newConfig; private GlusterVolumeSnapshotConfigDao dao; @Override public void setUp() throws Exception { super.setUp(); dao = dbFacade.getGlusterVolumeSnapshotConfigDao(); existingConfig1 = dao.getConfigByVolumeIdAndName(CLUSTER_ID, VOLUME_ID, PARAM_NAME_1); existingConfig2 = dao.getConfigByVolumeIdAndName(CLUSTER_ID, VOLUME_ID, PARAM_NAME_2); existingConfig3 = dao.getConfigByClusterIdAndName(CLUSTER_ID, PARAM_NAME_3); } @Test public void testSaveAndGetByVolumeId() { GlusterVolumeSnapshotConfig config = dao.getConfigByVolumeIdAndName(CLUSTER_ID, VOLUME_ID, NEW_PARAM_NAME); assertNull(config); newConfig = insertTestConfig(); config = dao.getConfigByVolumeIdAndName(CLUSTER_ID, VOLUME_ID, NEW_PARAM_NAME); assertNotNull(config); assertEquals(newConfig, config); } private GlusterVolumeSnapshotConfig insertTestConfig() { GlusterVolumeSnapshotConfig config = new GlusterVolumeSnapshotConfig(); config.setClusterId(CLUSTER_ID); config.setVolumeId(VOLUME_ID); config.setParamName(NEW_PARAM_NAME); config.setParamValue("new_value"); dao.save(config); return config; } @Test public void testGetGlusterVolumeSnapshotConfigByClusterId() { List<GlusterVolumeSnapshotConfig> configs = dao.getConfigByClusterId(CLUSTER_ID); assertNotNull(configs); assertEquals(3, configs.size()); assertTrue(configs.contains(existingConfig1)); } @Test public void testGetGlusterVolumeSnapshotConfigByVolumeId() { List<GlusterVolumeSnapshotConfig> configs = dao.getConfigByVolumeId(CLUSTER_ID, VOLUME_ID); assertNotNull(configs); assertEquals(2, configs.size()); assertTrue(configs.contains(existingConfig1)); } @Test public void testGetGlusterVolumeSnapshotConfigByClusterIdAndName() { GlusterVolumeSnapshotConfig config = dao.getConfigByClusterIdAndName(CLUSTER_ID, PARAM_NAME_3); assertNotNull(config); assertEquals(config, existingConfig3); } @Test public void testGetGlusterVolumeSnapshotConfigByVolumeIdAndName() { GlusterVolumeSnapshotConfig config = dao.getConfigByVolumeIdAndName(CLUSTER_ID, VOLUME_ID, PARAM_NAME_2); assertNotNull(config); assertEquals(config, existingConfig2); } @Test public void testGetAllWithQuery() { List<GlusterVolumeSnapshotConfig> configs = dao.getAllWithQuery("select * from gluster_volume_snapshot_config"); assertNotNull(configs); assertEquals(3, configs.size()); } @Test public void testUpdateByClusterIdAndName() { GlusterVolumeSnapshotConfig config = dao.getConfigByClusterIdAndName(CLUSTER_ID, PARAM_NAME_3); assertNotNull(config); assertEquals("value3", config.getParamValue()); dao.updateConfigByClusterIdAndName(CLUSTER_ID, PARAM_NAME_3, "new_value"); GlusterVolumeSnapshotConfig modifiedConfig = dao.getConfigByClusterIdAndName(CLUSTER_ID, PARAM_NAME_3); assertNotNull(modifiedConfig); assertEquals("new_value", modifiedConfig.getParamValue()); } @Test public void testUpdateByVolumeIdAndName() { GlusterVolumeSnapshotConfig config = dao.getConfigByVolumeIdAndName(CLUSTER_ID, VOLUME_ID, PARAM_NAME_1); assertNotNull(config); assertEquals("value1", config.getParamValue()); dao.updateConfigByVolumeIdAndName(CLUSTER_ID, VOLUME_ID, PARAM_NAME_1, "new_value"); GlusterVolumeSnapshotConfig modifiedConfig = dao.getConfigByVolumeIdAndName(CLUSTER_ID, VOLUME_ID, PARAM_NAME_1); assertNotNull(modifiedConfig); assertEquals("new_value", modifiedConfig.getParamValue()); } }