@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); } } }
@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 shouldBeAbleToAddContainerAndOverwriteProtocol() throws Exception { desc = create() .container(CONTAINER_NAME_1) .protocol(PROTOCOL_TYPE_1) .property(PROPERTY_NAME_1, PROPERTY_VALUE_1) .protocol(PROTOCOL_TYPE_1) .property(PROPERTY_NAME_1, PROPERTY_VALUE_2) .exportAsString(); assertXPath(desc, "/arquillian/container/@qualifier", CONTAINER_NAME_1); assertXPath(desc, "/arquillian/container/protocol/@type", PROTOCOL_TYPE_1); assertXPath(desc, "/arquillian/container/protocol/property/@name", PROPERTY_NAME_1); assertXPath(desc, "/arquillian/container/protocol/property/text()", PROPERTY_VALUE_2); ArquillianDescriptor descriptor = create(desc); Assert.assertEquals(1, descriptor.getContainers().size()); Assert.assertEquals(1, descriptor.getContainers().get(0).getProtocols().size()); Assert.assertEquals(PROTOCOL_TYPE_1, descriptor.getContainers().get(0).getProtocols().get(0).getType()); Assert.assertEquals(PROPERTY_VALUE_2, descriptor.getContainers().get(0).getProtocols().get(0).getProtocolProperties().get(PROPERTY_NAME_1)); Assert.assertEquals(PROPERTY_VALUE_2, descriptor.getContainers().get(0).getProtocols().get(0).getProtocolProperty(PROPERTY_NAME_1)); }
@Test public void shouldBeAbleToAddContainerAndOverwriteProtocol() throws Exception { System.setProperty(KEY_PROPERTY_VALUE_1, PROPERTY_VALUE_1); System.setProperty(KEY_PROPERTY_VALUE_2, PROPERTY_VALUE_2); desc = create() .container(CONTAINER_NAME_1) .protocol(PROTOCOL_TYPE_1) .property(PROPERTY_NAME_1, setPropKey(KEY_PROPERTY_VALUE_1)) .protocol(PROTOCOL_TYPE_1) .property(PROPERTY_NAME_1, setPropKey(KEY_PROPERTY_VALUE_2)); desc = new SystemPropertiesConfigurationPlaceholderResolver().resolve(desc); final String descString = desc.exportAsString(); assertXPath(descString, "/arquillian/container/@qualifier", CONTAINER_NAME_1); assertXPath(descString, "/arquillian/container/protocol/@type", PROTOCOL_TYPE_1); assertXPath(descString, "/arquillian/container/protocol/property/@name", PROPERTY_NAME_1); assertXPath(descString, "/arquillian/container/protocol/property/text()", PROPERTY_VALUE_2); ArquillianDescriptor descriptor = create(descString); Assert.assertEquals(1, descriptor.getContainers().size()); Assert.assertEquals(1, descriptor.getContainers().get(0).getProtocols().size()); Assert.assertEquals(PROTOCOL_TYPE_1, descriptor.getContainers().get(0).getProtocols().get(0).getType()); Assert.assertEquals(PROPERTY_VALUE_2, descriptor.getContainers().get(0).getProtocols().get(0).getProtocolProperties().get(PROPERTY_NAME_1)); }
desc = create() .container(CONTAINER_NAME_1) .protocol(PROTOCOL_TYPE_1) .property(PROPERTY_NAME_1, PROPERTY_VALUE_1) .protocol(PROTOCOL_TYPE_2)
@Test public void shouldBeAbleToAddContainerWithMultipleProtocols() throws Exception { System.setProperty(KEY_PROPERTY_VALUE_1, PROPERTY_VALUE_1); System.setProperty(KEY_PROPERTY_VALUE_2, PROPERTY_VALUE_2); desc = create() .container(CONTAINER_NAME_1) .protocol(PROTOCOL_TYPE_1) .property(PROPERTY_NAME_1, setPropKey(KEY_PROPERTY_VALUE_1)) .protocol(PROTOCOL_TYPE_2) .property(PROPERTY_NAME_2, setPropKey(KEY_PROPERTY_VALUE_2)); desc = new SystemPropertiesConfigurationPlaceholderResolver().resolve(desc); final String descString = desc.exportAsString(); assertXPath(descString, "/arquillian/container/@qualifier", CONTAINER_NAME_1); assertXPath(descString, "/arquillian/container/protocol[1]/@type", PROTOCOL_TYPE_1); assertXPath(descString, "/arquillian/container/protocol[1]/property/@name", PROPERTY_NAME_1); assertXPath(descString, "/arquillian/container/protocol[1]/property/text()", PROPERTY_VALUE_1); assertXPath(descString, "/arquillian/container/protocol[2]/@type", PROTOCOL_TYPE_2); assertXPath(descString, "/arquillian/container/protocol[2]/property/@name", PROPERTY_NAME_2); assertXPath(descString, "/arquillian/container/protocol[2]/property/text()", PROPERTY_VALUE_2); ArquillianDescriptor descriptor = create(descString); Assert.assertEquals(1, descriptor.getContainers().size()); Assert.assertEquals(CONTAINER_NAME_1, descriptor.getContainers().get(0).getContainerName()); Assert.assertEquals(2, descriptor.getContainers().get(0).getProtocols().size()); Assert.assertEquals(PROTOCOL_TYPE_1, descriptor.getContainers().get(0).getProtocols().get(0).getType()); Assert.assertEquals(PROPERTY_VALUE_1, descriptor.getContainers().get(0).getProtocols().get(0).getProtocolProperties().get(PROPERTY_NAME_1)); Assert.assertEquals(PROTOCOL_TYPE_2, descriptor.getContainers().get(0).getProtocols().get(1).getType()); Assert.assertEquals(PROPERTY_VALUE_2, descriptor.getContainers().get(0).getProtocols().get(1).getProtocolProperties().get(PROPERTY_NAME_2)); }
@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(); }