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.ArrayList; import java.util.List; import org.junit.Test; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeOptionEntity; import org.ovirt.engine.core.common.constants.gluster.GlusterConstants; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.BaseDaoTestCase; public class GlusterOptionDaoTest extends BaseDaoTestCase { private static final Guid EXISTING_VOL_ID = new Guid("0c3f45f6-3fe9-4b35-a30c-be0d1a835ea8"); private static final Guid EXISTING_OPTION_ID = new Guid("9e6a606e-9a7a-4398-9b13-3ad4777abfba"); private static final String OPTION_AUTH_REJECT = "auth.reject"; private static final String OPTION_AUTH_REJECT_VALUE = "192.168.1.123"; private static final String OPTION_AUTH_ALLOW_VALUE_NEW = "192.168.1.321"; private static final String OPTION_AUTH_ALLOW_VALUE_ALL = "*"; private GlusterOptionDao dao; @Override public void setUp() throws Exception { super.setUp(); dao = dbFacade.getGlusterOptionDao(); } @Test public void testSaveAndGetById() { GlusterVolumeOptionEntity newOption = new GlusterVolumeOptionEntity(EXISTING_VOL_ID, OPTION_AUTH_REJECT, OPTION_AUTH_REJECT_VALUE); dao.save(newOption); GlusterVolumeOptionEntity retrievedOption = dao.getById(newOption.getId()); assertNotNull(retrievedOption); assertEquals(newOption, retrievedOption); } @Test public void testUpdateVolumeOption() { GlusterVolumeOptionEntity optionAuthAllow = dao.getById(EXISTING_OPTION_ID); assertEquals(GlusterConstants.OPTION_AUTH_ALLOW, optionAuthAllow.getKey()); assertEquals(OPTION_AUTH_ALLOW_VALUE_ALL, optionAuthAllow.getValue()); dao.updateVolumeOption(optionAuthAllow.getId(), OPTION_AUTH_ALLOW_VALUE_NEW); GlusterVolumeOptionEntity retrievedOption = dao.getById(EXISTING_OPTION_ID); assertNotNull(retrievedOption); assertEquals(OPTION_AUTH_ALLOW_VALUE_NEW, retrievedOption.getValue()); } @Test public void testRemoveVolumeOption() { assertNotNull(dao.getById(EXISTING_OPTION_ID)); dao.removeVolumeOption(EXISTING_OPTION_ID); assertNull(dao.getById(EXISTING_OPTION_ID)); } @Test public void testRemoveVolumeOptionMultiple() { List<GlusterVolumeOptionEntity> options = dao.getOptionsOfVolume(EXISTING_VOL_ID); assertEquals(2, options.size()); List<Guid> idsToRemove = new ArrayList<>(); idsToRemove.add(options.get(0).getId()); idsToRemove.add(options.get(1).getId()); dao.removeAll(idsToRemove); options = dao.getOptionsOfVolume(EXISTING_VOL_ID); assertTrue(options.isEmpty()); } }