package org.ovirt.engine.core.config;
import static org.hamcrest.Matchers.empty;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.fail;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.junit.BeforeClass;
import org.junit.Test;
import org.ovirt.engine.core.common.config.ConfigValues;
/**
* A test case to validate that the engine-config.properties files doesn't contain wrong/redundant entries
*/
public class EngineConfigPropertiesTest {
private static final String PROPERTIES_PATH = System.getProperty("engine-config.properties.production.file");
private static PropertiesConfiguration pc;
@BeforeClass
public static void setUpClass() {
try {
pc = new PropertiesConfiguration(PROPERTIES_PATH);
} catch (ConfigurationException e) {
fail(String.format("Failed to load configuration from the engine-config.properties.production.file " +
"environment variable set to %s.", PROPERTIES_PATH));
}
}
@Test
public void testKeysAreRealConfigValues() {
Set<String> badKeys = new HashSet<>();
Iterator<String> keyIter = pc.getKeys();
while (keyIter.hasNext()) {
String key = keyIter.next();
String confValueName = key.split("\\.")[0];
try {
ConfigValues.valueOf(confValueName);
} catch (IllegalArgumentException e) {
badKeys.add(confValueName);
}
}
assertThat(String.format("Found keys in %s that don't have corresponding ConfigValues", PROPERTIES_PATH),
badKeys,
empty());
}
}