package org.ovirt.engine.core.dal.dbbroker.generic; import java.lang.reflect.Field; import org.junit.Before; import org.junit.Test; import org.junit.Assert; import org.ovirt.engine.core.common.config.Config; import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.common.config.OptionBehaviour; import org.ovirt.engine.core.common.config.OptionBehaviourAttribute; import org.ovirt.engine.core.common.config.TypeConverterAttribute; public class DBConfigUtilsTest { private DBConfigUtils config; @Before public void setup() { config = new DBConfigUtils(false); } @Test public void testDefaultValues() { ConfigValues[] values = ConfigValues.values(); for (ConfigValues curConfig : values) { if (curConfig == ConfigValues.Invalid) continue; Field configField = null; try { configField = ConfigValues.class.getField(curConfig.name()); } catch (Exception e) { Assert.fail("Failed to look up" + curConfig.name()); e.printStackTrace(); } OptionBehaviourAttribute behaviourAttr = configField.getAnnotation(OptionBehaviourAttribute.class); if (behaviourAttr != null && (behaviourAttr.behaviour() == OptionBehaviour.Password || behaviourAttr.behaviour() == OptionBehaviour.DomainsPasswordMap)) { continue; // no cert available for password decrypt } TypeConverterAttribute typeAttr = configField.getAnnotation(TypeConverterAttribute.class); Class<?> c = typeAttr.value(); Object obj = config.GetValue(curConfig, Config.DefaultConfigurationVersion); Assert.assertTrue("null return for " + curConfig.name(), obj != null); Assert.assertTrue( curConfig.name() + " is a " + obj.getClass().getName() + " but should be a " + c.getName(), c.isInstance(obj)); } } }