@SuppressWarnings("unchecked") public Class<ContainerConfiguration> getConfigurationClass() { return delegate.getConfigurationClass(); }
@SuppressWarnings("unchecked") public Class<ContainerConfiguration> getConfigurationClass() { return delegate.getConfigurationClass(); }
@Override public ContainerConfiguration createDeployableConfiguration() throws Exception { ContainerConfiguration config = SecurityActions.newInstance( deployableContainer.getConfigurationClass(), new Class<?>[0], new Object[0]); MapObject.populate(config, containerConfiguration.getContainerProperties()); config.validate(); return config; }
public void validateDescriptor(@Observes BeforeStart event, ArquillianDescriptor descriptor) { if (!event.getDeployableContainer().getConfigurationClass().equals(AndroidContainerConfiguration.class)) { return; } Map<String, String> extensionProperties = null; for (ExtensionDef extension : descriptor.getExtensions()) { extensionProperties = extension.getExtensionProperties(); if (extension.getExtensionName().startsWith("webdriver")) { String browser = extensionProperties.get("browser"); if (browser != null && browser.equals("android")) { if (!isNativeExtensionOnClassPath()) { logger.warning("You have Droidium container as well as webdriver extension with browser \"android\" " + "configured in arquillian.xml but there is not Droidium native extension on " + "the class path. This setting is highly suspicious - it might not be wrong when you actually " + "do not use Drone instance injected into test case for that extension however, in most cases, " + "please add Droidium native on class path to be able to test native Android " + "applications or web applications from Android device."); break; } } } } }
@Override public ContainerConfiguration createDeployableConfiguration() throws Exception { ContainerConfiguration config = SecurityActions.newInstance( deployableContainer.getConfigurationClass(), new Class<?>[0], new Object[0]); MapObject.populate(config, containerConfiguration.getContainerProperties()); config.validate(); return config; }
@Before public void setup() throws Exception { Mockito.when(serviceLoader.onlyOne(Mockito.same(DeployableContainer.class))).thenReturn(deployableContainer); Mockito.when(deployableContainer.getConfigurationClass()).thenReturn(DummyContainerConfiguration.class); }
public void onBeforeUnDeploy(@Observes BeforeUnDeploy event, AndroidDevice androidDevice) { if (event.getDeployableContainer().getConfigurationClass() != AndroidContainerConfiguration.class) { return; } AndroidApplicationManager androidApplicationManager = new AndroidApplicationManager(androidDevice, androidSDK.get()); this.androidApplicationManager.set(androidApplicationManager); }
filterArquillianConfigurationPropertiesByAddressAttribute(containerConfiguration); Class<?> configurationClass = container.getDeployableContainer().getConfigurationClass();
@Before public void setup() { Yaml yaml = new Yaml(); @SuppressWarnings("unchecked") Map<String, Object> content = (Map<String, Object>) yaml.load(CONTENT); when(cube.getId()).thenReturn(CUBE_ID); when(cube.configuration()).thenReturn(content); when(container.getName()).thenReturn(CUBE_ID); when(container.getDeployableContainer()).thenReturn(deployableContainer); when(deployableContainer.getConfigurationClass()).thenReturn(ContainerConfiguration.class); when(container.getContainerConfiguration()).thenReturn(containerDef); when(containerRegistry.getContainers()).thenReturn(Arrays.asList(container)); when(hasPortBindings.getContainerIP()).thenReturn("192.168.0.1"); registry = new LocalCubeRegistry(); registry.addCube(cube); bind(ApplicationScoped.class, CubeRegistry.class, registry); bind(ApplicationScoped.class, ContainerRegistry.class, containerRegistry); }
filterArquillianConfigurationPropertiesByAddressAttribute(containerConfiguration); Class<?> configurationClass = container.getDeployableContainer().getConfigurationClass();
@Before public void setup() { when(deployableContainer.getConfigurationClass()).thenReturn(DummyContainerConfiguration.class); when(serviceLoader.onlyOne(eq(DeployableContainer.class))).thenReturn(deployableContainer); when(container1.getContainerName()).thenReturn(CONTAINER_1_NAME); when(container2.getContainerName()).thenReturn(CONTAINER_2_NAME); when(container3.getContainerName()).thenReturn(CONTAINER_3_NAME); when(container4.getContainerName()).thenReturn(CONTAINER_4_NAME); when(container5.getContainerName()).thenReturn(CONTAINER_5_NAME); when(container1.getMode()).thenReturn("suite"); when(container2.getMode()).thenReturn("suite"); when(container3.getMode()).thenReturn("class"); when(container4.getMode()).thenReturn("class"); when(container5.getMode()).thenReturn("custom"); registry = new LocalContainerRegistry(injector.get()); bind(ApplicationScoped.class, ContainerRegistry.class, registry); }
for (DeployableContainer s : serviceLoader.all(DeployableContainer.class)) { stringBuilder.append(separator) .append(s.getConfigurationClass().getName()); separator = ", ";
for (DeployableContainer s : serviceLoader.all(DeployableContainer.class)) { stringBuilder.append(separator) .append(s.getConfigurationClass().getName()); separator = ", ";
@Before public void setup() { Yaml yaml = new Yaml(); @SuppressWarnings("unchecked") Map<String, Object> content = (Map<String, Object>) yaml.load(CONTENT); when(cube.getId()).thenReturn(CUBE_ID); when(cube.configuration()).thenReturn(content); when(cube.getMetadata(HasPortBindings.class)).thenReturn( new TestPortBindings(new Binding("localhost").addPortBinding(8089, 8090))); when(container.getName()).thenReturn(CUBE_ID); when(container.getDeployableContainer()).thenReturn(deployableContainer); when(deployableContainer.getConfigurationClass()).thenReturn(ContainerConfiguration.class); when(container.getContainerConfiguration()).thenReturn(containerDef); when(containerRegistry.getContainers()).thenReturn(Arrays.asList(container)); registry = new LocalCubeRegistry(); registry.addCube(cube); bind(ApplicationScoped.class, CubeRegistry.class, registry); bind(ApplicationScoped.class, ContainerRegistry.class, containerRegistry); }
public void onBeforeDeploy(@Observes BeforeDeploy event, AndroidDevice androidDevice) { if (event.getDeployableContainer().getConfigurationClass() != AndroidContainerConfiguration.class) { return; } AndroidDeviceRegister register = androidDeviceRegister.get(); if (register.contains(androidDevice)) { AndroidDeviceMetadata metadata = register.getMetadata(androidDevice); metadata.addDeploymentName(event.getDeployment().getName()); register.put(androidDevice, metadata); } else { throw new IllegalStateException("It seems you are trying to deploy deployment to device which is not ready yet. " + "This should never happen."); } AndroidApplicationManager androidApplicationManager = new AndroidApplicationManager(androidDevice, androidSDK.get()); this.androidApplicationManager.set(androidApplicationManager); }
@Test public void shouldBeAbleToCreatePrivateContainerConfiguration() throws Exception { // Override default configured class ServiceLoader serviceLoader = Mockito.mock(ServiceLoader.class); DeployableContainer<PrivateDummyContainerConfiguration> deployableContainer = Mockito.mock(DeployableContainer.class); Mockito.when(serviceLoader.onlyOne(Mockito.same(DeployableContainer.class))).thenReturn(deployableContainer); Mockito.when(deployableContainer.getConfigurationClass()).thenReturn(PrivateDummyContainerConfiguration.class); String name = "some-name"; String prop = "prop-value"; ContainerRegistry registry = new LocalContainerRegistry(injector.get()); registry.create(new ContainerDefImpl(ARQUILLIAN_XML).setContainerName(name) .property("property", prop), serviceLoader); Container container = registry.getContainer(new TargetDescription(name)); Assert.assertEquals( "Verify that the only registered container is returned as default", name, container.getName()); Assert.assertEquals( "Verify that the configuration was populated", prop, ((PrivateDummyContainerConfiguration) container.createDeployableConfiguration()).getProperty()); }
public void applyDockerServerIpChange(@Observes BeforeSetup event, CubeRegistry cubeRegistry, ContainerRegistry containerRegistry) throws InstantiationException, IllegalAccessException, MalformedURLException { Container container = ContainerUtil.getContainerByDeployableContainer(containerRegistry, event.getDeployableContainer()); if (container == null) { return; } Cube<?> cube = cubeRegistry.getCube(org.arquillian.cube.impl.util.ContainerUtil.getCubeIDForContainer(container)); if (cube == null) { return; // No Cube found matching Container name, not managed by Cube } HasPortBindings portBindings = cube.getMetadata(HasPortBindings.class); if (portBindings == null) { return; } ContainerDef containerConfiguration = container.getContainerConfiguration(); boolean foundAttribute = resolveConfigurationPropertiesWithDockerServerIp(containerConfiguration, portBindings.getContainerIP()); //if user doesn't configured in arquillian.xml the host then we can override the default value. if (!foundAttribute) { Class<?> configurationClass = container.getDeployableContainer().getConfigurationClass(); List<PropertyDescriptor> configurationClassHostOrAddressFields = filterConfigurationClassPropertiesByHostOrAddressAttribute(configurationClass); for (PropertyDescriptor propertyDescriptor : configurationClassHostOrAddressFields) { //we get default address value and we replace to boot2docker ip containerConfiguration.overrideProperty(propertyDescriptor.getName(), portBindings.getContainerIP()); } } }
public void applyDockerServerIpChange(@Observes BeforeSetup event, CubeRegistry cubeRegistry, ContainerRegistry containerRegistry) throws InstantiationException, IllegalAccessException, MalformedURLException { Container container = ContainerUtil.getContainerByDeployableContainer(containerRegistry, event.getDeployableContainer()); if (container == null) { return; } Cube<?> cube = cubeRegistry.getCube(org.arquillian.cube.impl.util.ContainerUtil.getCubeIDForContainer(container)); if (cube == null) { return; // No Cube found matching Container name, not managed by Cube } HasPortBindings portBindings = cube.getMetadata(HasPortBindings.class); if (portBindings == null) { return; } ContainerDef containerConfiguration = container.getContainerConfiguration(); boolean foundAttribute = resolveConfigurationPropertiesWithDockerServerIp(containerConfiguration, portBindings.getContainerIP()); //if user doesn't configured in arquillian.xml the host then we can override the default value. if (!foundAttribute) { Class<?> configurationClass = container.getDeployableContainer().getConfigurationClass(); List<PropertyDescriptor> configurationClassHostOrAddressFields = filterConfigurationClassPropertiesByHostOrAddressAttribute(configurationClass); for (PropertyDescriptor propertyDescriptor : configurationClassHostOrAddressFields) { //we get default address value and we replace to boot2docker ip containerConfiguration.overrideProperty(propertyDescriptor.getName(), portBindings.getContainerIP()); } } }
@Before public void setup() throws Exception { when(deployableContainer1.deploy(isA(Archive.class))).thenReturn(protocolMetaData); when(deployableContainer1.getConfigurationClass()).thenReturn(DummyContainerConfiguration.class); when(deployableContainer2.deploy(isA(Archive.class))).thenReturn(protocolMetaData); when(deployableContainer2.getConfigurationClass()).thenReturn(DummyContainerConfiguration.class); when(serviceLoader.onlyOne(eq(DeployableContainer.class))).thenReturn(deployableContainer1, deployableContainer2); when(container1.getContainerName()).thenReturn(CONTAINER_1_NAME);
/** * Creates all resources related to this container after its start so we can further use them by injection points. * * @param event */ public void onAfterContainerStart(@Observes AfterStart event) { if (event.getDeployableContainer().getConfigurationClass() == AndroidContainerConfiguration.class) { activityDeploymentMapper.set(getActivityDeploymentMapper()); activityWebDriverMapper.set(getActivityWebDriverMapper()); extensionDroneMapper.set(getWebDriverPortMapper()); deploymentWebDriverMapper.set(getDeploymentWebDriverMapper()); deploymentInstrumentationMapper.set(getDeploymentInstrumentationMapper()); selendroidServerManager.set(getSelendroidServerManager()); selendroidRebuilder.set(getSelendroidRebuilder()); selendroidDeploymentRegister.set(new SelendroidDeploymentRegister()); NativeActivityManager activityManager = new NativeActivityManager(activityWebDriverMapper.get()); androidDevice.get().getActivityManagerProvider().setActivityManager(activityManager); } }