@Override public void perform() { beforeSuite.fire(new BeforeSuite()); } }
public void beforeSuite() throws Exception { manager.fire(new BeforeSuite()); }
public ContainerDslResolver() { this.dockerClientExecutor = DockerClientInitializer.initialize(); // Since we are out of arquillian runner we need to call events by ourselves. this.systemPropertiesCubeSetter.createDockerHostProperty(new BeforeSuite(), this.dockerClientExecutor); }
private void initializeDockerClient() { this.dockerClientExecutor = DockerClientInitializer.initialize(); // Since we are out of arquillian runner we need to call events by ourselves. this.systemPropertiesCubeSetter.createDockerHostProperty(new BeforeSuite(), this.dockerClientExecutor); }
@Test public void should_set_docker_host_ip() { // given SystemPropertiesCubeSetter systemPropertiesCubeSetter = new SystemPropertiesCubeSetter(); // when systemPropertiesCubeSetter.createDockerHostProperty(new BeforeSuite(), dockerClientExecutor); // then assertThat(System.getProperty("arq.cube.docker.host")).isEqualTo("192.168.99.100"); }
@Test public void shouldParseEmptyValuesAutostart() throws Exception { Map<String, String> parameters = new HashMap<String, String>(); parameters.put("autoStartContainers", " , "); parameters.put("dockerContainers", "a:\n image: a\nb:\n image: a\n"); CubeConfiguration cubeConfiguration = CubeConfiguration.fromMap(new HashMap<String, String>()); bind(ApplicationScoped.class, CubeConfiguration.class, cubeConfiguration); CubeDockerConfiguration dockerConfiguration = CubeDockerConfiguration.fromMap(parameters, null); bind(ApplicationScoped.class, CubeDockerConfiguration.class, dockerConfiguration); fire(new BeforeSuite()); assertEventFired(CreateCube.class, 0); assertEventFired(StartCube.class, 0); }
@Test public void shouldParseEmptyAutostart() throws Exception { Map<String, String> parameters = new HashMap<String, String>(); parameters.put("autoStartContainers", ""); parameters.put("dockerContainers", "a:\n image: a\nb:\n image: a\n"); CubeConfiguration cubeConfiguration = CubeConfiguration.fromMap(new HashMap<String, String>()); bind(ApplicationScoped.class, CubeConfiguration.class, cubeConfiguration); CubeDockerConfiguration dockerConfiguration = CubeDockerConfiguration.fromMap(parameters, null); bind(ApplicationScoped.class, CubeDockerConfiguration.class, dockerConfiguration); fire(new BeforeSuite()); assertEventFired(CreateCube.class, 0); assertEventFired(StartCube.class, 0); }
@Test public void shouldSetupAndStartSuiteContainers() throws Exception { fire(new BeforeSuite()); assertEventFired(SetupContainers.class, 1); assertEventFired(StartSuiteContainers.class, 1); }
@Test public void shouldSetupAndStartSuiteContainers() throws Exception { fire(new BeforeSuite()); assertEventFired(SetupContainers.class, 1); assertEventFired(StartSuiteContainers.class, 1); }
@Test public void shouldCreateAndStartAutoContainersWhenNoAutoStartIsProvided() { Map<String, String> dockerData = new HashMap<String, String>(); dockerData.put("dockerContainers", "a:\n image: a\n links:\n - b:b\nb:\n image: a\n"); CubeConfiguration cubeConfiguration = CubeConfiguration.fromMap(new HashMap<String, String>()); bind(ApplicationScoped.class, CubeConfiguration.class, cubeConfiguration); CubeDockerConfiguration dockerConfiguration = CubeDockerConfiguration.fromMap(dockerData, null); dockerConfiguration.setAutoStartContainers(new AutomaticResolutionLinksAutoStartParser(Arrays.asList("a"), dockerConfiguration.getDockerContainersContent())); bind(ApplicationScoped.class, CubeDockerConfiguration.class, dockerConfiguration); ContainerRegistry containerRegistry = mock(ContainerRegistry.class); List<org.jboss.arquillian.container.spi.Container> containers = new ArrayList<>(); org.jboss.arquillian.container.spi.Container container = mock(org.jboss.arquillian.container.spi.Container.class); when(container.getName()).thenReturn("a"); containers.add(container); when(containerRegistry.getContainers()).thenReturn(containers); bind(ApplicationScoped.class, ContainerRegistry.class, containerRegistry); fire(new BeforeSuite()); assertEventFired(CreateCube.class, 1); assertEventFired(StartCube.class, 1); }
@Test public void shouldStartAContainerInStartOrConnectModeAndStopIt() { Map<String, String> cubeData = new HashMap<String, String>(); cubeData.put("connectionMode", ConnectionMode.STARTORCONNECT.name()); Map<String, String> dockerData = new HashMap<String, String>(); dockerData.put("autoStartContainers", "a,b"); dockerData.put("dockerContainers", "a:\n image: a\nb:\n image: a\n"); CubeConfiguration cubeConfiguration = CubeConfiguration.fromMap(cubeData); bind(ApplicationScoped.class, CubeConfiguration.class, cubeConfiguration); CubeDockerConfiguration dockerConfiguration = CubeDockerConfiguration.fromMap(dockerData, null); bind(ApplicationScoped.class, CubeDockerConfiguration.class, dockerConfiguration); Container container = mock(Container.class); when(container.getNames()).thenReturn(new String[] {"alreadyrun"}); when(executor.listRunningContainers()).thenReturn(Arrays.asList(container)); bind(ApplicationScoped.class, DockerClientExecutor.class, executor); fire(new BeforeSuite()); assertEventFired(CreateCube.class, 2); assertEventFired(StartCube.class, 2); assertEventFired(PreRunningCube.class, 0); assertEventFiredOnOtherThread(CreateCube.class); assertEventFiredOnOtherThread(StartCube.class); }
@Test public void shouldParseTrimAutostart() throws Exception { Map<String, String> parameters = new HashMap<String, String>(); parameters.put("autoStartContainers", "a , b "); parameters.put("dockerContainers", "a:\n image: a\nb:\n image: a\n"); CubeConfiguration cubeConfiguration = CubeConfiguration.fromMap(new HashMap<String, String>()); bind(ApplicationScoped.class, CubeConfiguration.class, cubeConfiguration); CubeDockerConfiguration dockerConfiguration = CubeDockerConfiguration.fromMap(parameters, null); bind(ApplicationScoped.class, CubeDockerConfiguration.class, dockerConfiguration); fire(new BeforeSuite()); assertEventFired(CreateCube.class, 2); assertEventFired(StartCube.class, 2); assertEventFiredOnOtherThread(CreateCube.class); assertEventFiredOnOtherThread(StartCube.class); }
@Test public void shouldCreateAndStartAutoContainers() { Map<String, String> dockerData = new HashMap<String, String>(); dockerData.put("autoStartContainers", "a,b"); dockerData.put("dockerContainers", "a:\n image: a\nb:\n image: a\n"); CubeConfiguration cubeConfiguration = CubeConfiguration.fromMap(new HashMap<String, String>()); bind(ApplicationScoped.class, CubeConfiguration.class, cubeConfiguration); CubeDockerConfiguration dockerConfiguration = CubeDockerConfiguration.fromMap(dockerData, null); bind(ApplicationScoped.class, CubeDockerConfiguration.class, dockerConfiguration); fire(new BeforeSuite()); assertEventFired(CreateCube.class, 2); assertEventFired(StartCube.class, 2); assertEventFiredOnOtherThread(CreateCube.class); assertEventFiredOnOtherThread(StartCube.class); }
@Test public void shouldCreateAndStartAutoContainersDefiningRegularExpressions() { Map<String, String> dockerData = new HashMap<String, String>(); dockerData.put("autoStartContainers", "regexp:a(.*)"); dockerData.put("dockerContainers", "a:\n image: a\nab:\n image: a\nx:\n" + " image: a\n"); CubeConfiguration cubeConfiguration = CubeConfiguration.fromMap(new HashMap<String, String>()); bind(ApplicationScoped.class, CubeConfiguration.class, cubeConfiguration); CubeDockerConfiguration dockerConfiguration = CubeDockerConfiguration.fromMap(dockerData, null); bind(ApplicationScoped.class, CubeDockerConfiguration.class, dockerConfiguration); fire(new BeforeSuite()); assertEventFired(CreateCube.class, 2); assertEventFired(StartCube.class, 2); assertEventFiredOnOtherThread(CreateCube.class); assertEventFiredOnOtherThread(StartCube.class); }
@Test public void shouldStartAContainerInStartOrConnectAndLeaveModeAndNotStopIt() { Map<String, String> cubeData = new HashMap<String, String>(); cubeData.put("connectionMode", ConnectionMode.STARTORCONNECTANDLEAVE.name()); Map<String, String> dockerData = new HashMap<String, String>(); dockerData.put("autoStartContainers", "a,b"); dockerData.put("dockerContainers", "a:\n image: a\nb:\n image: a\n"); CubeConfiguration cubeConfiguration = CubeConfiguration.fromMap(cubeData); bind(ApplicationScoped.class, CubeConfiguration.class, cubeConfiguration); CubeDockerConfiguration dockerConfiguration = CubeDockerConfiguration.fromMap(dockerData, null); bind(ApplicationScoped.class, CubeDockerConfiguration.class, dockerConfiguration); Container container = mock(Container.class); when(container.getNames()).thenReturn(new String[] {"alreadyrun"}); when(executor.listRunningContainers()).thenReturn(Arrays.asList(container)); bind(ApplicationScoped.class, DockerClientExecutor.class, executor); fire(new BeforeSuite()); assertEventFired(CreateCube.class, 2); assertEventFired(StartCube.class, 2); assertEventFired(PreRunningCube.class, 2); assertEventFiredOnOtherThread(CreateCube.class); assertEventFiredOnOtherThread(StartCube.class); assertEventFiredOnOtherThread(PreRunningCube.class); } }
@Test public void shouldStartNetworks() { DockerClientExecutor executor = Mockito.mock(DockerClientExecutor.class); String config = "networks:\n" + " mynetwork:\n " + " driver: bridge\n" + "tomcat6:\n" + " image: tutum/tomcat:6.0\n" + " exposedPorts: [8089/tcp]\n" + " await:\n" + " strategy: static\n" + " ip: localhost\n" + " ports: [8080, 8089]\n" + "tomcat7:\n" + " extends: tomcat6\n" + " image: tutum/tomcat:7.0\n"; Map<String, String> parameters = new HashMap<String, String>(); parameters.put("dockerContainers", config); parameters.put("definitionFormat", DefinitionFormat.CUBE.name()); CubeConfiguration cubeConfiguration = CubeConfiguration.fromMap(new HashMap<String, String>()); bind(ApplicationScoped.class, CubeConfiguration.class, cubeConfiguration); CubeDockerConfiguration dockerConfiguration = CubeDockerConfiguration.fromMap(parameters, null); bind(ApplicationScoped.class, CubeDockerConfiguration.class, dockerConfiguration); final LocalDockerNetworkRegistry localDockerNetworkRegistry = new LocalDockerNetworkRegistry(); bind(ApplicationScoped.class, NetworkRegistry.class, localDockerNetworkRegistry); bind(ApplicationScoped.class, DockerClientExecutor.class, executor); fire(new BeforeSuite()); Mockito.verify(executor).createNetwork(Matchers.eq("mynetwork"), Matchers.any(Network.class)); }
@Test public void shouldUsePreRunningContainers() { Map<String, String> cubeData = new HashMap<String, String>(); cubeData.put("connectionMode", ConnectionMode.STARTORCONNECT.name()); Map<String, String> dockerData = new HashMap<String, String>(); dockerData.put("autoStartContainers", "a,b"); dockerData.put("dockerContainers", "a:\n image: a\nb:\n image: a\n"); CubeConfiguration cubeConfiguration = CubeConfiguration.fromMap(cubeData); bind(ApplicationScoped.class, CubeConfiguration.class, cubeConfiguration); CubeDockerConfiguration dockerConfiguration = CubeDockerConfiguration.fromMap(dockerData, null); bind(ApplicationScoped.class, CubeDockerConfiguration.class, dockerConfiguration); Container container = mock(Container.class); when(container.getNames()).thenReturn(new String[] {"a"}); when(executor.listRunningContainers()).thenReturn(Arrays.asList(container)); bind(ApplicationScoped.class, DockerClientExecutor.class, executor); fire(new BeforeSuite()); assertEventFired(CreateCube.class, 1); assertEventFired(StartCube.class, 1); assertEventFired(PreRunningCube.class, 1); assertEventFiredOnOtherThread(CreateCube.class); assertEventFiredOnOtherThread(StartCube.class); assertEventFiredOnOtherThread(PreRunningCube.class); }