Browse Source

Replace ExpectedException which was deprecated in junit 4.13

Change-Id: I64b0c057dd0a12aef2f3d56fa0c8a10e3b23fffd
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
tags/v5.7.0.202002241735-m3
Matthias Sohn 4 years ago
parent
commit
8ada9048c5
21 changed files with 237 additions and 279 deletions
  1. 6
    0
      WORKSPACE
  2. 9
    0
      lib/BUILD
  3. 11
    15
      org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerTest.java
  4. 8
    18
      org.eclipse.jgit.lfs.server.test/tst/org/eclipse/jgit/lfs/server/fs/DownloadTest.java
  5. 9
    17
      org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/BlameTest.java
  6. 1
    0
      org.eclipse.jgit.test/BUILD
  7. 2
    0
      org.eclipse.jgit.test/META-INF/MANIFEST.MF
  8. 5
    0
      org.eclipse.jgit.test/pom.xml
  9. 3
    7
      org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RenameBranchCommandTest.java
  10. 4
    9
      org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsBlockCacheConfigTest.java
  11. 5
    8
      org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileReftableStackTest.java
  12. 5
    12
      org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/ObjectDirectoryTest.java
  13. 5
    8
      org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/T0003_BasicTest.java
  14. 31
    39
      org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java
  15. 7
    13
      org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ObjectCheckerTest.java
  16. 7
    12
      org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/BundleWriterTest.java
  17. 5
    9
      org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/ProtocolV2ParserTest.java
  18. 106
    100
      org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/RequestValidatorTestCase.java
  19. 0
    5
      org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/UploadPackReachabilityTest.java
  20. 3
    7
      org.eclipse.jgit.test/tst/org/eclipse/jgit/util/RawParseUtils_LineMapTest.java
  21. 5
    0
      pom.xml

+ 6
- 0
WORKSPACE View File

sha1 = "497ddb32fd5d01f9dbe99a2ec790aeb931dff1b1", sha1 = "497ddb32fd5d01f9dbe99a2ec790aeb931dff1b1",
) )


maven_jar(
name = "assertj-core",
artifact = "org.assertj:assertj-core:3.14.0",
sha1 = "3b7b0fcac821f3d167764e9926573cd64f78f9e9",
)

BYTE_BUDDY_VERSION = "1.9.0" BYTE_BUDDY_VERSION = "1.9.0"


maven_jar( maven_jar(

+ 9
- 0
lib/BUILD View File

], ],
) )


java_library(
name = "assertj-core",
testonly = 1,
visibility = ["//visibility:public"],
exports = [
"@assertj-core//jar",
],
)

java_library( java_library(
name = "servlet-api", name = "servlet-api",
visibility = [ visibility = [

+ 11
- 15
org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerTest.java View File

import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull; import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;


import org.eclipse.jgit.transport.http.HttpConnectionFactory; import org.eclipse.jgit.transport.http.HttpConnectionFactory;
import org.eclipse.jgit.util.HttpSupport; import org.eclipse.jgit.util.HttpSupport;
import org.eclipse.jgit.util.SystemReader; import org.eclipse.jgit.util.SystemReader;
import org.hamcrest.Matchers;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.rules.ExpectedException;


public class SmartClientSmartServerTest extends AllFactoriesHttpTestCase { public class SmartClientSmartServerTest extends AllFactoriesHttpTestCase {
private static final String HDR_TRANSFER_ENCODING = "Transfer-Encoding"; private static final String HDR_TRANSFER_ENCODING = "Transfer-Encoding";


@Rule
public ExpectedException thrown = ExpectedException.none();

private AdvertiseRefsHook advertiseRefsHook; private AdvertiseRefsHook advertiseRefsHook;


private Repository remoteRepository; private Repository remoteRepository;
try (Repository dst = createBareRepository(); try (Repository dst = createBareRepository();
Transport t = Transport.open(dst, remoteURI)) { Transport t = Transport.open(dst, remoteURI)) {
assertFalse(dst.getObjectDatabase().has(A_txt)); assertFalse(dst.getObjectDatabase().has(A_txt));
thrown.expect(TransportException.class);
thrown.expectMessage(Matchers.containsString(
Exception e = assertThrows(TransportException.class,
() -> t.fetch(NullProgressMonitor.INSTANCE,
Collections.singletonList(
new RefSpec(unreachableCommit.name()))));
assertTrue(e.getMessage().contains(
"want " + unreachableCommit.name() + " not valid")); "want " + unreachableCommit.name() + " not valid"));
t.fetch(NullProgressMonitor.INSTANCE, Collections
.singletonList(new RefSpec(unreachableCommit.name())));
} }
} }


try (Repository dst = createBareRepository(); try (Repository dst = createBareRepository();
Transport t = Transport.open(dst, remoteURI)) { Transport t = Transport.open(dst, remoteURI)) {
assertFalse(dst.getObjectDatabase().has(A_txt)); assertFalse(dst.getObjectDatabase().has(A_txt));
thrown.expect(TransportException.class);
thrown.expectMessage(Matchers.containsString(
"want " + A.name() + " not valid"));
t.fetch(NullProgressMonitor.INSTANCE, Collections
.singletonList(new RefSpec(A.name())));
Exception e = assertThrows(TransportException.class,
() -> t.fetch(NullProgressMonitor.INSTANCE,
Collections.singletonList(new RefSpec(A.name()))));
assertTrue(
e.getMessage().contains("want " + A.name() + " not valid"));
} }
} }



+ 8
- 18
org.eclipse.jgit.lfs.server.test/tst/org/eclipse/jgit/lfs/server/fs/DownloadTest.java View File

import static org.apache.http.HttpStatus.SC_NOT_FOUND; import static org.apache.http.HttpStatus.SC_NOT_FOUND;
import static org.apache.http.HttpStatus.SC_UNPROCESSABLE_ENTITY; import static org.apache.http.HttpStatus.SC_UNPROCESSABLE_ENTITY;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThrows;


import java.io.IOException; import java.io.IOException;
import java.nio.file.Path; import java.nio.file.Path;
import org.eclipse.jgit.lfs.lib.AnyLongObjectId; import org.eclipse.jgit.lfs.lib.AnyLongObjectId;
import org.eclipse.jgit.lfs.test.LongObjectIdTestUtils; import org.eclipse.jgit.lfs.test.LongObjectIdTestUtils;
import org.eclipse.jgit.util.FileUtils; import org.eclipse.jgit.util.FileUtils;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.rules.ExpectedException;


public class DownloadTest extends LfsServerTest { public class DownloadTest extends LfsServerTest {


@Rule
public ExpectedException exception = ExpectedException.none();

@Test @Test
public void testDownload() throws Exception { public void testDownload() throws Exception {
String TEXT = "test"; String TEXT = "test";
Path f = Paths.get(getTempDirectory().toString(), "download"); Path f = Paths.get(getTempDirectory().toString(), "download");
String error = String.format( String error = String.format(
"Invalid pathInfo: '/%s' does not match '/{SHA-256}'", id); "Invalid pathInfo: '/%s' does not match '/{SHA-256}'", id);
exception.expect(RuntimeException.class);
exception.expectMessage(
formatErrorMessage(SC_UNPROCESSABLE_ENTITY, error));
getContent(id, f);
assertThrows(formatErrorMessage(SC_UNPROCESSABLE_ENTITY, error),
RuntimeException.class, () -> getContent(id, f));
} }


@Test @Test
String id = putContent(TEXT).name().replace('f', 'z'); String id = putContent(TEXT).name().replace('f', 'z');
Path f = Paths.get(getTempDirectory().toString(), "download"); Path f = Paths.get(getTempDirectory().toString(), "download");
String error = String.format("Invalid id: %s", id); String error = String.format("Invalid id: %s", id);
exception.expect(RuntimeException.class);
exception.expectMessage(
formatErrorMessage(SC_UNPROCESSABLE_ENTITY, error));
getContent(id, f);
assertThrows(formatErrorMessage(SC_UNPROCESSABLE_ENTITY, error),
RuntimeException.class, () -> getContent(id, f));
} }


@Test @Test
public void testDownloadNotFound()
throws ClientProtocolException, IOException {
public void testDownloadNotFound() {
String TEXT = "test"; String TEXT = "test";
AnyLongObjectId id = LongObjectIdTestUtils.hash(TEXT); AnyLongObjectId id = LongObjectIdTestUtils.hash(TEXT);
Path f = Paths.get(getTempDirectory().toString(), "download"); Path f = Paths.get(getTempDirectory().toString(), "download");
String error = String.format("Object '%s' not found", id.getName()); String error = String.format("Object '%s' not found", id.getName());
exception.expect(RuntimeException.class);
exception.expectMessage(formatErrorMessage(SC_NOT_FOUND, error));
getContent(id, f);
assertThrows(formatErrorMessage(SC_NOT_FOUND, error),
RuntimeException.class, () -> getContent(id, f));
} }


@SuppressWarnings("boxing") @SuppressWarnings("boxing")

+ 9
- 17
org.eclipse.jgit.pgm.test/tst/org/eclipse/jgit/pgm/BlameTest.java View File

*/ */
package org.eclipse.jgit.pgm; package org.eclipse.jgit.pgm;


import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;


import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.PersonIdent; import org.eclipse.jgit.lib.PersonIdent;
import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.revwalk.RevCommit;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.rules.ExpectedException;


public class BlameTest extends CLIRepositoryTestCase { public class BlameTest extends CLIRepositoryTestCase {


@Rule
public ExpectedException thrown = ExpectedException.none();

@Test @Test
public void testBlameNoHead() throws Exception { public void testBlameNoHead() throws Exception {
try (Git git = new Git(db)) { try (Git git = new Git(db)) {
writeTrashFile("inIndex.txt", "index"); writeTrashFile("inIndex.txt", "index");
git.add().addFilepattern("inIndex.txt").call(); git.add().addFilepattern("inIndex.txt").call();
} }
thrown.expect(Die.class);
thrown.expectMessage("no such ref: HEAD");
execute("git blame inIndex.txt");
assertThrows("no such ref: HEAD", Die.class,
() -> execute("git blame inIndex.txt"));
} }


@Test @Test
git.commit().setMessage("initial commit").call(); git.commit().setMessage("initial commit").call();
} }
writeTrashFile("onlyInWorkingTree.txt", "not in repo"); writeTrashFile("onlyInWorkingTree.txt", "not in repo");
thrown.expect(Die.class);
thrown.expectMessage("no such path 'onlyInWorkingTree.txt' in HEAD");
execute("git blame onlyInWorkingTree.txt");
assertThrows("no such path 'onlyInWorkingTree.txt' in HEAD", Die.class,
() -> execute("git blame onlyInWorkingTree.txt"));
} }


@Test @Test
try (Git git = new Git(db)) { try (Git git = new Git(db)) {
git.commit().setMessage("initial commit").call(); git.commit().setMessage("initial commit").call();
} }
thrown.expect(Die.class);
thrown.expectMessage("no such path 'does_not_exist.txt' in HEAD");
execute("git blame does_not_exist.txt");
assertThrows("no such path 'does_not_exist.txt' in HEAD", Die.class,
() -> execute("git blame does_not_exist.txt"));
} }


@Test @Test
try (Git git = new Git(db)) { try (Git git = new Git(db)) {
git.commit().setMessage("initial commit").call(); git.commit().setMessage("initial commit").call();
} }
thrown.expect(Die.class);
thrown.expectMessage("no such path 'sub/does_not_exist.txt' in HEAD");
execute("git blame sub/does_not_exist.txt");
assertThrows("no such path 'sub/does_not_exist.txt' in HEAD", Die.class,
() -> execute("git blame sub/does_not_exist.txt"));
} }


@Test @Test

+ 1
- 0
org.eclipse.jgit.test/BUILD View File

srcs = HELPERS, srcs = HELPERS,
resources = DATA, resources = DATA,
deps = [ deps = [
"//lib:assertj-core",
"//lib:jsch", "//lib:jsch",
"//lib:junit", "//lib:junit",
"//lib:mockito", "//lib:mockito",

+ 2
- 0
org.eclipse.jgit.test/META-INF/MANIFEST.MF View File

org.apache.commons.compress.compressors.bzip2;version="[1.15.0,2.0)", org.apache.commons.compress.compressors.bzip2;version="[1.15.0,2.0)",
org.apache.commons.compress.compressors.gzip;version="[1.15.0,2.0)", org.apache.commons.compress.compressors.gzip;version="[1.15.0,2.0)",
org.apache.commons.compress.compressors.xz;version="[1.15.0,2.0)", org.apache.commons.compress.compressors.xz;version="[1.15.0,2.0)",
org.assertj.core.api;version="[3.14.0,4.0.0)",
org.bouncycastle.util.encoders;version="[1.61.0,2.0.0)", org.bouncycastle.util.encoders;version="[1.61.0,2.0.0)",
org.eclipse.jgit.annotations;version="[5.7.0,5.8.0)", org.eclipse.jgit.annotations;version="[5.7.0,5.8.0)",
org.eclipse.jgit.api;version="[5.7.0,5.8.0)", org.eclipse.jgit.api;version="[5.7.0,5.8.0)",
org.eclipse.jgit.util.sha1;version="[5.7.0,5.8.0)", org.eclipse.jgit.util.sha1;version="[5.7.0,5.8.0)",
org.junit;version="[4.13,5.0.0)", org.junit;version="[4.13,5.0.0)",
org.junit.experimental.theories;version="[4.13,5.0.0)", org.junit.experimental.theories;version="[4.13,5.0.0)",
org.junit.function;version="[4.13.0,5.0.0)",
org.junit.rules;version="[4.13,5.0.0)", org.junit.rules;version="[4.13,5.0.0)",
org.junit.runner;version="[4.13,5.0.0)", org.junit.runner;version="[4.13,5.0.0)",
org.junit.runners;version="[4.13,5.0.0)", org.junit.runners;version="[4.13,5.0.0)",

+ 5
- 0
org.eclipse.jgit.test/pom.xml View File

<version>[1.1.0,2.0.0)</version> <version>[1.1.0,2.0.0)</version>
</dependency> </dependency>


<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
</dependency>

<dependency> <dependency>
<groupId>org.mockito</groupId> <groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId> <artifactId>mockito-core</artifactId>

+ 3
- 7
org.eclipse.jgit.test/tst/org/eclipse/jgit/api/RenameBranchCommandTest.java View File

import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull; import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;


import org.eclipse.jgit.api.errors.RefAlreadyExistsException; import org.eclipse.jgit.api.errors.RefAlreadyExistsException;
import org.eclipse.jgit.lib.StoredConfig; import org.eclipse.jgit.lib.StoredConfig;
import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.revwalk.RevCommit;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.rules.ExpectedException;


/** /**
* Unit tests of {@link RenameBranchCommand} * Unit tests of {@link RenameBranchCommand}


private Git git; private Git git;


@Rule
public ExpectedException thrown = ExpectedException.none();

@Override @Override
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
@Test @Test
public void renameToExisting() throws Exception { public void renameToExisting() throws Exception {
assertNotNull(git.branchCreate().setName("foo").call()); assertNotNull(git.branchCreate().setName("foo").call());
thrown.expect(RefAlreadyExistsException.class);
git.branchRename().setOldName("master").setNewName("foo").call();
assertThrows(RefAlreadyExistsException.class, () -> git.branchRename()
.setOldName("master").setNewName("foo").call());
} }


@Test @Test

+ 4
- 9
org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/dfs/DfsBlockCacheConfigTest.java View File



import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThrows;


import org.eclipse.jgit.internal.JGitText; import org.eclipse.jgit.internal.JGitText;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.rules.ExpectedException;


public class DfsBlockCacheConfigTest { public class DfsBlockCacheConfigTest {


@Rule
public ExpectedException thrown = ExpectedException.none();

@Test @Test
public void blockSizeNotPowerOfTwoExpectsException() { public void blockSizeNotPowerOfTwoExpectsException() {
thrown.expect(IllegalArgumentException.class);
thrown.expectMessage(is(JGitText.get().blockSizeNotPowerOf2));

new DfsBlockCacheConfig().setBlockSize(1000);
assertThrows(JGitText.get().blockSizeNotPowerOf2,
IllegalArgumentException.class,
() -> new DfsBlockCacheConfig().setBlockSize(1000));
} }


@Test @Test

+ 5
- 8
org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/FileReftableStackTest.java View File



import static org.eclipse.jgit.lib.Ref.Storage.PACKED; import static org.eclipse.jgit.lib.Ref.Storage.PACKED;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;


import java.io.File; import java.io.File;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;

import org.eclipse.jgit.internal.storage.file.FileReftableStack.Segment; import org.eclipse.jgit.internal.storage.file.FileReftableStack.Segment;
import org.eclipse.jgit.internal.storage.reftable.MergedReftable; import org.eclipse.jgit.internal.storage.reftable.MergedReftable;
import org.eclipse.jgit.internal.storage.reftable.RefCursor; import org.eclipse.jgit.internal.storage.reftable.RefCursor;
import org.eclipse.jgit.util.FileUtils; import org.eclipse.jgit.util.FileUtils;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.rules.ExpectedException;


public class FileReftableStackTest { public class FileReftableStackTest {


testCompaction(1024); testCompaction(1024);
} }


@Rule
public final ExpectedException thrown = ExpectedException.none();

@SuppressWarnings({ "resource", "unused" }) @SuppressWarnings({ "resource", "unused" })
@Test @Test
public void missingReftable() throws Exception { public void missingReftable() throws Exception {
} }
} }
} }
thrown.expect(FileNotFoundException.class);
new FileReftableStack(new File(reftableDir, "refs"), reftableDir, null,
() -> new Config());
assertThrows(FileNotFoundException.class,
() -> new FileReftableStack(new File(reftableDir, "refs"),
reftableDir, null, () -> new Config()));
} }


@Test @Test

+ 5
- 12
org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/ObjectDirectoryTest.java View File



import static java.nio.charset.StandardCharsets.UTF_8; import static java.nio.charset.StandardCharsets.UTF_8;
import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;


import java.io.File; import java.io.File;
import org.eclipse.jgit.storage.file.FileBasedConfig; import org.eclipse.jgit.storage.file.FileBasedConfig;
import org.eclipse.jgit.util.FS; import org.eclipse.jgit.util.FS;
import org.junit.Assume; import org.junit.Assume;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.rules.ExpectedException;


public class ObjectDirectoryTest extends RepositoryTestCase { public class ObjectDirectoryTest extends RepositoryTestCase {


@Rule
public ExpectedException expectedEx = ExpectedException.none();

@Test @Test
public void testConcurrentInsertionOfBlobsToTheSameNewFanOutDirectory() public void testConcurrentInsertionOfBlobsToTheSameNewFanOutDirectory()
throws Exception { throws Exception {
} }


@Test @Test
public void testShallowFileCorrupt()
throws Exception {
public void testShallowFileCorrupt() throws Exception {
FileRepository repository = createBareRepository(); FileRepository repository = createBareRepository();
ObjectDirectory dir = repository.getObjectDatabase(); ObjectDirectory dir = repository.getObjectDatabase();


UTF_8.name())) { UTF_8.name())) {
writer.println(commit); writer.println(commit);
} }

expectedEx.expect(IOException.class);
expectedEx.expectMessage(MessageFormat
.format(JGitText.get().badShallowLine, commit));
dir.getShallowCommits();
assertThrows(
MessageFormat.format(JGitText.get().badShallowLine, commit),
IOException.class, () -> dir.getShallowCommits());
} }


private Collection<Callable<ObjectId>> blobInsertersForTheSameFanOutDir( private Collection<Callable<ObjectId>> blobInsertersForTheSameFanOutDir(

+ 5
- 8
org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/T0003_BasicTest.java View File

import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNotSame; import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;


import org.eclipse.jgit.util.FS; import org.eclipse.jgit.util.FS;
import org.eclipse.jgit.util.FileUtils; import org.eclipse.jgit.util.FileUtils;
import org.eclipse.jgit.util.IO; import org.eclipse.jgit.util.IO;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.rules.ExpectedException;


public class T0003_BasicTest extends SampleDataRepositoryTestCase { public class T0003_BasicTest extends SampleDataRepositoryTestCase {
@Rule
public ExpectedException expectedException = ExpectedException.none();


@Test @Test
public void test001_Initalize() { public void test001_Initalize() {
// We won't create a tree entry with an empty filename // We won't create a tree entry with an empty filename
// //
final TreeFormatter formatter = new TreeFormatter(); final TreeFormatter formatter = new TreeFormatter();
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage(JGitText.get().invalidTreeZeroLengthName);
formatter.append("", FileMode.TREE,
ObjectId.fromString("4b825dc642cb6eb9a060e54bf8d69288fbee4904"));
assertThrows(JGitText.get().invalidTreeZeroLengthName,
IllegalArgumentException.class,
() -> formatter.append("", FileMode.TREE, ObjectId.fromString(
"4b825dc642cb6eb9a060e54bf8d69288fbee4904")));
} }


@Test @Test

+ 31
- 39
org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java View File

import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull; import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame; import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;


import org.junit.After; import org.junit.After;
import org.junit.Rule; import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.junit.rules.TemporaryFolder; import org.junit.rules.TemporaryFolder;


/** /**


private static final String REFS_BACKUP = "+refs/heads/*:refs/remotes/backup/*"; private static final String REFS_BACKUP = "+refs/heads/*:refs/remotes/backup/*";


@Rule
public ExpectedException expectedEx = ExpectedException.none();

@Rule @Rule
public TemporaryFolder tmp = new TemporaryFolder(); public TemporaryFolder tmp = new TemporaryFolder();


} }


@Test @Test
public void testIncludeInvalidName() throws ConfigInvalidException {
expectedEx.expect(ConfigInvalidException.class);
expectedEx.expectMessage(JGitText.get().invalidLineInConfigFile);
parse("[include]\nbar\n");
public void testIncludeInvalidName() {
assertThrows(JGitText.get().invalidLineInConfigFile,
ConfigInvalidException.class, () -> parse("[include]\nbar\n"));
} }


@Test @Test
public void testIncludeNoValue() throws ConfigInvalidException {
expectedEx.expect(ConfigInvalidException.class);
expectedEx.expectMessage(JGitText.get().invalidLineInConfigFile);
parse("[include]\npath\n");
public void testIncludeNoValue() {
assertThrows(JGitText.get().invalidLineInConfigFile,
ConfigInvalidException.class, () -> parse("[include]\npath\n"));
} }


@Test @Test
public void testIncludeEmptyValue() throws ConfigInvalidException {
expectedEx.expect(ConfigInvalidException.class);
expectedEx.expectMessage(JGitText.get().invalidLineInConfigFile);
parse("[include]\npath=\n");
public void testIncludeEmptyValue() {
assertThrows(JGitText.get().invalidLineInConfigFile,
ConfigInvalidException.class,
() -> parse("[include]\npath=\n"));
} }


@Test @Test
} }


@Test @Test
public void testTimeUnitInvalid() throws ConfigInvalidException {
expectedEx.expect(IllegalArgumentException.class);
expectedEx
.expectMessage("Invalid time unit value: a.a=1 monttthhh");
parseTime("1 monttthhh", DAYS);
public void testTimeUnitInvalid() {
assertThrows("Invalid time unit value: a.a=1 monttthhh",
IllegalArgumentException.class,
() -> parseTime("1 monttthhh", DAYS));
} }


@Test @Test
public void testTimeUnitInvalidWithSection() throws ConfigInvalidException { public void testTimeUnitInvalidWithSection() throws ConfigInvalidException {
Config c = parse("[a \"b\"]\na=1 monttthhh\n"); Config c = parse("[a \"b\"]\na=1 monttthhh\n");
expectedEx.expect(IllegalArgumentException.class);
expectedEx.expectMessage("Invalid time unit value: a.b.a=1 monttthhh");
c.getTimeUnit("a", "b", "a", 0, DAYS);
assertThrows("Invalid time unit value: a.b.a=1 monttthhh",
IllegalArgumentException.class,
() -> c.getTimeUnit("a", "b", "a", 0, DAYS));
} }


@Test @Test
public void testTimeUnitNegative() throws ConfigInvalidException {
expectedEx.expect(IllegalArgumentException.class);
parseTime("-1", MILLISECONDS);
public void testTimeUnitNegative() {
assertThrows(IllegalArgumentException.class,
() -> parseTime("-1", MILLISECONDS));
} }


@Test @Test
} }


@Test @Test
public void testInvalidGroupHeader() throws ConfigInvalidException {
expectedEx.expect(ConfigInvalidException.class);
expectedEx.expectMessage(JGitText.get().badGroupHeader);
parse("[foo \"bar\" ]\nfoo=bar\n");
public void testInvalidGroupHeader() {
assertThrows(JGitText.get().badGroupHeader,
ConfigInvalidException.class,
() -> parse("[foo \"bar\" ]\nfoo=bar\n"));
} }


@Test @Test
} }


@Test @Test
public void testCrCharContinuation() throws ConfigInvalidException {
expectedEx.expect(ConfigInvalidException.class);
expectedEx.expectMessage("Bad escape: \\u000d");
parseEscapedValue("tr\\\rue");
public void testCrCharContinuation() {
assertThrows("Bad escape: \\u000d", ConfigInvalidException.class,
() -> parseEscapedValue("tr\\\rue"));
} }


@Test @Test
public void testCrEOFContinuation() throws ConfigInvalidException {
expectedEx.expect(ConfigInvalidException.class);
expectedEx.expectMessage("Bad escape: \\u000d");
parseEscapedValue("tr\\\r");
public void testCrEOFContinuation() {
assertThrows("Bad escape: \\u000d", ConfigInvalidException.class,
() -> parseEscapedValue("tr\\\r"));
} }


@Test @Test

+ 7
- 13
org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ObjectCheckerTest.java View File

import static org.eclipse.jgit.util.RawParseUtils.decode; import static org.eclipse.jgit.util.RawParseUtils.decode;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertSame; import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertThrows;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;


import java.text.MessageFormat; import java.text.MessageFormat;
import org.eclipse.jgit.errors.CorruptObjectException; import org.eclipse.jgit.errors.CorruptObjectException;
import org.eclipse.jgit.internal.JGitText; import org.eclipse.jgit.internal.JGitText;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.rules.ExpectedException;


public class ObjectCheckerTest { public class ObjectCheckerTest {
private static final ObjectChecker SECRET_KEY_CHECKER = new ObjectChecker() { private static final ObjectChecker SECRET_KEY_CHECKER = new ObjectChecker() {


private ObjectChecker checker; private ObjectChecker checker;


@Rule
public final ExpectedException thrown = ExpectedException.none();

@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
checker = new ObjectChecker(); checker = new ObjectChecker();
} }


@Test @Test
public void testCheckBlobCorrupt() throws CorruptObjectException {
thrown.expect(CorruptObjectException.class);
SECRET_KEY_CHECKER.check(OBJ_BLOB, encodeASCII("key = \"secret_key\""));
public void testCheckBlobCorrupt() {
assertThrows(CorruptObjectException.class, () -> SECRET_KEY_CHECKER
.check(OBJ_BLOB, encodeASCII("key = \"secret_key\"")));
} }


@Test @Test
} }


@Test @Test
public void testCheckBlobWithBlobObjectCheckerCorrupt()
throws CorruptObjectException {
thrown.expect(CorruptObjectException.class);
SECRET_KEY_BLOB_CHECKER.check(OBJ_BLOB,
encodeASCII("key = \"secret_key\""));
public void testCheckBlobWithBlobObjectCheckerCorrupt() {
assertThrows(CorruptObjectException.class, () -> SECRET_KEY_BLOB_CHECKER
.check(OBJ_BLOB, encodeASCII("key = \"secret_key\"")));
} }


@Test @Test

+ 7
- 12
org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/BundleWriterTest.java View File

import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull; import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;


import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.revwalk.RevWalk; import org.eclipse.jgit.revwalk.RevWalk;
import org.eclipse.jgit.test.resources.SampleDataRepositoryTestCase; import org.eclipse.jgit.test.resources.SampleDataRepositoryTestCase;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.rules.ExpectedException;


public class BundleWriterTest extends SampleDataRepositoryTestCase { public class BundleWriterTest extends SampleDataRepositoryTestCase {


@Rule
public ExpectedException thrown = ExpectedException.none();

@Test @Test
public void testEmptyBundleFails() throws Exception { public void testEmptyBundleFails() throws Exception {
Repository newRepo = createBareRepository(); Repository newRepo = createBareRepository();
thrown.expect(TransportException.class);
fetchFromBundle(newRepo, new byte[0]);
assertThrows(TransportException.class,
() -> fetchFromBundle(newRepo, new byte[0]));
} }


@Test @Test
public void testNonBundleFails() throws Exception { public void testNonBundleFails() throws Exception {
Repository newRepo = createBareRepository(); Repository newRepo = createBareRepository();
thrown.expect(TransportException.class);
fetchFromBundle(newRepo, "Not a bundle file".getBytes(UTF_8));
assertThrows(TransportException.class, () -> fetchFromBundle(newRepo,
"Not a bundle file".getBytes(UTF_8)));
} }


@Test @Test
public void testGarbageBundleFails() throws Exception { public void testGarbageBundleFails() throws Exception {
Repository newRepo = createBareRepository(); Repository newRepo = createBareRepository();
thrown.expect(TransportException.class);
fetchFromBundle(newRepo,
assertThrows(TransportException.class, () -> fetchFromBundle(newRepo,
(TransportBundle.V2_BUNDLE_SIGNATURE + '\n' + "Garbage") (TransportBundle.V2_BUNDLE_SIGNATURE + '\n' + "Garbage")
.getBytes(UTF_8));
.getBytes(UTF_8)));
} }


@Test @Test

+ 5
- 9
org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/ProtocolV2ParserTest.java View File

import static org.hamcrest.Matchers.hasItems; import static org.hamcrest.Matchers.hasItems;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;


import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import org.eclipse.jgit.lib.Config; import org.eclipse.jgit.lib.Config;
import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.revwalk.RevCommit;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.rules.ExpectedException;


public class ProtocolV2ParserTest { public class ProtocolV2ParserTest {


@Rule
public ExpectedException thrown = ExpectedException.none();

private TestRepository<InMemoryRepository> testRepo; private TestRepository<InMemoryRepository> testRepo;


@Before @Before
ProtocolV2Parser parser = new ProtocolV2Parser( ProtocolV2Parser parser = new ProtocolV2Parser(
ConfigBuilder.start().allowFilter().done()); ConfigBuilder.start().allowFilter().done());


thrown.expect(PackProtocolException.class);
parser.parseFetchRequest(pckIn);
assertThrows(PackProtocolException.class,
() -> parser.parseFetchRequest(pckIn));
} }


@Test @Test
ProtocolV2Parser parser = new ProtocolV2Parser( ProtocolV2Parser parser = new ProtocolV2Parser(
ConfigBuilder.getDefault()); ConfigBuilder.getDefault());


thrown.expect(PackProtocolException.class);
parser.parseFetchRequest(pckIn);
assertThrows(PackProtocolException.class,
() -> parser.parseFetchRequest(pckIn));
} }


@Test @Test

+ 106
- 100
org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/RequestValidatorTestCase.java View File

*/ */
package org.eclipse.jgit.transport; package org.eclipse.jgit.transport;


import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.catchThrowableOfType;

import java.io.IOException; import java.io.IOException;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;


import org.eclipse.jgit.errors.PackProtocolException;
import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
import org.eclipse.jgit.errors.TransportException; import org.eclipse.jgit.errors.TransportException;
import org.eclipse.jgit.internal.storage.dfs.DfsGarbageCollector; import org.eclipse.jgit.internal.storage.dfs.DfsGarbageCollector;
import org.eclipse.jgit.internal.storage.dfs.DfsRepositoryDescription; import org.eclipse.jgit.internal.storage.dfs.DfsRepositoryDescription;
import org.eclipse.jgit.revwalk.RevBlob; import org.eclipse.jgit.revwalk.RevBlob;
import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.transport.UploadPack.RequestValidator; import org.eclipse.jgit.transport.UploadPack.RequestValidator;
import org.hamcrest.Matchers;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.rules.ExpectedException;


public abstract class RequestValidatorTestCase { public abstract class RequestValidatorTestCase {


@Rule
public ExpectedException thrown = ExpectedException.none();

private RevCommit reachableCommit; private RevCommit reachableCommit;


private RevCommit tipAdvertisedCommit; private RevCommit tipAdvertisedCommit;
protected abstract boolean isUnreachableBlobValid(); protected abstract boolean isUnreachableBlobValid();


@Test @Test
public void validateReachableCommitWithBitmaps()
throws PackProtocolException, IOException {
public void validateReachableCommitWithBitmaps() throws Throwable {
ThrowingCallable c = () -> createValidator().checkWants(
getUploadPack(getRepoWithBitmaps()),
Arrays.asList(reachableCommit));
if (!isReachableCommitValid()) { if (!isReachableCommitValid()) {
thrown.expect(TransportException.class);
thrown.expectMessage(Matchers
.containsString(
"want " + reachableCommit.name() + " not valid"));

assertTransportException(c,
"want " + reachableCommit.name() + " not valid");
return;
} }
createValidator().checkWants(getUploadPack(getRepoWithBitmaps()),
Arrays.asList(reachableCommit));
c.call();
} }


@Test @Test
public void validateReachableCommitWithoutBitmaps()
throws PackProtocolException, IOException {
public void validateReachableCommitWithoutBitmaps() throws Throwable {
ThrowingCallable c = () -> createValidator().checkWants(
getUploadPack(getRepoWithoutBitmaps()),
Arrays.asList(reachableCommit));
if (!isReachableCommitValid()) { if (!isReachableCommitValid()) {
thrown.expect(TransportException.class);
thrown.expectMessage(Matchers.containsString(
"want " + reachableCommit.name() + " not valid"));

assertTransportException(c,
"want " + reachableCommit.name() + " not valid");
return;
} }
createValidator().checkWants(getUploadPack(getRepoWithoutBitmaps()),
Arrays.asList(reachableCommit));
c.call();
} }


@Test @Test
public void validateAdvertisedTipWithBitmaps()
throws PackProtocolException, IOException {
public void validateAdvertisedTipWithBitmaps() throws Throwable {
ThrowingCallable c = () -> createValidator().checkWants(
getUploadPack(getRepoWithBitmaps()),
Arrays.asList(tipAdvertisedCommit));
if (!isAdvertisedTipValid()) { if (!isAdvertisedTipValid()) {
thrown.expect(TransportException.class);
thrown.expectMessage(Matchers.containsString(
"want " + tipAdvertisedCommit.name() + " not valid"));

assertTransportException(c,
"want " + tipAdvertisedCommit.name() + " not valid");
return;
} }
createValidator().checkWants(getUploadPack(getRepoWithBitmaps()),
Arrays.asList(tipAdvertisedCommit));
c.call();
} }


@Test @Test
public void validateAdvertisedTipWithoutBitmaps()
throws PackProtocolException, IOException {
public void validateAdvertisedTipWithoutBitmaps() throws Throwable {
ThrowingCallable c = () -> createValidator().checkWants(
getUploadPack(getRepoWithoutBitmaps()),
Arrays.asList(tipAdvertisedCommit));
if (!isAdvertisedTipValid()) { if (!isAdvertisedTipValid()) {
thrown.expect(TransportException.class);
thrown.expectMessage(Matchers.containsString(
"want " + tipAdvertisedCommit.name() + " not valid"));

assertTransportException(c,
"want " + tipAdvertisedCommit.name() + " not valid");
return;
} }
createValidator().checkWants(getUploadPack(getRepoWithoutBitmaps()),
Arrays.asList(tipAdvertisedCommit));
c.call();
} }


@Test @Test
public void validateUnadvertisedTipWithBitmaps()
throws PackProtocolException, IOException {
public void validateUnadvertisedTipWithBitmaps() throws Throwable {
ThrowingCallable c = () -> createValidator().checkWants(
getUploadPack(getRepoWithBitmaps()),
Arrays.asList(tipUnadvertisedCommit));
if (!isUnadvertisedTipCommitValid()) { if (!isUnadvertisedTipCommitValid()) {
thrown.expect(TransportException.class);
thrown.expectMessage(Matchers.containsString(
"want " + tipUnadvertisedCommit.name() + " not valid"));

assertTransportException(c,
"want " + tipUnadvertisedCommit.name() + " not valid");
return;
} }
createValidator().checkWants(getUploadPack(getRepoWithBitmaps()),
Arrays.asList(tipUnadvertisedCommit));
c.call();
} }


@Test @Test
public void validateUnadvertisedTipWithoutBitmaps()
throws PackProtocolException, IOException {
public void validateUnadvertisedTipWithoutBitmaps() throws Throwable {
ThrowingCallable c = () -> createValidator().checkWants(
getUploadPack(getRepoWithoutBitmaps()),
Arrays.asList(tipUnadvertisedCommit));
if (!isUnadvertisedTipCommitValid()) { if (!isUnadvertisedTipCommitValid()) {
thrown.expect(TransportException.class);
thrown.expectMessage(Matchers.containsString(
"want " + tipUnadvertisedCommit.name() + " not valid"));

assertTransportException(c,
"want " + tipUnadvertisedCommit.name() + " not valid");
return;
} }
createValidator().checkWants(getUploadPack(getRepoWithoutBitmaps()),
Arrays.asList(tipUnadvertisedCommit));
c.call();
} }


@Test @Test
public void validateUnreachableCommitWithBitmaps()
throws PackProtocolException, IOException {
public void validateUnreachableCommitWithBitmaps() throws Throwable {
ThrowingCallable c = () -> createValidator().checkWants(
getUploadPack(getRepoWithBitmaps()),
Arrays.asList(unreachableCommit));
if (!isUnreachableCommitValid()) { if (!isUnreachableCommitValid()) {
thrown.expect(TransportException.class);
thrown.expectMessage(Matchers.containsString(
"want " + unreachableCommit.name() + " not valid"));

assertTransportException(c,
"want " + unreachableCommit.name() + " not valid");
return;
} }
createValidator().checkWants(getUploadPack(getRepoWithBitmaps()),
Arrays.asList(unreachableCommit));
c.call();
} }


@Test @Test
public void validateUnreachableCommitWithoutBitmaps()
throws PackProtocolException, IOException {
public void validateUnreachableCommitWithoutBitmaps() throws Throwable {
ThrowingCallable c = () -> createValidator().checkWants(
getUploadPack(getRepoWithoutBitmaps()),
Arrays.asList(unreachableCommit));
if (!isUnreachableCommitValid()) { if (!isUnreachableCommitValid()) {
thrown.expect(TransportException.class);
thrown.expectMessage(Matchers.containsString(
"want " + unreachableCommit.name() + " not valid"));

assertTransportException(c,
"want " + unreachableCommit.name() + " not valid");
return;
} }
createValidator().checkWants(getUploadPack(getRepoWithoutBitmaps()),
Arrays.asList(unreachableCommit));
c.call();
} }


@Test @Test
public void validateReachableBlobWithBitmaps()
throws PackProtocolException, IOException {
public void validateReachableBlobWithBitmaps() throws Throwable {
ThrowingCallable c = () -> createValidator().checkWants(
getUploadPack(getRepoWithBitmaps()),
Arrays.asList(reachableBlob));
if (!isReachableBlobValid_withBitmaps()) { if (!isReachableBlobValid_withBitmaps()) {
thrown.expect(TransportException.class);
thrown.expectMessage(Matchers.containsString(
"want " + reachableBlob.name() + " not valid"));
assertTransportException(c,
"want " + reachableBlob.name() + " not valid");
return;
} }
createValidator().checkWants(getUploadPack(getRepoWithBitmaps()),
Arrays.asList(reachableBlob));
c.call();
} }


@Test @Test
public void validateReachableBlobWithoutBitmaps()
throws PackProtocolException, IOException {
public void validateReachableBlobWithoutBitmaps() throws Throwable {
ThrowingCallable c = () -> createValidator().checkWants(
getUploadPack(getRepoWithoutBitmaps()),
Arrays.asList(reachableBlob));
if (!isReachableBlobValid_withoutBitmaps()) { if (!isReachableBlobValid_withoutBitmaps()) {
thrown.expect(TransportException.class);
thrown.expectMessage(Matchers.containsString(
"want " + reachableBlob.name() + " not valid"));
assertTransportException(c,
"want " + reachableBlob.name() + " not valid");
return;
} }
createValidator().checkWants(getUploadPack(getRepoWithoutBitmaps()),
Arrays.asList(reachableBlob));
c.call();
} }


@Test @Test
public void validateUnreachableBlobWithBitmaps()
throws PackProtocolException, IOException {
public void validateUnreachableBlobWithBitmaps() throws Throwable {
ThrowingCallable c = () -> createValidator().checkWants(
getUploadPack(getRepoWithBitmaps()),
Arrays.asList(unreachableBlob));
if (!isUnreachableBlobValid()) { if (!isUnreachableBlobValid()) {
thrown.expect(TransportException.class);
thrown.expectMessage(Matchers.containsString(
"want " + unreachableBlob.name() + " not valid"));
assertTransportException(c,
"want " + unreachableBlob.name() + " not valid");
return;
} }
createValidator().checkWants(getUploadPack(getRepoWithBitmaps()),
Arrays.asList(unreachableBlob));
c.call();
} }


@Test @Test
public void validateUnreachableBlobWithoutBitmaps()
throws PackProtocolException, IOException {
public void validateUnreachableBlobWithoutBitmaps() throws Throwable {
ThrowingCallable c = () -> createValidator().checkWants(
getUploadPack(getRepoWithoutBitmaps()),
Arrays.asList(unreachableBlob));
if (!isUnreachableBlobValid()) { if (!isUnreachableBlobValid()) {
thrown.expect(TransportException.class);
thrown.expectMessage(Matchers.containsString(
"want " + unreachableBlob.name() + " not valid"));
assertTransportException(c,
"want " + unreachableBlob.name() + " not valid");
return;
} }
createValidator().checkWants(getUploadPack(getRepoWithoutBitmaps()),
Arrays.asList(unreachableBlob));
c.call();
}

private void assertTransportException(ThrowingCallable c,
String messageContent) throws AssertionError {
assertThat(catchThrowableOfType(c, TransportException.class))
.hasMessageContaining(messageContent);
} }


private UploadPack getUploadPack(Repository repository) throws IOException { private UploadPack getUploadPack(Repository repository) throws IOException {

+ 0
- 5
org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/UploadPackReachabilityTest.java View File

import org.eclipse.jgit.transport.resolver.UploadPackFactory; import org.eclipse.jgit.transport.resolver.UploadPackFactory;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.rules.ExpectedException;


/** /**
* Test combinations of: * Test combinations of:
*/ */
public class UploadPackReachabilityTest { public class UploadPackReachabilityTest {


@Rule
public ExpectedException thrown = ExpectedException.none();

private URIish uri; private URIish uri;


private TestProtocol<Object> testProtocol; private TestProtocol<Object> testProtocol;

+ 3
- 7
org.eclipse.jgit.test/tst/org/eclipse/jgit/util/RawParseUtils_LineMapTest.java View File

import static java.nio.charset.StandardCharsets.ISO_8859_1; import static java.nio.charset.StandardCharsets.ISO_8859_1;
import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThrows;


import org.eclipse.jgit.errors.BinaryBlobException; import org.eclipse.jgit.errors.BinaryBlobException;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.rules.ExpectedException;


public class RawParseUtils_LineMapTest { public class RawParseUtils_LineMapTest {
@Rule
public ExpectedException exception = ExpectedException.none();



@Test @Test
public void testEmpty() throws Exception { public void testEmpty() throws Exception {
@Test @Test
public void testLineMapOrBinary() throws Exception { public void testLineMapOrBinary() throws Exception {
final byte[] buf = "xxxfoo\nb\0ar".getBytes(ISO_8859_1); final byte[] buf = "xxxfoo\nb\0ar".getBytes(ISO_8859_1);
exception.expect(BinaryBlobException.class);
RawParseUtils.lineMapOrBinary(buf, 3, buf.length);
assertThrows(BinaryBlobException.class,
() -> RawParseUtils.lineMapOrBinary(buf, 3, buf.length));
} }


@Test @Test

+ 5
- 0
pom.xml View File

<version>${bouncycastle-version}</version> <version>${bouncycastle-version}</version>
</dependency> </dependency>


<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.14.0</version>
</dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>



Loading…
Cancel
Save