package org.fluentlenium.configuration; import org.junit.Before; import org.junit.Test; import java.lang.reflect.Field; import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; public class CapabilitiesTest { private CapabilitiesRegistryImpl capabilities; @Before public void before() { capabilities = new CapabilitiesRegistryImpl(); } @Test public void testDesiredCapabilities() { CapabilitiesFactory firefox = capabilities.get("DesiredCapabilities.firefox"); assertThat(firefox).isInstanceOf(MethodInvocationReflectionFactory.class); } @Test public void testNoDefault() throws NoSuchFieldException, IllegalAccessException { Field factoriesField = AbstractFactoryRegistryImpl.class.getDeclaredField("factories"); factoriesField.setAccessible(true); Map<String, Object> factories = (Map<String, Object>) factoriesField.get(capabilities); factories.remove("test-capabilities-factory"); CapabilitiesFactory webDriverFactory = capabilities.get(null); assertThat(webDriverFactory).isNull(); } @Test public void testDefault() throws NoSuchFieldException, IllegalAccessException { CapabilitiesFactory webDriverFactory = capabilities.get(null); assertThat(webDriverFactory).isExactlyInstanceOf(TestCapabilitiesFactory.class); } @Test public void testSingleton() { assertThat(CapabilitiesRegistry.INSTANCE.get("DesiredCapabilities.firefox")).isNotNull(); } }