1b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair/* 2b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * Copyright 2008 the original author or authors. 3b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * 4b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * Licensed under the Apache License, Version 2.0 (the "License"); 5b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * you may not use this file except in compliance with the License. 6b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * You may obtain a copy of the License at 7b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * 8b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * http://www.apache.org/licenses/LICENSE-2.0 9b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * 10b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * Unless required by applicable law or agreed to in writing, software 11b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * distributed under the License is distributed on an "AS IS" BASIS, 12b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * See the License for the specific language governing permissions and 14b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * limitations under the License. 15b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair */ 16b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairpackage org.mockftpserver.fake.example; 17b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 18b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairimport org.mockftpserver.fake.FakeFtpServer; 19b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairimport org.mockftpserver.fake.UserAccount; 20b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairimport org.mockftpserver.fake.filesystem.FileEntry; 21b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairimport org.mockftpserver.fake.filesystem.FileSystem; 22b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairimport org.mockftpserver.fake.filesystem.UnixFakeFileSystem; 23b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairimport org.mockftpserver.stub.example.RemoteFile; 24b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairimport org.mockftpserver.test.AbstractTest; 25b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairimport org.mockftpserver.test.IntegrationTest; 26b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 27b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairimport java.io.IOException; 28b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 29b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair/** 30b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * Example test using FakeFtpServer, with programmatic configuration. 31b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair */ 32b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismairpublic class RemoteFileTest extends AbstractTest implements IntegrationTest { 33b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 34b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair private static final int PORT = 9981; 35b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair private static final String HOME_DIR = "/"; 36b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair private static final String FILE = "/dir/sample.txt"; 37b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair private static final String CONTENTS = "abcdef 1234567890"; 38b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 39b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair private RemoteFile remoteFile; 40b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair private FakeFtpServer fakeFtpServer; 41b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 42b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair public void testReadFile() throws Exception { 43b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair String contents = remoteFile.readFile(FILE); 44b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair assertEquals("contents", CONTENTS, contents); 45b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair } 46b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 47b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair public void testReadFileThrowsException() { 48b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair try { 49b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair remoteFile.readFile("NoSuchFile.txt"); 50b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair fail("Expected IOException"); 51b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair } 52b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair catch (IOException expected) { 53b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair // Expected this 54b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair } 55b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair } 56b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 57b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair protected void setUp() throws Exception { 58b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair super.setUp(); 59b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair remoteFile = new RemoteFile(); 60b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair remoteFile.setServer("localhost"); 61b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair remoteFile.setPort(PORT); 62b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair fakeFtpServer = new FakeFtpServer(); 63b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair fakeFtpServer.setServerControlPort(PORT); 64b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 65b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair FileSystem fileSystem = new UnixFakeFileSystem(); 66b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair fileSystem.add(new FileEntry(FILE, CONTENTS)); 67b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair fakeFtpServer.setFileSystem(fileSystem); 68b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 69b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair UserAccount userAccount = new UserAccount(RemoteFile.USERNAME, RemoteFile.PASSWORD, HOME_DIR); 70b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair fakeFtpServer.addUserAccount(userAccount); 71b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 72b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair fakeFtpServer.start(); 73b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair } 74b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 75b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair /** 76b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair * @see org.mockftpserver.test.AbstractTest#tearDown() 77b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair */ 78b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair protected void tearDown() throws Exception { 79b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair super.tearDown(); 80b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair fakeFtpServer.stop(); 81b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair } 82b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair 83b2f4a2dfc590c250e42b21eb40d9539ac135b495chrismair}