Package org.eclipse.jgit.junit.ssh
Class SshTestHarness
- java.lang.Object
-
- org.eclipse.jgit.junit.LocalDiskRepositoryTestCase
-
- org.eclipse.jgit.junit.RepositoryTestCase
-
- org.eclipse.jgit.junit.ssh.SshTestHarness
-
- Direct Known Subclasses:
SshBasicTestBase
public abstract class SshTestHarness extends RepositoryTestCase
Root class for ssh tests. Sets up the ssh test server. A set of pre-computed keys for testing is provided in the bundle and can be used in test cases viacopyTestResource(String, File)
. These test key files names have four components, separated by a single underscore: "id", the algorithm, the bits (if variable), and the password if the private key is encrypted. For instance "id_ecdsa_384_testpass
" is an encrypted ECDSA-384 key. The passphrase to decrypt is "testpass". The key "id_ecdsa_384
" is the same but unencrypted. All keys were generated and encrypted via ssh-keygen. Note that DSA and ec25519 have no "bits" component. Available keys are listed inSshTestBase.KEY_RESOURCES
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
SshTestHarness.LogEntry
protected static class
SshTestHarness.TestCredentialsProvider
-
Field Summary
Fields Modifier and Type Field Description protected File
knownHosts
protected File
privateKey1
protected File
privateKey2
protected File
publicKey1
protected File
publicKey2
protected SshTestGitServer
server
protected File
sshDir
protected static String
TEST_USER
protected int
testPort
-
Fields inherited from class org.eclipse.jgit.junit.RepositoryTestCase
db, trash
-
Fields inherited from class org.eclipse.jgit.junit.LocalDiskRepositoryTestCase
ASSUME_UNCHANGED, author, committer, CONTENT, CONTENT_ID, currentTest, LENGTH, mockSystemReader, MOD_TIME, SMUDGE
-
-
Constructor Summary
Constructors Constructor Description SshTestHarness()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected File
cloneWith(String uri, File to, CredentialsProvider provider, String... config)
protected void
copyTestResource(Class<?> loader, String resourceName, File to)
Copies a test data file contained in the test bundle to the given file, usingClass.getResourceAsStream(String)
to get the test resource.protected void
copyTestResource(String resourceName, File to)
Copies a test data file contained in the test bundle to the given file.protected static String
createKnownHostsFile(File file, String host, int port, File publicKey)
Creates a new known_hosts file with one entry for the given host and port taken from the given public key file.protected abstract SshSessionFactory
createSessionFactory()
protected SshSessionFactory
getSessionFactory()
protected boolean
hasHostKey(String host, int port, String keyPart, List<String> lines)
Checks whether there is a line for the given host and port that also matches the given key part in the list of lines.protected abstract void
installConfig(String... config)
protected void
pushTo(File localClone)
protected void
pushTo(CredentialsProvider provider, File localClone)
void
setUp()
Setup testvoid
shutdownServer()
-
Methods inherited from class org.eclipse.jgit.junit.RepositoryTestCase
assertEqualsFile, check, checkFile, checkoutBranch, commitFile, copyFile, createBranch, createEntry, createEntry, createEntry, createGitLink, deleteTrashFile, fsTick, getRefs, indexState, lookup, read, resetIndex, slashify, tearDown, writeLink, writeTrashFile, writeTrashFile, writeTrashFiles
-
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 Detail
-
TEST_USER
protected static final String TEST_USER
- See Also:
- Constant Field Values
-
sshDir
protected File sshDir
-
privateKey1
protected File privateKey1
-
privateKey2
protected File privateKey2
-
publicKey1
protected File publicKey1
-
publicKey2
protected File publicKey2
-
server
protected SshTestGitServer server
-
testPort
protected int testPort
-
knownHosts
protected File knownHosts
-
-
Method Detail
-
setUp
public void setUp() throws Exception
Description copied from class:RepositoryTestCase
Setup test- Overrides:
setUp
in classRepositoryTestCase
- Throws:
Exception
-
createKnownHostsFile
protected static String createKnownHostsFile(File file, String host, int port, File publicKey) throws IOException
Creates a new known_hosts file with one entry for the given host and port taken from the given public key file.- Parameters:
file
- to write the known_hosts file tohost
- for the entryport
- for the entrypublicKey
- to use- Returns:
- the public-key part of the line
- Throws:
IOException
-
hasHostKey
protected boolean hasHostKey(String host, int port, String keyPart, List<String> lines)
Checks whether there is a line for the given host and port that also matches the given key part in the list of lines.- Parameters:
host
- to look forport
- to look forkeyPart
- to look forlines
- to look in- Returns:
true
if found,false
otherwise
-
createSessionFactory
protected abstract SshSessionFactory createSessionFactory()
-
getSessionFactory
protected SshSessionFactory getSessionFactory()
-
installConfig
protected abstract void installConfig(String... config)
-
copyTestResource
protected void copyTestResource(String resourceName, File to) throws IOException
Copies a test data file contained in the test bundle to the given file. Equivalent tocopyTestResource(Class, String, File)
withSshTestHarness.class
as first parameter.- Parameters:
resourceName
- of the test resource to copyto
- file to copy the resource to- Throws:
IOException
- if the resource cannot be copied
-
copyTestResource
protected void copyTestResource(Class<?> loader, String resourceName, File to) throws IOException
Copies a test data file contained in the test bundle to the given file, usingClass.getResourceAsStream(String)
to get the test resource.- Parameters:
loader
-Class
to use to load the resourceresourceName
- of the test resource to copyto
- file to copy the resource to- Throws:
IOException
- if the resource cannot be copied
-
cloneWith
protected File cloneWith(String uri, File to, CredentialsProvider provider, String... config) throws Exception
- Throws:
Exception
-
pushTo
protected void pushTo(CredentialsProvider provider, File localClone) throws Exception
- Throws:
Exception
-
-