java.lang.Object
org.eclipse.jgit.junit.LocalDiskRepositoryTestCase
org.eclipse.jgit.junit.RepositoryTestCase
Base class for most JGit unit tests.
Sets up a predefined test repository and has support for creating additional
repositories and destroying them when the tests are finished.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.eclipse.jgit.internal.storage.file.FileRepositoryTest repository, initialized for this test case.protected FileWorking directory ofdb.Fields inherited from class org.eclipse.jgit.junit.LocalDiskRepositoryTestCase
ASSUME_UNCHANGED, author, committer, CONTENT, CONTENT_ID, currentTest, LENGTH, mockSystemReader, MOD_TIME, SMUDGE, testRoot -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidassertEqualsFile(File expected, File actual) Assert files are equalprotected booleanCheck if file existsprotected static voidCheck content of a file.protected voidcheckoutBranch(String branchName) Checkout a branchprotected org.eclipse.jgit.revwalk.RevCommitcommitFile(String filename, String contents, String branch) Commit a file with the specified contents on the specified branch, creating the branch if it didn't exist before.protected static voidCopy a fileprotected voidcreateBranch(org.eclipse.jgit.lib.ObjectId objectId, String branchName) Create a branchprotected org.eclipse.jgit.dircache.DirCacheEntrycreateEntry(String path, org.eclipse.jgit.lib.FileMode mode) CreateDirCacheEntryprotected org.eclipse.jgit.dircache.DirCacheEntrycreateEntry(String path, org.eclipse.jgit.lib.FileMode mode, int stage, String content) CreateDirCacheEntryprotected org.eclipse.jgit.dircache.DirCacheEntrycreateEntry(String path, org.eclipse.jgit.lib.FileMode mode, String content) CreateDirCacheEntryprotected org.eclipse.jgit.dircache.DirCacheEntrycreateGitLink(String path, org.eclipse.jgit.lib.AnyObjectId objectId) CreateDirCacheEntryprotected voiddeleteTrashFile(String name) Delete a trash filestatic InstantWaits until it is guaranteed that a subsequent file modification has a younger modification timestamp than the modification timestamp of the given file.List<org.eclipse.jgit.lib.Ref>getRefs()Get all RefsindexState(int includedOptions) Represent the state of the index in one String.static StringHelper method to map arbitrary objects to user-defined names.protected StringRead content of a fileprotected voidresetIndex(org.eclipse.jgit.treewalk.FileTreeIterator treeItr) Resets the index to represent exactly some filesystem content.voidsetUp()Setup teststatic StringReplaces '\' by '/'voidtearDown()Tear down the testprotected PathCreate a symbolic linkprotected FilewriteTrashFile(String name, String data) Write a trash fileprotected FilewriteTrashFile(String subdir, String name, String data) Write a trash fileprotected FilewriteTrashFiles(boolean ensureDistinctTimestamps, String... contents) Writes a number of files in the working tree.Methods inherited from class org.eclipse.jgit.junit.LocalDiskRepositoryTestCase
addRepoToClose, createBareRepository, createRepository, createRepository, createTempDirectory, createTempFile, createUniqueTestGitDir, createWorkRepository, getCeilings, getTemporaryDirectory, indexState, read, recursiveDelete, runHook, tick, write, write
-
Field Details
-
db
protected org.eclipse.jgit.internal.storage.file.FileRepository dbTest repository, initialized for this test case. -
trash
Working directory ofdb.
-
-
Constructor Details
-
RepositoryTestCase
public RepositoryTestCase()
-
-
Method Details
-
copyFile
Copy a file- Parameters:
src- file to copydst- destination of the copy- Throws:
IOException- if an IO error occurred
-
writeTrashFile
Write a trash file- Parameters:
name- file namedata- file content- Returns:
- the trash file
- Throws:
IOException- if an IO error occurred
-
writeLink
Create a symbolic link- Parameters:
link- the path of the symbolic link to createtarget- the target of the symbolic link- Returns:
- the path to the symbolic link
- Throws:
Exception- if an error occurred- Since:
- 4.2
-
writeTrashFile
Write a trash file- Parameters:
subdir- in working treename- file namedata- file content- Returns:
- the trash file
- Throws:
IOException- if an IO error occurred
-
read
Read content of a file- Parameters:
name- file name- Returns:
- the file's content
- Throws:
IOException- if an IO error occurred
-
check
Check if file exists- Parameters:
name- file name- Returns:
- if the file exists
-
deleteTrashFile
Delete a trash file- Parameters:
name- file name- Throws:
IOException- if an IO error occurred
-
checkFile
Check content of a file.- Parameters:
f- filecheckData- expected content- Throws:
IOException- if an IO error occurred
-
setUp
Description copied from class:LocalDiskRepositoryTestCaseSetup test- Overrides:
setUpin classLocalDiskRepositoryTestCase- Throws:
Exception- if an error occurred
-
tearDown
Description copied from class:LocalDiskRepositoryTestCaseTear down the test- Overrides:
tearDownin classLocalDiskRepositoryTestCase- Throws:
Exception- if an error occurred
-
indexState
Represent the state of the index in one String. This representation is useful when writing tests which do assertions on the state of the index. By default information about path, mode, stage (if different from 0) is included. A bitmask controls which additional info about modificationTimes, smudge state and length is included.The format of the returned string is described with this BNF:
result = ( "[" path mode stage? time? smudge? length? sha1? content? "]" )* . mode = ", mode:" number . stage = ", stage:" number . time = ", time:t" timestamp-index . smudge = "" | ", smudged" . length = ", length:" number . sha1 = ", sha1:" hex-sha1 . content = ", content:" blob-data .
'stage' is only presented when the stage is different from 0. All reported time stamps are mapped to strings like "t0", "t1", ... "tn". The smallest reported time-stamp will be called "t0". This allows to write assertions against the string although the concrete value of the time stamps is unknown.- Parameters:
includedOptions- a bitmask constructed out of the constantsLocalDiskRepositoryTestCase.MOD_TIME,LocalDiskRepositoryTestCase.SMUDGE,LocalDiskRepositoryTestCase.LENGTH,LocalDiskRepositoryTestCase.CONTENT_IDandLocalDiskRepositoryTestCase.CONTENTcontrolling which info is present in the resulting string.- Returns:
- a string encoding the index state
- Throws:
IOException- if an IO error occurred
-
resetIndex
protected void resetIndex(org.eclipse.jgit.treewalk.FileTreeIterator treeItr) throws FileNotFoundException, IOException Resets the index to represent exactly some filesystem content. E.g. the following call will replace the index with the working tree content:resetIndex(new FileSystemIterator(db))This method can be used by testcases which first prepare a new commit somewhere in the filesystem (e.g. in the working-tree) and then want to have an index which matches their prepared content.
- Parameters:
treeItr- aFileTreeIteratorwhich determines which files should go into the new index- Throws:
FileNotFoundException- file was not foundIOException- if an IO error occurred
-
lookup
Helper method to map arbitrary objects to user-defined names. This can be used create short names for objects to produce small and stable debug output. It is guaranteed that when you lookup the same object multiple times even with different nameTemplates this method will always return the same name which was derived from the first nameTemplate. nameTemplates can contain "%n" which will be replaced by a running number before used as a name.- Parameters:
l- the object to lookuplookupTable- a table storing object-name mappings.nameTemplate- the name for that object. Can contain "%n" which will be replaced by a running number before used as a name. If the lookup table already contains the object this parameter will be ignored- Returns:
- a name of that object. Is not guaranteed to be unique. Use nameTemplates containing "%n" to always have unique names
-
slashify
Replaces '\' by '/'- Parameters:
str- the string in which backslashes should be replaced- Returns:
- the resulting string with slashes
- Since:
- 4.2
-
fsTick
Waits until it is guaranteed that a subsequent file modification has a younger modification timestamp than the modification timestamp of the given file. This is done by touching a temporary file, reading the lastmodified attribute and, if needed, sleeping. After sleeping this loop starts again until the filesystem timer has advanced enough. The temporary file will be created as a sibling of lastFile.- Parameters:
lastFile- the file on which we want to wait until the filesystem timer has advanced more than the lastmodification timestamp of this file- Returns:
- return the last measured value of the filesystem timer which is greater than then the lastmodification time of lastfile.
- Throws:
InterruptedException- if thread was interruptedIOException- if an IO error occurred- Since:
- 5.1.9
-
createBranch
protected void createBranch(org.eclipse.jgit.lib.ObjectId objectId, String branchName) throws IOException Create a branch- Parameters:
objectId- new value to create the branch onbranchName- branch name- Throws:
IOException- if an IO error occurred
-
getRefs
Get all Refs- Returns:
- list of refs
- Throws:
IOException- if an IO error occurred
-
checkoutBranch
Checkout a branch- Parameters:
branchName- branch name- Throws:
IOException- if an IO error occurred
-
writeTrashFiles
protected File writeTrashFiles(boolean ensureDistinctTimestamps, String... contents) throws IOException, InterruptedException Writes a number of files in the working tree. The first content specified will be written into a file named '0', the second into a file named "1" and so on. Ifnullis specified as content then this file is skipped.- Parameters:
ensureDistinctTimestamps- if set totruethen between two write operations this method will wait to ensure that the second file will get a different lastmodification timestamp than the first file.contents- the contents which should be written into the files- Returns:
- the File object associated to the last written file.
- Throws:
IOException- if an IO error occurredInterruptedException- if thread was interrupted
-
commitFile
protected org.eclipse.jgit.revwalk.RevCommit commitFile(String filename, String contents, String branch) Commit a file with the specified contents on the specified branch, creating the branch if it didn't exist before.It switches back to the original branch after the commit if there was one.
- Parameters:
filename- file namecontents- file contentbranch- branch name- Returns:
- the created commit
-
createEntry
protected org.eclipse.jgit.dircache.DirCacheEntry createEntry(String path, org.eclipse.jgit.lib.FileMode mode) CreateDirCacheEntry- Parameters:
path- file pathmode- file mode- Returns:
- the DirCacheEntry
-
createEntry
protected org.eclipse.jgit.dircache.DirCacheEntry createEntry(String path, org.eclipse.jgit.lib.FileMode mode, String content) CreateDirCacheEntry- Parameters:
path- file pathmode- file modecontent- file content- Returns:
- the DirCacheEntry
-
createEntry
protected org.eclipse.jgit.dircache.DirCacheEntry createEntry(String path, org.eclipse.jgit.lib.FileMode mode, int stage, String content) CreateDirCacheEntry- Parameters:
path- file pathmode- file modestage- stage index of the new entrycontent- file content- Returns:
- the DirCacheEntry
-
createGitLink
protected org.eclipse.jgit.dircache.DirCacheEntry createGitLink(String path, org.eclipse.jgit.lib.AnyObjectId objectId) CreateDirCacheEntry- Parameters:
path- file pathobjectId- of the entry- Returns:
- the DirCacheEntry
-
assertEqualsFile
Assert files are equal- Parameters:
expected- expected fileactual- actual file- Throws:
IOException- if an IO error occurred
-