package org.arquillian.cube.docker.impl.client; import java.util.HashMap; import java.util.List; import java.util.Map; import org.arquillian.cube.docker.impl.docker.DockerClientExecutor; import org.arquillian.cube.impl.model.LocalCubeRegistry; import org.arquillian.cube.spi.CubeRegistry; import org.jboss.arquillian.core.api.annotation.ApplicationScoped; import org.jboss.arquillian.core.test.AbstractManagerTestBase; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; @RunWith(MockitoJUnitRunner.class) public class CubeRegistrarTestCase 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]"; @Mock private DockerClientExecutor executor; private CubeRegistry registry = new LocalCubeRegistry(); @Override protected void addExtensions(List<Class<?>> extensions) { extensions.add(CubeDockerRegistrar.class); super.addExtensions(extensions); } @Before public void setup() { bind(ApplicationScoped.class, CubeRegistry.class, registry); } @Test public void shouldExposeAndRegisterCubesFromConfiguration() { bind(ApplicationScoped.class, CubeDockerConfiguration.class, createConfig()); fire(executor); Assert.assertEquals(1, registry.getCubes().size()); Assert.assertEquals("tomcat", registry.getCubes().get(0).getId()); } private CubeDockerConfiguration createConfig() { Map<String, String> parameters = new HashMap<String, String>(); parameters.put("serverVersion", "1.13"); parameters.put("serverUri", "http://localhost:25123"); parameters.put("definitionFormat", DefinitionFormat.CUBE.name()); parameters.put("dockerContainers", CONTENT); return CubeDockerConfiguration.fromMap(parameters, null); } }