177b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair/* 277b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair * Copyright 2008 the original author or authors. 377b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair * 477b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair * Licensed under the Apache License, Version 2.0 (the "License"); 577b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair * you may not use this file except in compliance with the License. 677b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair * You may obtain a copy of the License at 777b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair * 877b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair * http://www.apache.org/licenses/LICENSE-2.0 977b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair * 1077b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair * Unless required by applicable law or agreed to in writing, software 1177b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair * distributed under the License is distributed on an "AS IS" BASIS, 1277b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1377b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair * See the License for the specific language governing permissions and 1477b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair * limitations under the License. 1577b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair */ 1677b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismairpackage org.mockftpserver.fake.example; 1777b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair 1877b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismairimport org.mockftpserver.fake.FakeFtpServer; 1977b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismairimport org.mockftpserver.fake.UserAccount; 2077b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismairimport org.mockftpserver.fake.filesystem.FileEntry; 2177b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismairimport org.mockftpserver.fake.filesystem.FileSystem; 2277b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismairimport org.mockftpserver.fake.filesystem.UnixFakeFileSystem; 2377b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismairimport org.mockftpserver.stub.example.RemoteFile; 2477b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismairimport org.mockftpserver.test.AbstractTest; 2577b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismairimport org.mockftpserver.test.IntegrationTest; 2677b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair 2777b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismairimport java.io.IOException; 2877b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair 2977b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair/** 3077b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair * Example test using FakeFtpServer, with programmatic configuration. 3177b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair */ 3277b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismairpublic class RemoteFileTest extends AbstractTest implements IntegrationTest { 3377b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair 3477b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair private static final int PORT = 9981; 3577b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair private static final String HOME_DIR = "/"; 3677b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair private static final String FILE = "/dir/sample.txt"; 3777b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair private static final String CONTENTS = "abcdef 1234567890"; 3877b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair 3977b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair private RemoteFile remoteFile; 4077b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair private FakeFtpServer fakeFtpServer; 4177b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair 4277b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair public void testReadFile() throws Exception { 4377b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair String contents = remoteFile.readFile(FILE); 4477b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair assertEquals("contents", CONTENTS, contents); 4577b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair } 4677b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair 4777b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair public void testReadFileThrowsException() { 4877b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair try { 4977b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair remoteFile.readFile("NoSuchFile.txt"); 5077b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair fail("Expected IOException"); 5177b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair } 5277b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair catch (IOException expected) { 5377b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair // Expected this 5477b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair } 5577b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair } 5677b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair 5777b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair protected void setUp() throws Exception { 5877b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair super.setUp(); 5977b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair remoteFile = new RemoteFile(); 6077b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair remoteFile.setServer("localhost"); 6177b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair remoteFile.setPort(PORT); 6277b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair fakeFtpServer = new FakeFtpServer(); 6377b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair fakeFtpServer.setServerControlPort(PORT); 6477b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair 6577b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair FileSystem fileSystem = new UnixFakeFileSystem(); 6677b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair fileSystem.add(new FileEntry(FILE, CONTENTS)); 6777b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair fakeFtpServer.setFileSystem(fileSystem); 6877b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair 6977b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair UserAccount userAccount = new UserAccount(RemoteFile.USERNAME, RemoteFile.PASSWORD, HOME_DIR); 7077b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair fakeFtpServer.addUserAccount(userAccount); 7177b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair 7277b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair fakeFtpServer.start(); 7377b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair } 7477b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair 7577b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair /** 7677b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair * @see org.mockftpserver.test.AbstractTest#tearDown() 7777b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair */ 7877b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair protected void tearDown() throws Exception { 7977b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair super.tearDown(); 8077b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair fakeFtpServer.stop(); 8177b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair } 8277b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair 8377b8661f08d1379c0bdf2af93d8004fced9f1ab0chrismair}