diff --git a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/JGitTestUtil.java b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/JGitTestUtil.java index 38a451fbf..d3da09ffb 100644 --- a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/JGitTestUtil.java +++ b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/JGitTestUtil.java @@ -46,10 +46,16 @@ package org.eclipse.jgit.junit; import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.io.Writer; import java.lang.reflect.Method; import java.net.URISyntaxException; import java.net.URL; +import org.eclipse.jgit.storage.file.FileRepository; +import org.eclipse.jgit.util.FileUtils; import org.eclipse.jgit.util.RawParseUtils; import org.junit.Assert; import org.junit.Test; @@ -127,4 +133,43 @@ public abstract class JGitTestUtil { private static ClassLoader cl() { return JGitTestUtil.class.getClassLoader(); } + + public static File writeTrashFile(final FileRepository db, + final String name, final String data) throws IOException { + File path = new File(db.getWorkTree(), name); + write(path, data); + return path; + } + + /** + * Write a string as a UTF-8 file. + * + * @param f + * file to write the string to. Caller is responsible for making + * sure it is in the trash directory or will otherwise be cleaned + * up at the end of the test. If the parent directory does not + * exist, the missing parent directories are automatically + * created. + * @param body + * content to write to the file. + * @throws IOException + * the file could not be written. + */ + public static void write(final File f, final String body) + throws IOException { + FileUtils.mkdirs(f.getParentFile(), true); + Writer w = new OutputStreamWriter(new FileOutputStream(f), "UTF-8"); + try { + w.write(body); + } finally { + w.close(); + } + } + + public static void deleteTrashFile(final FileRepository db, + final String name) throws IOException { + File path = new File(db.getWorkTree(), name); + FileUtils.delete(path); + } + } diff --git a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/LocalDiskRepositoryTestCase.java b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/LocalDiskRepositoryTestCase.java index 0c7ae7de7..d8ae705c4 100644 --- a/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/LocalDiskRepositoryTestCase.java +++ b/org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/LocalDiskRepositoryTestCase.java @@ -49,10 +49,7 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.fail; import java.io.File; -import java.io.FileOutputStream; import java.io.IOException; -import java.io.OutputStreamWriter; -import java.io.Writer; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -435,13 +432,7 @@ public abstract class LocalDiskRepositoryTestCase { * the file could not be written. */ protected void write(final File f, final String body) throws IOException { - FileUtils.mkdirs(f.getParentFile(), true); - Writer w = new OutputStreamWriter(new FileOutputStream(f), "UTF-8"); - try { - w.write(body); - } finally { - w.close(); - } + JGitTestUtil.write(f, body); } /** diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryTestCase.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryTestCase.java index 934c76cbb..0c573ebe7 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryTestCase.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryTestCase.java @@ -62,6 +62,7 @@ import org.eclipse.jgit.dircache.DirCache; import org.eclipse.jgit.dircache.DirCacheBuilder; import org.eclipse.jgit.dircache.DirCacheCheckout; import org.eclipse.jgit.dircache.DirCacheEntry; +import org.eclipse.jgit.junit.JGitTestUtil; import org.eclipse.jgit.junit.LocalDiskRepositoryTestCase; import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.revwalk.RevWalk; @@ -98,14 +99,11 @@ public abstract class RepositoryTestCase extends LocalDiskRepositoryTestCase { protected File writeTrashFile(final String name, final String data) throws IOException { - File path = new File(db.getWorkTree(), name); - write(path, data); - return path; + return JGitTestUtil.writeTrashFile(db, name, data); } protected void deleteTrashFile(final String name) throws IOException { - File path = new File(db.getWorkTree(), name); - FileUtils.delete(path); + JGitTestUtil.deleteTrashFile(db, name); } protected static void checkFile(File f, final String checkData)