package org.ovirt.engine.core.dao; import static org.junit.Assert.*; 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 OPTION_COUNT = 5; private VdcOptionDAO dao; private VdcOption existingOption; private VdcOption newOption; @Override public void setUp() throws Exception { super.setUp(); dao = prepareDAO(dbFacade.getVdcOptionDAO()); existingOption = dao.getByNameAndVersion("UserDefinedVmPropertiesKey1", "general"); newOption = new VdcOption(); newOption.setoption_name("option_name"); newOption.setoption_value("option_value"); newOption.setversion("general"); } /** * Ensures the ID must be valid. */ @Test public void testGetWithInvalidId() { VdcOption result = dao.get(717); assertNull(result); } /** * Ensures retrieving an option works as expected. */ @Test public void testGet() { VdcOption result = dao.get(existingOption.getoption_id()); 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.getoption_name(), "farkle"); assertNull(result); } /** * Ensures retrieving an option by name and version works. */ @Test public void testGetBynameAndVersion() { VdcOption result = dao.getByNameAndVersion(existingOption.getoption_name(), 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.getoption_name(), newOption.getversion()); assertNotNull(result); assertEquals(newOption, result); } /** * Ensures updating an option works as expected. */ @Test public void testUpdate() { existingOption.setoption_value("this is a new value"); dao.update(existingOption); VdcOption result = dao.get(existingOption.getoption_id()); assertEquals(existingOption, result); } /** * Ensures removing an option works as expected. */ @Test public void testRemove() { dao.remove(existingOption.getoption_id()); VdcOption result = dao.get(existingOption.getoption_id()); assertNull(result); } }