From 193816d455815d98a87ab22849d048a98afb576b Mon Sep 17 00:00:00 2001 From: amihaiemil Date: Tue, 15 May 2018 16:33:40 +0300 Subject: [PATCH 1/3] #58 IT case for Container#rename --- .../com/amihaiemil/docker/RtContainer.java | 6 +- .../amihaiemil/docker/RtContainerITCase.java | 60 +++++++++++++++++++ 2 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 src/test/java/com/amihaiemil/docker/RtContainerITCase.java diff --git a/src/main/java/com/amihaiemil/docker/RtContainer.java b/src/main/java/com/amihaiemil/docker/RtContainer.java index 52dec57c..7102ee52 100644 --- a/src/main/java/com/amihaiemil/docker/RtContainer.java +++ b/src/main/java/com/amihaiemil/docker/RtContainer.java @@ -42,9 +42,9 @@ * @todo #97:30min Continue implementing the rest of the Container operations * (pause, unpause, logs etc) See the Docker API Docs for reference: * https://docs.docker.com/engine/api/v1.35/#tag/Container - * @todo #46:30min Once we have the CI environment properly setup with a Docker - * instance, write integration tests for this class as well - * (RtContainerITCase). + * @todo #58:30min Now that we have the CI environment properly setup with + * a Docker instance, continue integration tests for RtContainer(s) and other + * parts of the API. */ final class RtContainer implements Container { diff --git a/src/test/java/com/amihaiemil/docker/RtContainerITCase.java b/src/test/java/com/amihaiemil/docker/RtContainerITCase.java new file mode 100644 index 00000000..fde327ca --- /dev/null +++ b/src/test/java/com/amihaiemil/docker/RtContainerITCase.java @@ -0,0 +1,60 @@ +/** + * Copyright (c) 2018, Mihai Emil Andronache + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * 1)Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2)Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3)Neither the name of docker-java-api nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +package com.amihaiemil.docker; + +import java.io.File; +import org.hamcrest.MatcherAssert; +import org.hamcrest.Matchers; +import org.junit.Test; + +/** + * Integration tests for {@link RtContainer}. + * @author Mihai Andronache (amihaiemil@gmail.com) + * @version $Id$ + * @since 0.0.1 + */ +public final class RtContainerITCase { + + /** + * {@link RtContainer} can rename the Docker container it represents. + * @throws Exception If something goes wrong. + */ + @Test + public void renamesContainer() throws Exception { + final Container container = new LocalDocker( + new File("/var/run/docker.sock") + ).containers().create("Adrian Toomes", "hello-world"); + MatcherAssert.assertThat( + container.inspect().getString("Name"), + Matchers.equalTo("Adrian Toomes") + ); + container.rename("Nick Fury"); + MatcherAssert.assertThat( + container.inspect().getString("Name"), + Matchers.equalTo("Nick Fury") + ); + } +} From fa5758a8b8d2871d6c6e65cd56923f5274e2d2be Mon Sep 17 00:00:00 2001 From: amihaiemil Date: Tue, 15 May 2018 16:40:00 +0300 Subject: [PATCH 2/3] no spaces --- .../java/com/amihaiemil/docker/RtContainerITCase.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/test/java/com/amihaiemil/docker/RtContainerITCase.java b/src/test/java/com/amihaiemil/docker/RtContainerITCase.java index fde327ca..6e8be4b5 100644 --- a/src/test/java/com/amihaiemil/docker/RtContainerITCase.java +++ b/src/test/java/com/amihaiemil/docker/RtContainerITCase.java @@ -46,15 +46,15 @@ public final class RtContainerITCase { public void renamesContainer() throws Exception { final Container container = new LocalDocker( new File("/var/run/docker.sock") - ).containers().create("Adrian Toomes", "hello-world"); + ).containers().create("Toomes", "hello-world"); MatcherAssert.assertThat( container.inspect().getString("Name"), - Matchers.equalTo("Adrian Toomes") + Matchers.equalTo("Toomes") ); - container.rename("Nick Fury"); + container.rename("Fury"); MatcherAssert.assertThat( container.inspect().getString("Name"), - Matchers.equalTo("Nick Fury") + Matchers.equalTo("Fury") ); } } From f6fbc1ba1f4563c76f308e5e087352d83b4f6ed2 Mon Sep 17 00:00:00 2001 From: amihaiemil Date: Tue, 15 May 2018 20:51:48 +0300 Subject: [PATCH 3/3] docker IT --- .travis.yml | 1 + src/main/java/com/amihaiemil/docker/Inspection.java | 5 +++++ src/test/java/com/amihaiemil/docker/RtContainerITCase.java | 4 ++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 70faf59e..3d59e99b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,4 +7,5 @@ jdk: - openjdk8 script: - set -e + - docker pull hello-world #for some IT cases - mvn clean install -Pcheckstyle,itcases jacoco:report coveralls:report diff --git a/src/main/java/com/amihaiemil/docker/Inspection.java b/src/main/java/com/amihaiemil/docker/Inspection.java index 79a5f98b..24531d83 100644 --- a/src/main/java/com/amihaiemil/docker/Inspection.java +++ b/src/main/java/com/amihaiemil/docker/Inspection.java @@ -198,4 +198,9 @@ public Collection values() { public Set> entrySet() { return this.json.entrySet(); } + + @Override + public String toString() { + return this.json.toString(); + } } diff --git a/src/test/java/com/amihaiemil/docker/RtContainerITCase.java b/src/test/java/com/amihaiemil/docker/RtContainerITCase.java index 6e8be4b5..e2ec5d94 100644 --- a/src/test/java/com/amihaiemil/docker/RtContainerITCase.java +++ b/src/test/java/com/amihaiemil/docker/RtContainerITCase.java @@ -49,12 +49,12 @@ public void renamesContainer() throws Exception { ).containers().create("Toomes", "hello-world"); MatcherAssert.assertThat( container.inspect().getString("Name"), - Matchers.equalTo("Toomes") + Matchers.equalTo("/Toomes") ); container.rename("Fury"); MatcherAssert.assertThat( container.inspect().getString("Name"), - Matchers.equalTo("Fury") + Matchers.equalTo("/Fury") ); } }