package org.arquillian.cube.docker.impl.client; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import org.arquillian.cube.spi.AutoStartParser; import org.jboss.arquillian.core.api.Injector; import org.jboss.arquillian.core.api.Instance; import org.jboss.arquillian.core.test.AbstractManagerTestBase; import org.junit.Test; import static org.hamcrest.CoreMatchers.hasItem; import static org.hamcrest.CoreMatchers.instanceOf; import static org.junit.Assert.assertThat; public class CustomResolutionAutoStartParserTest extends AbstractManagerTestBase { private static final String CONTENT = "tomcat:\n" + " image: tutum/tomcat:7.0\n" + " exposedPorts: [8089/tcp]\n" + " await:\n" + " strategy: static\n" + " ip: localhost\n" + " ports: [8080, 8089]\n" + "go:\n" + " image: tutum/tomcat:7.0\n"; @Override protected void addExtensions(List<Class<?>> extensions) { super.addExtensions(extensions); } @Test public void shouldInstantiateACustomAutoStartParser() { Map<String, String> parameters = new HashMap<String, String>(); parameters.put("serverVersion", "1.13"); parameters.put("serverUri", "http://localhost:25123"); parameters.put("dockerContainers", CONTENT); parameters.put("definitionFormat", DefinitionFormat.CUBE.name()); final CubeDockerConfiguration cubeDockerConfiguration = CubeDockerConfiguration.fromMap(parameters, null); Injector injector = new Injector() { @Override public <T> T inject(T target) { final ChangeNameAutoStartParser orderByNameAutoStartParser = (ChangeNameAutoStartParser) target; orderByNameAutoStartParser.cubeDockerConfigurationInstance = new Instance<CubeDockerConfiguration>() { @Override public CubeDockerConfiguration get() { return cubeDockerConfiguration; } }; return target; } }; final AutoStartParser autoStartParser = AutoStartParserFactory.create("custom:org.arquillian.cube.docker.impl.client.ChangeNameAutoStartParser", null, injector); assertThat(autoStartParser, instanceOf(CustomAutoStartParser.class)); final Set<String> names = autoStartParser.parse().keySet(); assertThat(names, hasItem("og")); assertThat(names, hasItem("tacmot")); } }