X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=support%2Fgeneral%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fio%2FTestData.java;h=1ddf3adaab902db7b1d6370529e93b94286f0db3;hb=ddd261f331280640c5b53c7128230b629ebcd268;hp=1418f6b1227b532312cc7c172d0520f1dff23aab;hpb=92e23e5ecf9614f2ab770a8cdedc0b21ddf1e127;p=utils diff --git a/support/general/src/test/java/org/wamblee/io/TestData.java b/support/general/src/test/java/org/wamblee/io/TestData.java index 1418f6b1..1ddf3ada 100644 --- a/support/general/src/test/java/org/wamblee/io/TestData.java +++ b/support/general/src/test/java/org/wamblee/io/TestData.java @@ -1,12 +1,12 @@ /* * Copyright 2005 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. @@ -15,6 +15,8 @@ */ package org.wamblee.io; +import junit.framework.Assert; + import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; @@ -22,170 +24,168 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; + import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; -import junit.framework.Assert; /** * TestData provides a convenient interface for managing test output files. - * + * * @author Erik Brakkee */ public final class TestData { - - private Object testcase; - private File root; - - /** - * Test data to be constructed in the setUp of a test. {@link #clean()} must - * be called to make sure that this directory is empty before executing a - * test. - */ - public TestData(Object aTestcase) { - testcase = aTestcase; - root = getTestRootDir(aTestcase); - FileSystemUtils.createDir(root); - } - - /** - * Obtain root directory of JUnit tests. - * - * @return Directory name. - */ - private static File getTestRootDir(Object aTestcase) { - return FileSystemUtils.getTestOutputDir(aTestcase.getClass()); - } - - public void createFile(String aRelative, String aFile, InputStream aContents) { - FileSystemUtils - .createFile(new File(root, aRelative), aFile, aContents); - } - - public void createFile(String aFile, String aContents) { - createFile(".", aFile, aContents); - } - - public void createFile(String aRelative, String aFile, String aContents) { - InputStream is = new ByteArrayInputStream(aContents.getBytes()); - FileSystemUtils.createFile(new File(root, aRelative), aFile, is); - } - - public void deleteFile(String aFile) { - deleteFile(".", aFile); - } - - public void deleteFile(String aRelative, String aFile) { - FileSystemUtils.delete(new File(root, aFile)); - } - - /** - * Returns a temporary directory. - * - * @return Temporary directory. - */ - public File getTmpDir() { - return new File(root, "tmpdir"); - } - - /** - * Cleans up the test output directory. - */ - public void clean() { - FileSystemUtils.deleteDirRecursively(root); - FileSystemUtils.createDir(root); - } - - /** - * Recursively copy a directory contents to the test output directory. - * - * @param sSrc - * Source directory to copy. - */ - public void copyDir(File aSrc) { - FileSystemUtils.copyDir(aSrc, root); - } - - /** - * Copies a classpath resource to a relative path in the test output - * directory. - * - * @param aResource - * Resource to copy. - * @param aRelativePath - * Relative path. - */ - public void copyResource(String aResource, String aRelativePath) { - try { - InputStream is = new ClassPathResource(aResource).getInputStream(); - FileOutputStream fos = new FileOutputStream(new File(root, - aRelativePath)); - FileSystemUtils.copyStream(is, fos); - } catch (IOException e) { - e.printStackTrace(); - Assert.fail(e.getMessage()); - } - } - - /** - * Copies a resource to the root directory of the test output. - * - * @param aResource - * Resource. - */ - public void copyResource(String aResource) { - String basename = new File(aResource).getName(); - copyResource(aResource, basename); - } - - public void createDir(String aRelative) { - FileSystemUtils.createDir(new File(root, aRelative)); - } - - /** - * Deletes a file or directory relative to the test output root. - * - * @param aRelative - * Relative path. The testcase will fail if the file or directory - * cannot be removed. - */ - public void delete(String aRelative) { - FileSystemUtils.delete(new File(root, aRelative)); - } - - /** - * Deletes a directory including its contents. - * - * @param aRelative - * Relative path. - */ - public void deleteDir(String aRelative) { - FileSystemUtils.deleteDir(new File(root, aRelative)); - } - - /** - * Deletes a directory recursively. - * - * @param aRelative - * Relative path. - */ - public void deleteDirRecursively(String aRelative) { - FileSystemUtils.deleteDir(new File(root, aRelative)); - } - - /** - * Gets the root of the test output directory. - * - * @return Root of the test output. - */ - public File getRoot() { - return root; - } - - /** - * Gets a file object for a relative path. - */ - public File getFile(String aRelative) { - return new File(root, aRelative); - } + private Object testcase; + private File root; + + /** + * Test data to be constructed in the setUp of a test. {@link #clean()} must + * be called to make sure that this directory is empty before executing a + * test. + */ + public TestData(Object aTestcase) { + testcase = aTestcase; + root = getTestRootDir(aTestcase); + FileSystemUtils.createDir(root); + } + + /** + * Obtain root directory of JUnit tests. + * + * @return Directory name. + */ + private static File getTestRootDir(Object aTestcase) { + return FileSystemUtils.getTestOutputDir(aTestcase.getClass()); + } + + public void createFile(String aRelative, String aFile, InputStream aContents) { + FileSystemUtils.createFile(new File(root, aRelative), aFile, aContents); + } + + public void createFile(String aFile, String aContents) { + createFile(".", aFile, aContents); + } + + public void createFile(String aRelative, String aFile, String aContents) { + InputStream is = new ByteArrayInputStream(aContents.getBytes()); + FileSystemUtils.createFile(new File(root, aRelative), aFile, is); + } + + public void deleteFile(String aFile) { + deleteFile(".", aFile); + } + + public void deleteFile(String aRelative, String aFile) { + FileSystemUtils.delete(new File(root, aFile)); + } + + /** + * Returns a temporary directory. + * + * @return Temporary directory. + */ + public File getTmpDir() { + return new File(root, "tmpdir"); + } + + /** + * Cleans up the test output directory. + */ + public void clean() { + FileSystemUtils.deleteDirRecursively(root); + FileSystemUtils.createDir(root); + } + + /** + * Recursively copy a directory contents to the test output directory. + * + * @param sSrc + * Source directory to copy. + */ + public void copyDir(File aSrc) { + FileSystemUtils.copyDir(aSrc, root); + } + + /** + * Copies a classpath resource to a relative path in the test output + * directory. + * + * @param aResource + * Resource to copy. + * @param aRelativePath + * Relative path. + */ + public void copyResource(String aResource, String aRelativePath) { + try { + InputStream is = new ClassPathResource(aResource).getInputStream(); + FileOutputStream fos = new FileOutputStream(new File(root, + aRelativePath)); + FileSystemUtils.copyStream(is, fos); + } catch (IOException e) { + e.printStackTrace(); + Assert.fail(e.getMessage()); + } + } + + /** + * Copies a resource to the root directory of the test output. + * + * @param aResource + * Resource. + */ + public void copyResource(String aResource) { + String basename = new File(aResource).getName(); + copyResource(aResource, basename); + } + + public void createDir(String aRelative) { + FileSystemUtils.createDir(new File(root, aRelative)); + } + + /** + * Deletes a file or directory relative to the test output root. + * + * @param aRelative + * Relative path. The testcase will fail if the file or directory + * cannot be removed. + */ + public void delete(String aRelative) { + FileSystemUtils.delete(new File(root, aRelative)); + } + + /** + * Deletes a directory including its contents. + * + * @param aRelative + * Relative path. + */ + public void deleteDir(String aRelative) { + FileSystemUtils.deleteDir(new File(root, aRelative)); + } + + /** + * Deletes a directory recursively. + * + * @param aRelative + * Relative path. + */ + public void deleteDirRecursively(String aRelative) { + FileSystemUtils.deleteDir(new File(root, aRelative)); + } + + /** + * Gets the root of the test output directory. + * + * @return Root of the test output. + */ + public File getRoot() { + return root; + } + + /** + * Gets a file object for a relative path. + */ + public File getFile(String aRelative) { + return new File(root, aRelative); + } }