@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 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 + "]"); } } }
@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(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 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 public void shouldRegisterContainerMarkedDefault() { fire( Descriptors.create(ArquillianDescriptor.class) .container(CONTAINER_1) .setDefault()); verifyRegistry(CONTAINER_1); }
@Test public void shouldRegisterContainerMarkedDefaultWhenMultipleDefined() { fire( Descriptors.create(ArquillianDescriptor.class) .container(CONTAINER_1) .setDefault() .container(CONTAINER_2)); verifyRegistry(CONTAINER_1); }
@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 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 { System.setProperty(KEY_CONTAINER_NAME_1, CONTAINER_NAME_1); System.setProperty(KEY_CONTAINER_NAME_2, CONTAINER_NAME_2); desc = create() .container(setPropKey(KEY_CONTAINER_NAME_1)).setDefault() .container(setPropKey(KEY_CONTAINER_NAME_2)); desc = new SystemPropertiesConfigurationPlaceholderResolver().resolve(desc); final String descString = desc.exportAsString(); assertXPath(descString, "/arquillian/container/@qualifier", CONTAINER_NAME_1, CONTAINER_NAME_2); assertXPath(descString, "/arquillian/container[1]/@default", "true"); ArquillianDescriptor descriptor = create(descString); 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 public void shouldBeAbleToDefaultTargetToDefaultRegisteredContainer() throws Exception { String name = "some-name"; ContainerRegistry registry = new LocalContainerRegistry(injector.get()); registry.create(new ContainerDefImpl(ARQUILLIAN_XML).setContainerName("some-other-name"), serviceLoader); registry.create(new ContainerDefImpl(ARQUILLIAN_XML).setContainerName(name).setDefault(), serviceLoader); Container container = registry.getContainer(TargetDescription.DEFAULT); Assert.assertEquals( "Verify that the default registered container is returned as default", name, container.getName()); }