@Override protected void handle(Matcher matcher, String value, ArquillianDescriptor descriptor) { String groupName = matcher.group(1); String containerName = matcher.group(2); String attributeName = matcher.group(3); if ("mode".equals(attributeName)) { descriptor.group(groupName).container(containerName).setMode(value); } else if ("default".equals(attributeName)) { descriptor.group(groupName).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 groupName = matcher.group(1); String containerName = matcher.group(2); String attributeName = matcher.group(3); if ("mode".equals(attributeName)) { descriptor.group(groupName).container(containerName).setMode(value); } else if ("default".equals(attributeName)) { descriptor.group(groupName).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 groupName = matcher.group(1); String containerName = matcher.group(2); String propertyName = matcher.group(3); final ContainerDef containerDef = descriptor.group(groupName).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 groupName = matcher.group(1); String containerName = matcher.group(2); String propertyName = matcher.group(3); final ContainerDef containerDef = descriptor.group(groupName).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 groupName = matcher.group(1); String containerName = matcher.group(2); String protocolName = matcher.group(3); String propertyName = matcher.group(4); final ProtocolDef protocolDef = descriptor.group(groupName).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 groupName = matcher.group(1); String containerName = matcher.group(2); String protocolName = matcher.group(3); String propertyName = matcher.group(4); final ProtocolDef protocolDef = descriptor.group(groupName).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 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 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(expected = IllegalStateException.class) public void shouldThrowExceptionIfMultipleContainersInGroupSetAsDefault() throws IllegalStateException { try { fire(Descriptors.create(ArquillianDescriptor.class) .group(GROUP_1) .container(CONTAINER_1) .setDefault() .container(CONTAINER_2) .setDefault()); } catch (IllegalStateException e) { Assert.assertTrue(e.getMessage().startsWith("Multiple Containers within Group defined as default")); throw e; } }
@Test public void shouldRegisterGroupMarkedDefault() { fire( Descriptors.create(ArquillianDescriptor.class) .group(GROUP_1) .setGroupDefault() .container(CONTAINER_1)); verifyRegistry(CONTAINER_1); }
@Test public void shouldBeAbleToAddGroupWithContainerAndOverwriteContainer() throws Exception { desc = create() .group(GROUP_NAME_1) .container(CONTAINER_NAME_1) .container(CONTAINER_NAME_1) .exportAsString(); assertXPath(desc, "/arquillian/group/@qualifier", GROUP_NAME_1); assertXPath(desc, "/arquillian/group/container/@qualifier", CONTAINER_NAME_1); ArquillianDescriptor descriptor = create(desc); Assert.assertEquals(1, descriptor.getGroups().size()); Assert.assertEquals(1, descriptor.getGroups().get(0).getGroupContainers().size()); Assert.assertEquals(CONTAINER_NAME_1, descriptor.getGroups().get(0).getGroupContainers().get(0).getContainerName()); }
@Test public void shouldBeAbleToAddGroupWithContainerAndOverwriteContainer() throws Exception { System.setProperty(KEY_CONTAINER_NAME_1, CONTAINER_NAME_1); desc = create() .group(GROUP_NAME_1) .container(setPropKey(KEY_CONTAINER_NAME_1)) .container(setPropKey(KEY_CONTAINER_NAME_1)); desc = new SystemPropertiesConfigurationPlaceholderResolver().resolve(desc); final String descString = desc.exportAsString(); assertXPath(descString, "/arquillian/group/@qualifier", GROUP_NAME_1); assertXPath(descString, "/arquillian/group/container/@qualifier", CONTAINER_NAME_1); ArquillianDescriptor descriptor = create(descString); Assert.assertEquals(1, descriptor.getGroups().size()); Assert.assertEquals(1, descriptor.getGroups().get(0).getGroupContainers().size()); Assert.assertEquals(CONTAINER_NAME_1, descriptor.getGroups().get(0).getGroupContainers().get(0).getContainerName()); }
@Test public void shouldBeAbleToAddGroupWithContainer() throws Exception { desc = create() .group(GROUP_NAME_1) .setGroupDefault() .container(CONTAINER_NAME_1) .container(CONTAINER_NAME_2) .group(GROUP_NAME_2) .container(CONTAINER_NAME_3).exportAsString(); assertXPath(desc, "/arquillian/group/@qualifier", GROUP_NAME_1, GROUP_NAME_2); assertXPath(desc, "/arquillian/group[1]/@default", true); assertXPath(desc, "/arquillian/group/container/@qualifier", CONTAINER_NAME_1, CONTAINER_NAME_2, CONTAINER_NAME_3); ArquillianDescriptor descriptor = create(desc); Assert.assertEquals(2, descriptor.getGroups().size()); Assert.assertEquals(2, descriptor.getGroups().get(0).getGroupContainers().size()); Assert.assertEquals(1, descriptor.getGroups().get(1).getGroupContainers().size()); Assert.assertEquals(GROUP_NAME_1, descriptor.getGroups().get(0).getGroupName()); Assert.assertEquals(CONTAINER_NAME_1, descriptor.getGroups().get(0).getGroupContainers().get(0).getContainerName()); Assert.assertEquals(CONTAINER_NAME_2, descriptor.getGroups().get(0).getGroupContainers().get(1).getContainerName()); Assert.assertEquals(GROUP_NAME_2, descriptor.getGroups().get(1).getGroupName()); Assert.assertEquals(CONTAINER_NAME_3, descriptor.getGroups().get(1).getGroupContainers().get(0).getContainerName()); }
.group(GROUP_NAME_1) .setGroupDefault() .container(setPropKey(KEY_CONTAINER_NAME_1)) .container(setPropKey(KEY_CONTAINER_NAME_2)) .group(GROUP_NAME_2) .container(setPropKey(KEY_CONTAINER_NAME_3)); desc = new SystemPropertiesConfigurationPlaceholderResolver().resolve(desc); final String descString = desc.exportAsString();
@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(); }