Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'containers/org.eclipse.linuxtools.docker.ui.tests/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerExplorerViewSWTBotTest.java')
-rw-r--r--containers/org.eclipse.linuxtools.docker.ui.tests/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerExplorerViewSWTBotTest.java139
1 files changed, 134 insertions, 5 deletions
diff --git a/containers/org.eclipse.linuxtools.docker.ui.tests/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerExplorerViewSWTBotTest.java b/containers/org.eclipse.linuxtools.docker.ui.tests/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerExplorerViewSWTBotTest.java
index 2badf1f9df..8121be146e 100644
--- a/containers/org.eclipse.linuxtools.docker.ui.tests/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerExplorerViewSWTBotTest.java
+++ b/containers/org.eclipse.linuxtools.docker.ui.tests/src/org/eclipse/linuxtools/internal/docker/ui/views/DockerExplorerViewSWTBotTest.java
@@ -24,9 +24,11 @@ import org.eclipse.linuxtools.internal.docker.ui.testutils.MockDockerClientFacto
import org.eclipse.linuxtools.internal.docker.ui.testutils.MockDockerConnectionFactory;
import org.eclipse.linuxtools.internal.docker.ui.testutils.MockDockerConnectionStorageManagerFactory;
import org.eclipse.linuxtools.internal.docker.ui.testutils.MockDockerContainerFactory;
+import org.eclipse.linuxtools.internal.docker.ui.testutils.MockDockerContainerInfoFactory;
import org.eclipse.linuxtools.internal.docker.ui.testutils.MockDockerImageFactory;
import org.eclipse.linuxtools.internal.docker.ui.testutils.swt.CloseWelcomePageRule;
import org.eclipse.linuxtools.internal.docker.ui.testutils.swt.DockerExplorerViewAssertion;
+import org.eclipse.linuxtools.internal.docker.ui.testutils.swt.SWTBotTreeItemAssertions;
import org.eclipse.linuxtools.internal.docker.ui.testutils.swt.SWTUtils;
import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
import org.eclipse.swtbot.eclipse.finder.waits.Conditions;
@@ -95,7 +97,7 @@ public class DockerExplorerViewSWTBotTest {
dockerExplorerView.getCommonViewer().refresh(true);
dockerExplorerView.showConnectionsOrExplanations();});
}
-
+
@AfterClass
public static void restoreDefaultConfig() {
DockerConnectionManager.getInstance().setConnectionStorageManager(new DefaultDockerConnectionStorageManager());
@@ -131,7 +133,7 @@ public class DockerExplorerViewSWTBotTest {
}
@Test
- public void shouldRefreshImagesAndShowChanges() throws Exception {
+ public void shouldRefreshImagesAndShowChanges() throws InterruptedException {
// given
final DockerClient client = MockDockerClientFactory.noImages().noContainers();
final DockerConnection dockerConnection = MockDockerConnectionFactory.from("Test", client).get();
@@ -159,9 +161,9 @@ public class DockerExplorerViewSWTBotTest {
Assertions.assertThat(imagesTreeItem.isExpanded()).isTrue();
Assertions.assertThat(imagesTreeItem.getItems().length).isEqualTo(1);
}
-
+
@Test
- public void shouldRefreshContainersAndShowChanges() throws Exception {
+ public void shouldRefreshContainersAndShowChanges() throws InterruptedException {
// given
final DockerClient client = MockDockerClientFactory.noImages().noContainers();
final DockerConnection dockerConnection = MockDockerConnectionFactory.from("Test", client).get();
@@ -178,7 +180,7 @@ public class DockerExplorerViewSWTBotTest {
Assertions.assertThat(containersTreeItem.getItems().length).isEqualTo(0);
// update the client
- final DockerClient updatedClient = MockDockerClientFactory.noImages().containers(MockDockerContainerFactory.name("foo_bar").build());
+ final DockerClient updatedClient = MockDockerClientFactory.noImages().container(MockDockerContainerFactory.name("foo_bar").build()).build();
dockerConnection.setClient(updatedClient);
dockerExplorerViewTreeBot = dockerExplorerViewBot.bot().tree();
dockerExplorerViewTreeBot.select(containersTreeItem);
@@ -190,4 +192,131 @@ public class DockerExplorerViewSWTBotTest {
Assertions.assertThat(containersTreeItem.getItems().length).isEqualTo(1);
}
+ @Test
+ public void shouldShowContainerPortMapping() throws InterruptedException {
+ // given
+ final DockerClient client = MockDockerClientFactory.noImages()
+ .container(MockDockerContainerFactory.name("foo_bar").build(), MockDockerContainerInfoFactory
+ .port("8080/tcp", "0.0.0.0", "8080").port("8787/tcp", "0.0.0.0", "8787").build())
+ .build();
+ final DockerConnection dockerConnection = MockDockerConnectionFactory.from("Test", client).get();
+ configureConnectionManager(dockerConnection);
+ SWTUtils.asyncExec(() -> dockerExplorerView.getCommonViewer().expandAll());
+ // when a second call to expand the container is done (because the first
+ // expandAll stopped with a "Loading..." job that retrieved the
+ // containers)
+ final SWTBotTreeItem containerTreeItem = SWTUtils.getTreeItem(dockerExplorerViewBot, "Test (null)",
+ "Containers", "foo_bar (null)");
+ SWTUtils.asyncExec(() -> containerTreeItem.expand());
+ final SWTBotTreeItem containerPortsTreeItem = SWTUtils.getTreeItem(dockerExplorerViewBot, "Test (null)",
+ "Containers", "foo_bar (null)", "Ports");
+ SWTUtils.asyncExec(() -> containerPortsTreeItem.expand());
+ // then
+ SWTUtils.syncAssert(() -> {
+ SWTBotTreeItemAssertions.assertThat(containerPortsTreeItem).isExpanded().hasChildItems(2);
+ SWTBotTreeItemAssertions.assertThat(containerPortsTreeItem.getNode(0))
+ .hasText("0.0.0.0:8080 -> 8080 (tcp)");
+ SWTBotTreeItemAssertions.assertThat(containerPortsTreeItem.getNode(1))
+ .hasText("0.0.0.0:8787 -> 8787 (tcp)");
+ });
+ }
+
+ @Test
+ public void shouldShowContainerLinks() throws InterruptedException {
+ // given
+ final DockerClient client = MockDockerClientFactory.noImages()
+ .container(MockDockerContainerFactory.name("foo_bar").build(), MockDockerContainerInfoFactory
+ .link("/postgres-demo:/foo_bar/postgres1").link("/postgres-demo:/foo_bar/postgres2").build())
+ .build();
+ final DockerConnection dockerConnection = MockDockerConnectionFactory.from("Test", client).get();
+ configureConnectionManager(dockerConnection);
+ SWTUtils.asyncExec(() -> dockerExplorerView.getCommonViewer().expandAll());
+ // when a second call to expand the container is done (because the first
+ // expandAll stopped with a "Loading..." job that retrieved the
+ // containers)
+ final SWTBotTreeItem containerTreeItem = SWTUtils.getTreeItem(dockerExplorerViewBot, "Test (null)",
+ "Containers", "foo_bar (null)");
+ SWTUtils.asyncExec(() -> containerTreeItem.expand());
+ final SWTBotTreeItem containerLinksTreeItem = SWTUtils.getTreeItem(containerTreeItem, "Links");
+ SWTUtils.asyncExec(() -> containerLinksTreeItem.expand());
+ // then
+ SWTUtils.syncAssert(() -> {
+ SWTBotTreeItemAssertions.assertThat(containerLinksTreeItem).isExpanded().hasChildItems(2);
+ SWTBotTreeItemAssertions.assertThat(containerLinksTreeItem.getNode(0)).hasText("postgres-demo (postgres1)");
+ SWTBotTreeItemAssertions.assertThat(containerLinksTreeItem.getNode(1)).hasText("postgres-demo (postgres2)");
+ });
+ }
+
+ @Test
+ public void shouldShowContainerVolumes() throws InterruptedException {
+ // given
+ final DockerClient client = MockDockerClientFactory.noImages()
+ .container(MockDockerContainerFactory.name("foo_bar").build(),
+ MockDockerContainerInfoFactory.volume("/path/to/container")
+ .volume("/path/to/host:/path/to/container")
+ .volume("/path/to/host:/path/to/container:Z,ro").build())
+ .build();
+ final DockerConnection dockerConnection = MockDockerConnectionFactory.from("Test", client).get();
+ configureConnectionManager(dockerConnection);
+ SWTUtils.asyncExec(() -> dockerExplorerView.getCommonViewer().expandAll());
+ // when a second call to expand the container is done (because the first
+ // expandAll stopped with a "Loading..." job that retrieved the
+ // containers)
+ final SWTBotTreeItem containerTreeItem = SWTUtils.getTreeItem(dockerExplorerViewBot, "Test (null)",
+ "Containers", "foo_bar (null)");
+ SWTUtils.asyncExec(() -> containerTreeItem.expand());
+ final SWTBotTreeItem containerVolumesItem = SWTUtils.getTreeItem(containerTreeItem, "Volumes");
+ SWTUtils.asyncExec(() -> containerVolumesItem.expand());
+ // then
+ SWTUtils.syncAssert(() -> {
+ SWTBotTreeItemAssertions.assertThat(containerVolumesItem).isExpanded().hasChildItems(3);
+ SWTBotTreeItemAssertions.assertThat(containerVolumesItem.getNode(0)).hasText("/path/to/container");
+ SWTBotTreeItemAssertions.assertThat(containerVolumesItem.getNode(1))
+ .hasText("/path/to/host -> /path/to/container");
+ SWTBotTreeItemAssertions.assertThat(containerVolumesItem.getNode(2))
+ .hasText("/path/to/host -> /path/to/container (Z,ro)");
+ });
+ }
+
+ @Test
+ public void shouldRemainExpandedAfterRefresh() throws InterruptedException {
+ // given
+ final DockerClient client = MockDockerClientFactory.noImages()
+ .container(MockDockerContainerFactory.name("foo_bar").build(),
+ MockDockerContainerInfoFactory.volume("/path/to/container")
+ .port("8080/tcp", "0.0.0.0", "8080")
+ .link("/foo:/bar/foo")
+ .volume("/path/to/host:/path/to/container:Z,ro").build())
+ .build();
+ final DockerConnection dockerConnection = MockDockerConnectionFactory.from("Test", client).get();
+ configureConnectionManager(dockerConnection);
+ SWTUtils.asyncExec(() -> dockerExplorerView.getCommonViewer().expandAll());
+ final SWTBotTreeItem containersTreeItem = SWTUtils.getTreeItem(dockerExplorerViewBot, "Test (null)",
+ "Containers");
+ final SWTBotTreeItem containerTreeItem = SWTUtils.getTreeItem(containersTreeItem, "foo_bar (null)");
+ SWTUtils.asyncExec(() -> containerTreeItem.expand());
+ SWTUtils.asyncExec(() -> SWTUtils.getTreeItem(containerTreeItem, "Links").expand());
+ SWTUtils.asyncExec(() -> SWTUtils.getTreeItem(containerTreeItem, "Ports").expand());
+ SWTUtils.asyncExec(() -> SWTUtils.getTreeItem(containerTreeItem, "Volumes").expand());
+ // ensure items are actually expanded before calling the 'refresh' command
+ SWTUtils.syncAssert(() -> {
+ SWTBotTreeItemAssertions.assertThat(SWTUtils.getTreeItem(containerTreeItem, "Links")).isExpanded();
+ SWTBotTreeItemAssertions.assertThat(SWTUtils.getTreeItem(containerTreeItem, "Ports")).isExpanded();
+ SWTBotTreeItemAssertions.assertThat(SWTUtils.getTreeItem(containerTreeItem, "Volumes")).isExpanded();
+ });
+ // when refreshing the container
+ SWTUtils.asyncExec(() -> {
+ dockerExplorerViewTreeBot = dockerExplorerViewBot.bot().tree();
+ dockerExplorerViewTreeBot.select(containersTreeItem);
+ dockerExplorerViewTreeBot.contextMenu("Refresh").click();
+ });
+ SWTUtils.asyncExec(() -> containersTreeItem.expand());
+ // then all items should remain expanded (after they were reloaded)
+ SWTUtils.syncAssert(() -> {
+ SWTBotTreeItemAssertions.assertThat(SWTUtils.getTreeItem(containerTreeItem, "Links")).isExpanded();
+ SWTBotTreeItemAssertions.assertThat(SWTUtils.getTreeItem(containerTreeItem, "Ports")).isExpanded();
+ SWTBotTreeItemAssertions.assertThat(SWTUtils.getTreeItem(containerTreeItem, "Volumes")).isExpanded();
+ });
+ }
+
}

Back to the top