@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 + "]"); } } }
@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 + "]"); } } }
@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); } } }
@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); } } }
@Override protected void handle(Matcher matcher, String value, ArquillianDescriptor descriptor) { String containerName = matcher.group(1); String protocolName = matcher.group(2); String propertyName = matcher.group(3); final ProtocolDef protocolDef = descriptor.container(containerName).protocol(protocolName); final String originalValue = protocolDef.getProtocolProperty(propertyName); if (value.contains(ORIGINAL_VALUE)) { protocolDef.property(propertyName, value.replace(ORIGINAL_VALUE, originalValue != null ? originalValue : "")); } else { protocolDef.property(propertyName, value); } } }
@Override protected void handle(Matcher matcher, String value, ArquillianDescriptor descriptor) { String containerName = matcher.group(1); String protocolName = matcher.group(2); String propertyName = matcher.group(3); final ProtocolDef protocolDef = descriptor.container(containerName).protocol(protocolName); final String originalValue = protocolDef.getProtocolProperty(propertyName); if (value.contains(ORIGINAL_VALUE)) { protocolDef.property(propertyName, value.replace(ORIGINAL_VALUE, originalValue != null ? originalValue : "")); } else { protocolDef.property(propertyName, value); } } }
@Test(expected = IllegalArgumentException.class) public void shouldThrowExceptionOnDefinedLaunchQualifierMissing() throws IllegalArgumentException { System.setProperty(ContainerRegistryCreator.ARQUILLIAN_LAUNCH_PROPERTY, CONTAINER_1); try { fire(Descriptors.create(ArquillianDescriptor.class) .container(CONTAINER_2)); } catch (IllegalArgumentException e) { Assert.assertTrue(e.getMessage().startsWith("No container or group found that match given qualifier")); throw e; } finally { System.setProperty(ContainerRegistryCreator.ARQUILLIAN_LAUNCH_PROPERTY, ""); } }
@Test public void shouldRegisterDefaultContainer() { fire( Descriptors.create(ArquillianDescriptor.class) .container(CONTAINER_1)); // not set as default verifyRegistry("default"); }
@Test public void shouldRegisterGroupDefinedBySystemProperty() { System.setProperty(ContainerRegistryCreator.ARQUILLIAN_LAUNCH_PROPERTY, GROUP_1); try { fire( Descriptors.create(ArquillianDescriptor.class) .container(CONTAINER_1) .setDefault() .group(GROUP_1) .container(CONTAINER_2)); verifyRegistry(CONTAINER_2); } finally { System.setProperty(ContainerRegistryCreator.ARQUILLIAN_LAUNCH_PROPERTY, ""); } }
@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(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; } }
@Test public void shouldRegisterContainerDefinedBySystemProperty() { System.setProperty(ContainerRegistryCreator.ARQUILLIAN_LAUNCH_PROPERTY, CONTAINER_1); try { fire( Descriptors.create(ArquillianDescriptor.class) .container(CONTAINER_1) .group(GROUP_1) .setGroupDefault() .container(CONTAINER_2)); verifyRegistry(CONTAINER_1); } finally { System.setProperty(ContainerRegistryCreator.ARQUILLIAN_LAUNCH_PROPERTY, ""); } }
@Test public void shouldRegisterContainerMarkedDefault() { fire( Descriptors.create(ArquillianDescriptor.class) .container(CONTAINER_1) .setDefault()); verifyRegistry(CONTAINER_1); }
@Test public void should_not_replace_placeholder_if_classpath_resource_not_found() throws Exception { String element = "notfound.txt"; 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(); assertXPath(descString, "/arquillian/container/configuration/property", String.format("-Djavax.net.ssl.trustStore=${classpath(%s)}", element)); }
@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 shouldRegisterContainerMarkedDefaultWhenMultipleDefined() { fire( Descriptors.create(ArquillianDescriptor.class) .container(CONTAINER_1) .setDefault() .container(CONTAINER_2)); verifyRegistry(CONTAINER_1); }
@Test @Ignore // Dependencies not supported on container level in v. 1.0 public void shouldBeAbleToAddContainerWithDependencies() throws Exception { desc = create() .container(CONTAINER_NAME_1) .dependency(DEPENDENCY_1) .dependency(DEPENDENCY_2).exportAsString(); assertXPath(desc, "/arquillian/container/dependencies/dependency", DEPENDENCY_1, DEPENDENCY_2); ArquillianDescriptor descriptor = create(desc); Assert.assertEquals(1, descriptor.getContainers().size()); Assert.assertEquals(CONTAINER_NAME_1, descriptor.getContainers().get(0).getContainerName()); Assert.assertEquals(DEPENDENCY_1, descriptor.getContainers().get(0).getDependencies().get(0)); Assert.assertEquals(DEPENDENCY_2, descriptor.getContainers().get(0).getDependencies().get(1)); }
@Test public void should_not_replace_other_placeholders() throws Exception { ArquillianDescriptor desc = create() .container("daemon") .property("javaVmArguments", "-Djavax.net.ssl.trustStore=${env.LAUNCHER_TESTS_TRUSTSTORE_PATH}"); final ClasspathConfigurationPlaceholderResolver classpathConfigurationPlaceholderResolver = new ClasspathConfigurationPlaceholderResolver(); // when desc = classpathConfigurationPlaceholderResolver.resolve(desc); // then final String descString = desc.exportAsString(); assertXPath(descString, "/arquillian/container/configuration/property", "-Djavax.net.ssl.trustStore=${env.LAUNCHER_TESTS_TRUSTSTORE_PATH}"); }
@Test public void shouldBeAbleToAddContainerAndOverwrite() throws Exception { desc = create() .container(CONTAINER_NAME_1).setDefault() .container(CONTAINER_NAME_1).setContainerName(CONTAINER_NAME_2) .exportAsString(); assertXPath(desc, "/arquillian/container/@qualifier", CONTAINER_NAME_2); assertXPath(desc, "/arquillian/container/@default", "true"); ArquillianDescriptor descriptor = create(desc); 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()); }