123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- package org.eclipse.jgit.transport;
-
- import static org.junit.Assert.assertFalse;
- import static org.junit.Assert.assertTrue;
-
- import java.util.Collections;
- import org.eclipse.jgit.internal.storage.dfs.DfsRepositoryDescription;
- import org.eclipse.jgit.internal.storage.dfs.InMemoryRepository;
- import org.eclipse.jgit.junit.TestRepository;
- import org.eclipse.jgit.lib.NullProgressMonitor;
- import org.eclipse.jgit.lib.Repository;
- import org.eclipse.jgit.revwalk.RevCommit;
- import org.eclipse.jgit.transport.UploadPack.RequestPolicy;
- import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException;
- import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException;
- import org.eclipse.jgit.transport.resolver.UploadPackFactory;
- import org.junit.After;
- import org.junit.Before;
- import org.junit.Test;
-
- /**
- * Tests for server upload-pack utilities.
- */
- public class UploadPackTest {
- private URIish uri;
-
- private TestProtocol<Object> testProtocol;
-
- private Object ctx = new Object();
-
- private InMemoryRepository server;
-
- private InMemoryRepository client;
-
- private RevCommit commit0;
-
- private RevCommit commit1;
-
- private RevCommit tip;
-
- @Before
- public void setUp() throws Exception {
- server = newRepo("server");
- client = newRepo("client");
-
- TestRepository<InMemoryRepository> remote =
- new TestRepository<>(server);
- commit0 = remote.commit().message("0").create();
- commit1 = remote.commit().message("1").parent(commit0).create();
- tip = remote.commit().message("2").parent(commit1).create();
- remote.update("master", tip);
- }
-
- @After
- public void tearDown() {
- Transport.unregister(testProtocol);
- }
-
- private static InMemoryRepository newRepo(String name) {
- return new InMemoryRepository(new DfsRepositoryDescription(name));
- }
-
- @Test
- public void testFetchParentOfShallowCommit() throws Exception {
- testProtocol = new TestProtocol<>(
- new UploadPackFactory<Object>() {
- @Override
- public UploadPack create(Object req, Repository db)
- throws ServiceNotEnabledException,
- ServiceNotAuthorizedException {
- UploadPack up = new UploadPack(db);
- up.setRequestPolicy(RequestPolicy.REACHABLE_COMMIT);
- // assume client has a shallow commit
- up.getRevWalk().assumeShallow(
- Collections.singleton(commit1.getId()));
- return up;
- }
- }, null);
- uri = testProtocol.register(ctx, server);
-
- assertFalse(client.hasObject(commit0.toObjectId()));
-
- // Fetch of the parent of the shallow commit
- try (Transport tn = testProtocol.open(uri, client, "server")) {
- tn.fetch(NullProgressMonitor.INSTANCE,
- Collections.singletonList(new RefSpec(commit0.name())));
- assertTrue(client.hasObject(commit0.toObjectId()));
- }
- }
- }
|