/**
* Copyright 2005-2016 Red Hat, Inc.
*
* Red Hat licenses this file to you under the Apache License, version
* 2.0 (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package io.fabric8.maven.support;
import io.fabric8.kubernetes.api.model.ContainerPort;
import io.fabric8.kubernetes.api.model.VolumeMount;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
/**
* Test the DockerCommandPlainPrint class
*/
public class DockerCommandPlainPrintTest {
@Test
public void testDockerCommandPlainPrintTest() throws Exception {
Map<String,String> env = new LinkedHashMap<String,String>();
env.put("FOO", "bar");
env.put("USER", "test");
env.put("PWD", "pass");
StringBuilder sb = new StringBuilder();
DockerCommandPlainPrint plainPrint = new DockerCommandPlainPrint(sb);
plainPrint.appendParameters(env, IDockerCommandPlainPrintCostants.EXPRESSION_FLAG);
plainPrint.appendImageName("test/test_image");
String expected = "docker run -dP -e FOO=bar -e USER=test -e PWD=pass test/test_image";
assertThat(plainPrint.getDockerPlainTextCommand().toString()).isEqualTo(expected);
}
@Test
public void testDockerCommandPlainPrintWithVolumeTest() throws Exception {
Map<String,String> env = new LinkedHashMap<String,String>();
env.put("FOO", "bar");
env.put("USER", "test");
env.put("PWD", "pass");
List<VolumeMount> vmList = new ArrayList<VolumeMount>();
VolumeMount vm = new VolumeMount();
vm.setName("test");
vm.setMountPath("/var/testtest/");
vm.setReadOnly(true);
vmList.add(vm);
StringBuilder sb = new StringBuilder();
DockerCommandPlainPrint plainPrint = new DockerCommandPlainPrint(sb);
plainPrint.appendParameters(env, IDockerCommandPlainPrintCostants.EXPRESSION_FLAG);
plainPrint.appendVolumeMounts(vmList, IDockerCommandPlainPrintCostants.VOLUME_FLAG);
plainPrint.appendImageName("test/test_image");
String expected = "docker run -dP -e FOO=bar -e USER=test -e PWD=pass -v /var/testtest/:ro test/test_image";
assertThat(plainPrint.getDockerPlainTextCommand().toString()).isEqualTo(expected);
}
@Test
public void testDockerCommandPlainPrintWithVolumeAndPortTest() throws Exception {
Map<String,String> env = new LinkedHashMap<String,String>();
env.put("FOO", "bar");
env.put("USER", "test");
env.put("PWD", "pass");
List<VolumeMount> vmList = new ArrayList<VolumeMount>();
VolumeMount vm = new VolumeMount();
vm.setName("test");
vm.setMountPath("/var/testtest/");
vm.setReadOnly(true);
vmList.add(vm);
List<ContainerPort> contPort = new ArrayList<ContainerPort>();
ContainerPort p = new ContainerPort();
p.setHostIP("192.168.1.1");
p.setHostPort(32768);
p.setContainerPort(8080);
contPort.add(p);
ContainerPort p1 = new ContainerPort();
p1.setHostIP("192.168.1.1");
p1.setContainerPort(8081);
contPort.add(p1);
ContainerPort p2 = new ContainerPort();
p2.setHostIP("");
p2.setHostPort(32770);
p2.setContainerPort(8082);
contPort.add(p2);
ContainerPort p3 = new ContainerPort();
p3.setHostIP("");
p3.setContainerPort(8083);
contPort.add(p3);
StringBuilder sb = new StringBuilder();
DockerCommandPlainPrint plainPrint = new DockerCommandPlainPrint(sb);
plainPrint.appendParameters(env, IDockerCommandPlainPrintCostants.EXPRESSION_FLAG);
plainPrint.appendContainerPorts(contPort, IDockerCommandPlainPrintCostants.PORT_FLAG);
plainPrint.appendVolumeMounts(vmList, IDockerCommandPlainPrintCostants.VOLUME_FLAG);
plainPrint.appendImageName("test/test_image");
String expected = "docker run -dP -e FOO=bar -e USER=test -e PWD=pass -p 192.168.1.1:32768:8080 -p 192.168.1.1::8081 -p 32770:8082 -p 8083 -v /var/testtest/:ro test/test_image";
assertThat(plainPrint.getDockerPlainTextCommand().toString()).isEqualTo(expected);
}
}