(no commit message)
[utils] / support / test / org / wamblee / test / FileSystemUtils.java
diff --git a/support/test/org/wamblee/test/FileSystemUtils.java b/support/test/org/wamblee/test/FileSystemUtils.java
deleted file mode 100644 (file)
index 7d1c2d7..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * Copyright 2006 the original author or authors.
- * 
- * Licensed 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 org.wamblee.test;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-import java.net.URL;
-import java.net.URLDecoder;
-import java.security.CodeSource;
-
-import junit.framework.TestCase;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-/**
- * File system utilities.
- */
-public final class FileSystemUtils {
-
-    private static final Log LOG = LogFactory.getLog(FileSystemUtils.class);
-
-    /**
-     * Test output directory relative to the sub project.
-     */
-    private static final String TEST_OUTPUT_DIR = "resources/testoutput";
-    
-    /**
-     * Test input directory relative to the sub project. 
-     */
-    private static final String TEST_INPUT_DIR = "resources/test";
-
-    /*
-     * Disabled.
-     * 
-     */
-    private FileSystemUtils() {
-        // Empty
-    }
-
-    /**
-     * Deletes a directory recursively. The test case will fail if the directory
-     * does not exist or if deletion fails.
-     * 
-     * @param aDir
-     *            Directory to delete.
-     */
-    public static void deleteDirRecursively(String aDir) {
-        deleteDirRecursively(new File(aDir));
-    }
-
-    /**
-     * Deletes a directory recursively. See {@link #deleteDirRecursively}.
-     * 
-     * @param aDir
-     *            Directory.
-     */
-    public static void deleteDirRecursively(File aDir) {
-        TestCase.assertTrue(aDir.isDirectory());
-
-        for (File file : aDir.listFiles()) {
-            if (file.isDirectory()) {
-                deleteDirRecursively(file);
-            } else {
-                delete(file);
-            }
-        }
-
-        delete(aDir);
-    }
-
-    /**
-     * Deletes a file or directory. The test case will fail if the file or
-     * directory does not exist or if deletion fails. Deletion of a non-empty
-     * directory will always fail.
-     * 
-     * @param aFile
-     *            File or directory to delete.
-     */
-    public static void delete(File aFile) {
-        TestCase.assertTrue(aFile.delete());
-    }
-
-    /**
-     * Gets a path relative to a sub project. This utility should be used to
-     * easily access file paths within a subproject without requiring any
-     * specific Eclipse configuration.
-     * 
-     * @param aRelativePath
-     *            Relative path.
-     * @param aTestClass
-     *            Test class.
-     */
-    public static File getPath(String aRelativePath, Class aTestClass) {
-        CodeSource source = aTestClass.getProtectionDomain().getCodeSource();
-        if (source == null) {
-            LOG.warn("Could not obtain path for '" + aRelativePath
-                    + "' for class " + aTestClass
-                    + ", using relative path as is");
-            return new File(aRelativePath);
-        }
-        URL location = source.getLocation();
-        String protocol = location.getProtocol();
-        if (!protocol.equals("file")) {
-            LOG.warn("protocol is not 'file': " + location);
-            return new File(aRelativePath);
-        }
-
-        String path = location.getPath();
-        try {
-            path = URLDecoder.decode(location.getPath(), "UTF-8");
-        } catch (UnsupportedEncodingException e) {
-            // ignore it.. just don't decode
-            LOG.warn("Decoding path failed: '" + location.getPath() + "'", e );
-        }
-
-        return new File(new File(path).getParentFile(), aRelativePath);
-    }
-
-    /**
-     * Ensures that a directory hierarchy exists (recursively if needed). If it
-     * is not possible to create the directory, then the test case will fail.
-     * 
-     * @param aDir
-     *            Directory to create.
-     */
-    public static void createDir(File aDir) {
-        if (aDir.exists() && !aDir.isDirectory()) {
-            TestCase.fail("'" + aDir
-                    + "' already exists and is not a directory");
-        }
-        if (aDir.exists()) {
-            return;
-        }
-        createDir(aDir.getParentFile());
-        TestCase.assertTrue("Could not create '" + aDir + "'", aDir.mkdir());
-    }
-
-    /**
-     * Gets the test output directory for a specific test class.
-     * 
-     * @param aTestClass
-     *            Test class.
-     * @return Test output directory.
-     */
-    public static File getTestOutputDir(Class aTestClass) {
-        File file = getPath(TEST_OUTPUT_DIR, aTestClass);
-        String packageName = aTestClass.getPackage().getName();
-        String packagePath = packageName.replaceAll("\\.", "/");
-        return new File(file, packagePath);
-    }
-    
-    /**
-     * Gets the test input directory for a specific test class.
-     * 
-     * @param aTestClass
-     *            Test class.
-     * @return Test input directory.
-     */
-    public static File getTestInputDir(Class aTestClass) {
-        File file = getPath(TEST_INPUT_DIR, aTestClass);
-        String packageName = aTestClass.getPackage().getName();
-        String packagePath = packageName.replaceAll("\\.", "/");
-        return new File(file, packagePath);
-    }
-
-    /**
-     * Creates a directory hierarchy for the output directory of a test class if
-     * needed.
-     * 
-     * @param aTestClass
-     *            Test class
-     * @return Test directory.
-     */
-    public static File createTestOutputDir(Class aTestClass) {
-        File file = getTestOutputDir(aTestClass);
-        createDir(file);
-        return file;
-    }
-
-    /**
-     * Gets a test output file name. This returns a File object representing the
-     * output file and ensures that the directory where the file will be created
-     * already exists.
-     * 
-     * @param aName
-     *            Name of the file.
-     * @param aTestClass
-     *            Test class.
-     * @return File.
-     */
-    public static File getTestOutputFile(String aName, Class aTestClass) {
-        File file = new File(getTestOutputDir(aTestClass), aName);
-        createDir(file.getParentFile());
-        return file;
-    }
-
-    public static String read(InputStream aIs) throws IOException {
-        try {
-            StringBuffer buffer = new StringBuffer();
-            int c;
-            while ((c = aIs.read()) != -1) {
-                buffer.append((char)c);
-            }
-            return buffer.toString();
-        } finally {
-            aIs.close();
-        }
-    }
-}