package org.arquillian.cube.containerobject;
import java.io.File;
import java.nio.file.Files;
import org.arquillian.cube.docker.impl.requirement.RequiresDockerMachine;
import org.arquillian.cube.requirement.ArquillianConditionalRunner;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.junit.runner.RunWith;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@RunWith(ArquillianConditionalRunner.class)
@RequiresDockerMachine(name = "dev")
public class FtpClientTest {
public static final String REMOTE_FILENAME = "a.txt";
@Rule
public TemporaryFolder folder = new TemporaryFolder();
@Cube
FtpContainer ftpContainer;
@Test
public void should_upload_file_to_ftp_server() throws Exception {
// Given
final File file = folder.newFile(REMOTE_FILENAME);
Files.write(file.toPath(), "Hello World".getBytes());
// When
FtpClient ftpClient = new FtpClient(ftpContainer.getIp(),
ftpContainer.getBindPort(),
ftpContainer.getUsername(), ftpContainer.getPassword());
try {
ftpClient.uploadFile(file, REMOTE_FILENAME, ".");
} finally {
ftpClient.disconnect();
}
// Then
final boolean filePresentInContainer = ftpContainer.isFilePresentInContainer(REMOTE_FILENAME);
assertThat(filePresentInContainer, is(true));
}
}