package org.fluentlenium.configuration; import org.assertj.core.api.Assertions; import org.fluentlenium.configuration.ConfigurationProperties.DriverLifecycle; import org.junit.Test; import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class ConfigurationDefaultsTest { @Test public void testConfiguration() throws IntrospectionException, InvocationTargetException, IllegalAccessException { ConfigurationDefaults configurationDefaults = new ConfigurationDefaults(); PropertyDescriptor[] props = Introspector.getBeanInfo(configurationDefaults.getClass()).getPropertyDescriptors(); for (PropertyDescriptor prop : props) { Method readMethod = prop.getReadMethod(); if (readMethod.getDeclaringClass() == Object.class) { continue; } switch (prop.getName()) { case "driverLifecycle": Assertions.assertThat(readMethod.invoke(configurationDefaults)).isEqualTo(DriverLifecycle.METHOD); break; case "configurationDefaults": Assertions.assertThat(readMethod.invoke(configurationDefaults)).isSameAs(ConfigurationDefaults.class); break; case "deleteCookies": Assertions.assertThat(readMethod.invoke(configurationDefaults)).isEqualTo(false); break; case "eventsEnabled": Assertions.assertThat(readMethod.invoke(configurationDefaults)).isEqualTo(true); break; default: Assertions.assertThat(readMethod.invoke(configurationDefaults)).isNull(); break; } } } }