001: /**
002: *
003: * Java FTP client library.
004: *
005: * Copyright (C) 2000 Enterprise Distributed Technologies Ltd
006: *
007: * www.enterprisedt.com
008: *
009: * This library is free software; you can redistribute it and/or
010: * modify it under the terms of the GNU Lesser General Public
011: * License as published by the Free Software Foundation; either
012: * version 2.1 of the License, or (at your option) any later version.
013: *
014: * This library is distributed in the hope that it will be useful,
015: * but WITHOUT ANY WARRANTY; without even the implied warranty of
016: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
017: * Lesser General Public License for more details.
018: *
019: * You should have received a copy of the GNU Lesser General Public
020: * License along with this library; if not, write to the Free Software
021: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
022: *
023: * Bug fixes, suggestions and comments should be should posted on
024: * http://www.enterprisedt.com/forums/index.php
025: *
026: * Change Log:
027: *
028: * $Log: TestDirOperations.java,v $
029: * Revision 1.9 2007-12-18 07:55:50 bruceb
030: * add finally
031: *
032: * Revision 1.8 2007-08-09 00:10:52 hans
033: * Removed unused imports.
034: *
035: * Revision 1.7 2005/07/15 17:30:06 bruceb
036: * rework of unit testing structure
037: *
038: * Revision 1.6 2005/06/03 11:27:05 bruceb
039: * comment update
040: *
041: * Revision 1.5 2004/08/31 10:44:49 bruceb
042: * minor tweaks re compile warnings
043: *
044: * Revision 1.4 2004/05/01 17:05:43 bruceb
045: * Logger stuff added
046: *
047: * Revision 1.3 2003/05/31 14:54:05 bruceb
048: * cleaned up unused imports
049: *
050: * Revision 1.2 2003/01/29 22:45:28 bruceb
051: * ??
052: *
053: * Revision 1.1 2002/11/19 22:00:15 bruceb
054: * New JUnit test cases
055: *
056: *
057: */package com.enterprisedt.net.ftp.test;
058:
059: import junit.framework.Test;
060: import junit.framework.TestSuite;
061:
062: import com.enterprisedt.net.ftp.FTPException;
063:
064: /**
065: * Tests directory navigation and directory creation/deletion
066: * functionality
067: *
068: * @author Bruce Blackshaw
069: * @version $Revision: 1.9 $
070: */
071: public class TestDirOperations extends FTPTestCase {
072:
073: /**
074: * Revision control id
075: */
076: public static String cvsId = "@(#)$Id: TestDirOperations.java,v 1.9 2007-12-18 07:55:50 bruceb Exp $";
077:
078: /**
079: * Get name of log file
080: *
081: * @return name of file to log to
082: */
083: protected String getLogName() {
084: return "TestDirOperations.log";
085: }
086:
087: /**
088: * Test we can make a directory, and change
089: * into it, and remove it
090: */
091: public void testDir() throws Exception {
092:
093: log.debug("testDir() - ENTRY");
094: try {
095:
096: connect();
097:
098: // move to test directory
099: ftp.chdir(testdir);
100:
101: // mkdir
102: String dir = generateRandomFilename();
103: ftp.mkdir(dir);
104:
105: // chdir into new dir
106: ftp.chdir(dir);
107:
108: // pwd
109: String wd = ftp.pwd();
110: log.debug("PWD: " + wd);
111: assertTrue(wd.indexOf(dir) >= 0);
112:
113: // remove the dir
114: ftp.chdir("..");
115: ftp.rmdir(dir);
116:
117: // check it doesn't exist
118: try {
119: ftp.chdir(dir);
120: fail("chdir(" + dir + ") should have failed!");
121: } catch (FTPException ex) {
122: log.debug("Expected exception: " + ex.getMessage());
123: }
124:
125: ftp.quit();
126: } finally {
127: if (ftp.connected()) {
128: ftp.quitImmediately();
129: }
130: }
131: }
132:
133: /**
134: * Test renaming a dir
135: */
136: public void testRenameDir() throws Exception {
137:
138: log.debug("testRenameDir()");
139:
140: try {
141:
142: connect();
143:
144: // move to test directory
145: ftp.chdir(testdir);
146:
147: // mkdir
148: String dir1 = generateRandomFilename();
149: ftp.mkdir(dir1);
150:
151: // chdir into new dir and out again
152: ftp.chdir(dir1);
153: ftp.chdir("..");
154:
155: // generate another name guaranteed to be different
156: // and rename this dir
157: String dir2 = new StringBuffer(dir1).reverse().toString();
158: ftp.rename(dir1, dir2);
159: ftp.chdir(dir2);
160: String wd = ftp.pwd();
161: assertTrue(wd.indexOf(dir2) >= 0);
162:
163: // remove the dir
164: ftp.chdir("..");
165: ftp.rmdir(dir2);
166:
167: // check it doesn't exist
168: try {
169: ftp.chdir(dir2);
170: fail("chdir(" + dir2 + ") should have failed!");
171: } catch (FTPException ex) {
172: log.debug("Expected exception: " + ex.getMessage());
173: }
174:
175: ftp.quit();
176: } finally {
177: if (ftp.connected()) {
178: ftp.quitImmediately();
179: }
180: }
181: }
182:
183: /**
184: * Automatic test suite construction
185: *
186: * @return suite of tests for this class
187: */
188: public static Test suite() {
189: return new TestSuite(TestDirOperations.class);
190: }
191:
192: /**
193: * Enable our class to be run, doing the
194: * tests
195: */
196: public static void main(String[] args) {
197: junit.textui.TestRunner.run(suite());
198: }
199: }
|