@Override public C create(ArquillianDescriptor arquillian) { Map<String, String> config = arquillian.extension(KUBERNETES_EXTENSION_NAME).getExtensionProperties(); configureProtocolHandlers(config); final DefaultConfiguration configuration = DefaultConfiguration.fromMap(config); System.out.println(configuration); return (C)configuration; } }
private Map<String, String> getConfiguration() { for (ExtensionDef def : descriptor.get().getExtensions()) { if (SystemProperties.EXTENSION_NAME.equalsIgnoreCase(def .getExtensionName())) { return def.getExtensionProperties(); } } return new HashMap<String, String>(); }
@Override protected void handle(Matcher matcher, String value, ArquillianDescriptor descriptor) { String propertyName = matcher.group(1); if ("deploymentExportPath".equals(propertyName)) { descriptor.engine().deploymentExportPath(value); } else if ("maxTestClassesBeforeRestart".equals(propertyName)) { descriptor.engine().maxTestClassesBeforeRestart(Integer.parseInt(value)); } else { throw new RuntimeException( "Unknown arquillian engine property[" + propertyName + "] with value[" + value + "]"); } } }
public void overwriteDroneConfiguration(@Observes ArquillianDescriptor arquillianDescriptor) { final List<ExtensionDef> extensions = arquillianDescriptor.getExtensions(); final ExtensionDef webdriver = arquillianDescriptor.extension("webdriver"); if (webdriver != null) { webdriver.property("remote", "true"); final Map<String, String> extensionProperties = webdriver.getExtensionProperties(); if (!extensionProperties.containsKey("browser")) { webdriver.property("browser", "firefox"); } } } }
@Test public void tlsVerifyShouldBeFalseInCaseOfHttpServerUri() throws Exception { Map<String, String> config = new HashMap<>(); config.put(CubeDockerConfiguration.DOCKER_URI, "http://192.168.0.2:22222"); when(extensionDef.getExtensionProperties()).thenReturn(config); when(arquillianDescriptor.extension("docker")).thenReturn(extensionDef); when(commandLineExecutor.execCommand("docker-machine")).thenThrow(new RuntimeException()); fire(new CubeConfiguration()); assertThat(config, hasEntry(CubeDockerConfiguration.DOCKER_URI, "tcp://192.168.0.2:22222")); assertThat(config, hasEntry(CubeDockerConfiguration.TLS_VERIFY, "false")); assertThat(config, not(hasKey(CubeDockerConfiguration.CERT_PATH))); }
@Test public void shouldStartDockerMachineIfItIsStoppedAndMachineNameIsSet() { Map<String, String> config = new HashMap<>(); config.put(CubeDockerConfiguration.DOCKER_URI, "tcp://dockerHost:22222"); config.put(CubeDockerConfiguration.DOCKER_MACHINE_NAME, "dev"); when(extensionDef.getExtensionProperties()).thenReturn(config); when(arquillianDescriptor.extension("docker")).thenReturn(extensionDef); when(commandLineExecutor.execCommandAsArray("docker-machine", "ls")) .thenReturn(Arrays.asList( "NAME ACTIVE DRIVER STATE URL SWARM", "dev * virtualbox Stopped tcp://192.168.0.2:222222 ")); when(commandLineExecutor.execCommand("docker-machine", "ip", "dev")).thenReturn("192.168.0.2"); fire(new CubeConfiguration()); assertThat(config, hasEntry(CubeDockerConfiguration.DOCKER_URI, "tcp://192.168.0.2:22222")); verify(commandLineExecutor, times(1)).execCommand("docker-machine", "start", "dev"); }
@Before public void prepareDescriptor() { Map<String, String> properties = new HashMap<String, String>(); properties.put("waitGuiInterval", "5"); properties.put("waitAjaxInterval", "25"); properties.put("waitModelInterval", "125"); when(extensionDefinition.getExtensionName()).thenReturn("graphene"); when(extensionDefinition.getExtensionProperties()).thenReturn(properties); when(descriptor.getExtensions()).thenReturn(Arrays.asList(new ExtensionDef[] { extensionDefinition })); }
@Override public String get() { return desc.getExtensions().get(0).getExtensionProperties().get(CONFIGURATION_PROP_1); } });
public void configure(@Observes(precedence = -10) ArquillianDescriptor arquillianDescriptor) { Map<String, String> config = arquillianDescriptor.extension(EXTENSION_NAME).getExtensionProperties(); CubeConfiguration cubeConfiguration = CubeConfiguration.fromMap(config); configurationProducer.set(cubeConfiguration); } }
private ExtensionDef getExtension(ArquillianDescriptor descriptor, String extensionQualifier) { for (ExtensionDef extension : descriptor.getExtensions()) { if (extension.getExtensionName().equals(extensionQualifier)) { return extension; } } return null; }
@Test public void shouldBeAbleToAddContainerAndOverwrite() throws Exception { System.setProperty(KEY_CONTAINER_NAME_1, CONTAINER_NAME_1); System.setProperty(KEY_CONTAINER_NAME_2, CONTAINER_NAME_2); desc = create() .container(CONTAINER_NAME_1).setDefault() .container(CONTAINER_NAME_1).setContainerName(setPropKey(KEY_CONTAINER_NAME_2)); desc = new SystemPropertiesConfigurationPlaceholderResolver().resolve(desc); final String descString = desc.exportAsString(); assertXPath(descString, "/arquillian/container/@qualifier", CONTAINER_NAME_2); assertXPath(descString, "/arquillian/container/@default", "true"); ArquillianDescriptor descriptor = create(descString); Assert.assertEquals(1, descriptor.getContainers().size()); Assert.assertEquals(CONTAINER_NAME_2, descriptor.getContainers().get(0).getContainerName()); Assert.assertTrue(descriptor.getContainers().get(0).isDefault()); }
@Test public void shouldBeAbleToAddContainer() throws Exception { desc = create() .container(CONTAINER_NAME_1).setDefault() .container(CONTAINER_NAME_2).exportAsString(); assertXPath(desc, "/arquillian/container/@qualifier", CONTAINER_NAME_1, CONTAINER_NAME_2); assertXPath(desc, "/arquillian/container[1]/@default", "true"); ArquillianDescriptor descriptor = create(desc); Assert.assertEquals(2, descriptor.getContainers().size()); Assert.assertEquals(CONTAINER_NAME_1, descriptor.getContainers().get(0).getContainerName()); Assert.assertTrue(descriptor.getContainers().get(0).isDefault()); Assert.assertEquals(CONTAINER_NAME_2, descriptor.getContainers().get(1).getContainerName()); }
@Test @Ignore // Dependencies not supported on container level in v. 1.0 public void shouldBeAbleToAddContainerWithDependenciesAndOverwrite() throws Exception { desc = create() .container(CONTAINER_NAME_1) .dependency(DEPENDENCY_1) .dependency(DEPENDENCY_1).exportAsString(); assertXPath(desc, "/arquillian/container/dependencies/dependency", DEPENDENCY_1); ArquillianDescriptor descriptor = create(desc); Assert.assertEquals(1, descriptor.getContainers().size()); Assert.assertEquals(CONTAINER_NAME_1, descriptor.getContainers().get(0).getContainerName()); Assert.assertEquals(1, descriptor.getContainers().get(0).getDependencies().size()); Assert.assertEquals(DEPENDENCY_1, descriptor.getContainers().get(0).getDependencies().get(0)); }
@Test public void shouldBeAbleToAddEverything() throws Exception { desc = create() .defaultProtocol(PROTOCOL_TYPE_1) .property(PROPERTY_VALUE_3, PROPERTY_VALUE_3) .container(CONTAINER_NAME_1) .property(PROPERTY_NAME_1, PROPERTY_VALUE_1) .dependency(DEPENDENCY_1) .protocol(PROTOCOL_TYPE_1) .property(PROPERTY_NAME_2, PROPERTY_VALUE_2) .group(GROUP_NAME_1) .container(CONTAINER_NAME_2) .property(PROPERTY_NAME_1, PROPERTY_VALUE_1) .dependency(DEPENDENCY_2) .protocol(PROTOCOL_TYPE_2) .property(PROPERTY_NAME_3, PROPERTY_VALUE_3) .group(GROUP_NAME_2) .container(CONTAINER_NAME_3) .protocol(PROTOCOL_TYPE_3) .property(PROPERTY_NAME_1, PROPERTY_VALUE_1) .container(CONTAINER_NAME_4) .extension(EXTENSION_NAME_1) .property(PROPERTY_NAME_1, PROPERTY_VALUE_2) .exportAsString(); }
@Override protected void handle(Matcher matcher, String value, ArquillianDescriptor descriptor) { String containerName = matcher.group(1); String attributeName = matcher.group(2); if ("mode".equals(attributeName)) { descriptor.container(containerName).setMode(value); } else if ("default".equals(attributeName)) { descriptor.container(containerName).setDefault(); } else { throw new RuntimeException( "Unknown arquillian container attribute[" + attributeName + "] with value[" + value + "]"); } } }
@Test public void should_replace_properties_with_classpath_location() throws Exception { // given String element = "arquillian_sysprop.xml"; ArquillianDescriptor desc = create() .container("daemon") .property("javaVmArguments", "-Djavax.net.ssl.trustStore=${classpath(" + element + ")}"); final ClasspathConfigurationPlaceholderResolver classpathConfigurationPlaceholderResolver = new ClasspathConfigurationPlaceholderResolver(); // when desc = classpathConfigurationPlaceholderResolver.resolve(desc); // then final String descString = desc.exportAsString(); final URL resource = Thread.currentThread().getContextClassLoader().getResource(element); assertXPath(descString, "/arquillian/container/configuration/property", String.format("-Djavax.net.ssl.trustStore=%s", resource.toString())); }
@Test(expected = IllegalStateException.class) public void shouldThrowExceptionIfMultipleContainersSetAsDefault() throws IllegalStateException { try { fire( Descriptors.create(ArquillianDescriptor.class) .container(CONTAINER_1) .setDefault() .container(CONTAINER_2) .setDefault()); } catch (IllegalStateException e) { Assert.assertTrue(e.getMessage().startsWith("Multiple Containers defined as default")); throw e; } }
@Override protected void handle(Matcher matcher, String value, ArquillianDescriptor descriptor) { String containerName = matcher.group(1); String propertyName = matcher.group(2); final ContainerDef containerDef = descriptor.container(containerName); final String originalValue = containerDef.getContainerProperty(propertyName); if (value.contains(ORIGINAL_VALUE)) { containerDef.property(propertyName, value.replace(ORIGINAL_VALUE, originalValue != null ? originalValue : "")); } else { containerDef.property(propertyName, value); } } }
@Test(expected = IllegalStateException.class) public void shouldThrowExceptionIfMultipleGroupsOrContainersSetAsDefault() throws IllegalStateException { try { fire( Descriptors.create(ArquillianDescriptor.class) .container(CONTAINER_1) .setDefault() .group(GROUP_1) .setGroupDefault()); } catch (IllegalStateException e) { Assert.assertTrue(e.getMessage().startsWith("Multiple Containers/Groups defined as default")); throw e; } }
@Test public void shouldBeAbleToAddDefaultProtocol() throws Exception { System.setProperty(KEY_PROPERTY_VALUE_1, PROPERTY_VALUE_1); desc = create() .defaultProtocol(PROTOCOL_TYPE_1) .property(PROPERTY_NAME_1, setPropKey(KEY_PROPERTY_VALUE_1)); desc = new SystemPropertiesConfigurationPlaceholderResolver().resolve(desc); final String descString = desc.exportAsString(); assertXPath(descString, "/arquillian/defaultProtocol/@type", PROTOCOL_TYPE_1); assertXPath(descString, "/arquillian/defaultProtocol/property/@name", PROPERTY_NAME_1); assertXPath(descString, "/arquillian/defaultProtocol/property/text()", PROPERTY_VALUE_1); ArquillianDescriptor descriptor = create(descString); Assert.assertNotNull(descriptor.getDefaultProtocol()); Assert.assertEquals(PROTOCOL_TYPE_1, descriptor.getDefaultProtocol().getType()); Assert.assertEquals(PROPERTY_VALUE_1, descriptor.getDefaultProtocol().getProperties().get(PROPERTY_NAME_1)); }