| /******************************************************************************* |
| * Copyright (c) 2017 Red Hat, Inc. |
| * Distributed under license by Red Hat, Inc. All rights reserved. |
| * This program is made available under the terms of the |
| * Eclipse Public License v1.0 which accompanies this distribution, |
| * and is available at http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributor: |
| * Red Hat, Inc. - initial API and implementation |
| ******************************************************************************/ |
| package org.eclipse.linuxtools.docker.integration.tests.mock; |
| |
| import static org.junit.Assert.assertTrue; |
| import com.spotify.docker.client.messages.ContainerInfo; |
| |
| import java.io.File; |
| import java.io.IOException; |
| |
| import org.eclipse.linuxtools.docker.core.IDockerConnection; |
| import org.eclipse.linuxtools.docker.reddeer.ui.DockerExplorerView; |
| import org.eclipse.linuxtools.internal.docker.ui.testutils.MockContainerFactory; |
| import org.eclipse.linuxtools.internal.docker.ui.testutils.MockContainerInfoFactory; |
| import org.eclipse.linuxtools.internal.docker.ui.testutils.MockDockerClientFactory; |
| import org.eclipse.linuxtools.internal.docker.ui.testutils.MockDockerConnectionFactory; |
| import org.eclipse.linuxtools.internal.docker.ui.testutils.MockDockerConnectionSettingsFinder; |
| import org.eclipse.linuxtools.internal.docker.ui.testutils.MockImageFactory; |
| import org.jboss.reddeer.eclipse.ui.browser.BrowserView; |
| import org.jboss.reddeer.eclipse.ui.console.ConsoleView; |
| |
| import com.spotify.docker.client.DockerClient; |
| |
| public class MockUtils { |
| |
| public static void createDockerMockConnection(String connectionName) { |
| DockerExplorerView de = new DockerExplorerView(); |
| de.open(); |
| File dockerSocketTmpFile = null; |
| try { |
| dockerSocketTmpFile = File.createTempFile("dockerMock", ".sock"); |
| } catch (IOException e) { |
| new Exception("Cannot create mocked Docker connection!"); |
| e.printStackTrace(); |
| } |
| MockDockerConnectionSettingsFinder.validUnixSocketConnectionAvailable(connectionName, |
| "unix://" + dockerSocketTmpFile.getAbsolutePath()); |
| de.createDockerConnectionUnix( |
| configureUnixSocketConnection(connectionName, "unix://" + dockerSocketTmpFile.getAbsolutePath())); |
| assertTrue("Docker connection does not exist! ", de.connectionExistForName(connectionName)); |
| |
| } |
| |
| private static IDockerConnection configureUnixSocketConnection(final String connectionName, |
| final String pathToSocket) { |
| DockerClient client = MockDockerClientFactory.build(); |
| final org.eclipse.linuxtools.internal.docker.core.DockerConnection dockerConnection = MockDockerConnectionFactory |
| .from(connectionName, client).withUnixSocketConnectionSettings(pathToSocket); |
| DockerExplorerView de = new DockerExplorerView(); |
| de.open(); |
| de.createDockerConnectionUnix(dockerConnection); |
| MockDockerConnectionManager.configureConnectionManager(dockerConnection); |
| return dockerConnection; |
| } |
| |
| public static void pullImage(String connectionName, String imageName, String imageTag) { |
| final DockerClient client = MockDockerClientFactory |
| .image(MockImageFactory.id("987654321abcde").name(imageName + ":" + imageTag).build()).build(); |
| final org.eclipse.linuxtools.internal.docker.core.DockerConnection dockerConnection = MockDockerConnectionFactory |
| .from(connectionName, client).withDefaultTCPConnectionSettings(); |
| MockDockerConnectionManager.configureConnectionManager(dockerConnection); |
| } |
| |
| public static void removeImage(String connectionName, String imageName, String imageTag) { |
| final DockerClient client = MockDockerClientFactory.build(); |
| final org.eclipse.linuxtools.internal.docker.core.DockerConnection dockerConnection = MockDockerConnectionFactory |
| .from(connectionName, client).withDefaultTCPConnectionSettings(); |
| MockDockerConnectionManager.configureConnectionManager(dockerConnection); |
| } |
| |
| public static void runContainer(String connectionName, String imageName, String imageTag, String containerName) { |
| final DockerClient client = MockDockerClientFactory |
| .container(MockContainerFactory.name(containerName).status("Stopped").build()) |
| .image(MockImageFactory.id("987654321abcde").name(imageName + ":" + imageTag).build()).build(); |
| final org.eclipse.linuxtools.internal.docker.core.DockerConnection dockerConnection = MockDockerConnectionFactory |
| .from(connectionName, client).withDefaultTCPConnectionSettings(); |
| MockDockerConnectionManager.configureConnectionManager(dockerConnection); |
| } |
| |
| public static void runContainer(String connectionName, String imageName, String imageTag, String containerName, ContainerInfo containerInfo) { |
| final DockerClient client = MockDockerClientFactory |
| .container(MockContainerFactory.name(containerName).status("Stopped").build(), MockContainerInfoFactory.link("alpine").volume("resources/test-volumes/index.html").id("TestTestTestTestTest") |
| .ipAddress("127.0.0.1").build()) |
| .image(MockImageFactory.id("987654321abcde").name(imageName + ":" + imageTag).build()).build(); |
| final org.eclipse.linuxtools.internal.docker.core.DockerConnection dockerConnection = MockDockerConnectionFactory |
| .from(connectionName, client).withDefaultTCPConnectionSettings(); |
| MockDockerConnectionManager.configureConnectionManager(dockerConnection); |
| } |
| |
| public static ConsoleView getConsoleViewText(String msg) { |
| final ConsoleView cv = MockConsoleView.msg(msg).build(); |
| return cv; |
| } |
| |
| public static BrowserView getBrowserView(String url, String text) { |
| final BrowserView browser = MockBrowserView.openPageURL(url).setText(text).build(); |
| return browser; |
| } |
| |
| } |