package org.ovirt.engine.core.dao; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import java.util.List; import org.junit.Test; import org.ovirt.engine.core.common.businessentities.VdcOption; public class VdcOptionDaoTest extends BaseDaoTestCase { private static final int INVALID_ID = -1; private static final int OPTION_COUNT = 7; private VdcOptionDao dao; private VdcOption existingOption; private VdcOption newOption; @Override public void setUp() throws Exception { super.setUp(); dao = dbFacade.getVdcOptionDao(); existingOption = dao.getByNameAndVersion("UserDefinedVmPropertiesKey1", "general"); newOption = new VdcOption(); newOption.setOptionName("option_name"); newOption.setOptionValue("option_value"); newOption.setVersion("general"); } /** * Ensures the ID must be valid. */ @Test public void testGetWithInvalidId() { VdcOption result = dao.get(INVALID_ID); assertNull(result); } /** * Ensures retrieving an option works as expected. */ @Test public void testGet() { VdcOption result = dao.get(existingOption.getOptionId()); assertNotNull(result); assertEquals(existingOption, result); } /** * Ensures the name must be valid. */ @Test public void testGetByNameAndVersionWithInvalidName() { VdcOption result = dao.getByNameAndVersion("farkle", existingOption.getVersion()); assertNull(result); } /** * Ensures the version must be valid. */ @Test public void testGetByNameAndVersionWithInvalidVersion() { VdcOption result = dao.getByNameAndVersion(existingOption.getOptionName(), "farkle"); assertNull(result); } /** * Ensures retrieving an option by name and version works. */ @Test public void testGetBynameAndVersion() { VdcOption result = dao.getByNameAndVersion(existingOption.getOptionName(), existingOption.getVersion()); assertNotNull(result); assertEquals(existingOption, result); } /** * Ensures that all options are returned. */ @Test public void testGetAll() { List<VdcOption> result = dao.getAll(); assertNotNull(result); assertFalse(result.isEmpty()); assertEquals(OPTION_COUNT, result.size()); } /** * Ensure saving an option works as expected. */ @Test public void testSave() { dao.save(newOption); VdcOption result = dao.getByNameAndVersion(newOption.getOptionName(), newOption.getVersion()); assertNotNull(result); assertEquals(newOption, result); } /** * Ensures updating an option works as expected. */ @Test public void testUpdate() { existingOption.setOptionValue("this is a new value"); dao.update(existingOption); VdcOption result = dao.get(existingOption.getOptionId()); assertEquals(existingOption, result); } /** * Ensures removing an option works as expected. */ @Test public void testRemove() { dao.remove(existingOption.getOptionId()); VdcOption result = dao.get(existingOption.getOptionId()); assertNull(result); } }