package org.ovirt.engine.core.bll; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.mockito.Mockito.when; import org.junit.Test; import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.queries.ConfigurationValues; import org.ovirt.engine.core.common.queries.GetConfigurationValueParameters; import org.ovirt.engine.core.compat.Version; import org.ovirt.engine.core.utils.RandomUtils; public class GetConfigurationValueQueryTest extends AbstractUserQueryTest<GetConfigurationValueParameters, GetConfigurationValueQuery<GetConfigurationValueParameters>> { @Test public void testExecuteQueryUserConfigFiltered() { assertQueryExecution(ConfigurationValues.MaxVmsInPool, true, true); } @Test public void testExecuteQueryUserConfigNotFiltered() { assertQueryExecution(ConfigurationValues.MaxVmsInPool, false, true); } private void assertQueryExecution(ConfigurationValues configValue, boolean isFiltered, boolean shouldSucceed) { // Mock the parameters Version version = RandomUtils.instance().pickRandom(Version.ALL); when(getQueryParameters().getVersion()).thenReturn(version.toString()); when(getQueryParameters().getConfigValue()).thenReturn(configValue); when(getQueryParameters().isFiltered()).thenReturn(isFiltered); // Mock the config String expected = mockConfig(version, configValue); getQuery().executeQueryCommand(); Object actual = getQuery().getQueryReturnValue().getReturnValue(); if (shouldSucceed) { assertEquals("Got wrong expected value for " + configValue, expected, actual); } else { assertNull("Should get null result for " + configValue, actual); } } /** * Mocks a call to {@link org.ovirt.engine.core.common.config.Config#getValue(ConfigValues)} and returns the value * it should return. * @return The mocked value */ private static String mockConfig(Version version, ConfigurationValues configurationValues) { String returnValue = RandomUtils.instance().nextString(10, true); ConfigValues configValues = ConfigValues.valueOf(configurationValues.name()); mcr.mockConfigValue(configValues, version, returnValue); return returnValue; } }