Fix ListBranchesTest

This test was broken when symbolic references and their targets were
no longer permitted to be deleted.

Change-Id: I20249341bdcf9f9f65c513294e0177182a6e46ab
Signed-off-by: Shawn O. Pearce <sop@google.com>
This commit is contained in:
Shawn O. Pearce
2011-04-08 14:04:50 -04:00
parent 6440b0d65c
commit 39f4f56316

View File

@@ -24,6 +24,7 @@ import static org.eclipse.jgit.lib.Constants.HEAD;
import static org.eclipse.jgit.lib.Constants.R_HEADS; import static org.eclipse.jgit.lib.Constants.R_HEADS;
import static org.eclipse.jgit.lib.Ref.Storage.LOOSE; import static org.eclipse.jgit.lib.Ref.Storage.LOOSE;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertSame; import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
@@ -52,9 +53,11 @@ import org.junit.Test;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
public class ListBranchesTest extends LocalDiskRepositoryTestCase { public class ListBranchesTest extends LocalDiskRepositoryTestCase {
static { static {
@@ -146,8 +149,9 @@ public class ListBranchesTest extends LocalDiskRepositoryTestCase {
} }
} }
Set<String> targets = targets(refs);
for (Ref ref : refs.values()) { for (Ref ref : refs.values()) {
assumeVisible(ref, true); assumeVisible(ref, true, targets);
} }
mockDb.close(); mockDb.close();
@@ -164,11 +168,21 @@ public class ListBranchesTest extends LocalDiskRepositoryTestCase {
return r; return r;
} }
private void assumeVisible(Ref ref, boolean visible) { private Set<String> targets(Map<String, Ref> refs) {
Set<String> targets = new HashSet<String>();
for (Ref ref : refs.values()) {
if (ref.isSymbolic()) {
targets.add(ref.getLeaf().getName());
}
}
return targets;
}
private void assumeVisible(Ref ref, boolean visible, Set<String> targets) {
RefControl rc = createStrictMock(RefControl.class); RefControl rc = createStrictMock(RefControl.class);
refMocks.add(rc); refMocks.add(rc);
expect(rc.isVisible()).andReturn(visible); expect(rc.isVisible()).andReturn(visible);
if (visible) { if (visible && !ref.isSymbolic() && !targets.contains(ref.getName())) {
expect(rc.canDelete()).andReturn(true); expect(rc.canDelete()).andReturn(true);
} }
@@ -252,6 +266,7 @@ public class ListBranchesTest extends LocalDiskRepositoryTestCase {
assertNotNull(b.getRevision()); assertNotNull(b.getRevision());
assertEquals("master", b.getRevision().get()); assertEquals("master", b.getRevision().get());
assertFalse(b.getCanDelete());
b = r.getBranches().get(1); b = r.getBranches().get(1);
assertNotNull(b); assertNotNull(b);
@@ -265,6 +280,7 @@ public class ListBranchesTest extends LocalDiskRepositoryTestCase {
assertNotNull(b.getRevision()); assertNotNull(b.getRevision());
assertEquals(idA.name(), b.getRevision().get()); assertEquals(idA.name(), b.getRevision().get());
assertTrue(b.getCanDelete());
} }
@Test @Test
@@ -279,7 +295,7 @@ public class ListBranchesTest extends LocalDiskRepositoryTestCase {
expect(grm.openRepository(eq(name))).andReturn(mockDb); expect(grm.openRepository(eq(name))).andReturn(mockDb);
expect(mockDb.getAllRefs()).andReturn(u); expect(mockDb.getAllRefs()).andReturn(u);
for (Ref ref : u.values()) { for (Ref ref : u.values()) {
assumeVisible(ref, true); assumeVisible(ref, true, targets(u));
} }
expect(pc.canAddRefs()).andReturn(true); expect(pc.canAddRefs()).andReturn(true);
mockDb.close(); mockDb.close();
@@ -307,8 +323,8 @@ public class ListBranchesTest extends LocalDiskRepositoryTestCase {
validate().andReturn(pc); validate().andReturn(pc);
expect(grm.openRepository(eq(name))).andReturn(mockDb); expect(grm.openRepository(eq(name))).andReturn(mockDb);
expect(mockDb.getAllRefs()).andReturn(u); expect(mockDb.getAllRefs()).andReturn(u);
assumeVisible(bar, false); assumeVisible(bar, false, targets(u));
assumeVisible(bar, false); assumeVisible(bar, false, targets(u));
expect(pc.canAddRefs()).andReturn(true); expect(pc.canAddRefs()).andReturn(true);
mockDb.close(); mockDb.close();
expectLastCall(); expectLastCall();
@@ -335,9 +351,9 @@ public class ListBranchesTest extends LocalDiskRepositoryTestCase {
validate().andReturn(pc); validate().andReturn(pc);
expect(grm.openRepository(eq(name))).andReturn(mockDb); expect(grm.openRepository(eq(name))).andReturn(mockDb);
expect(mockDb.getAllRefs()).andReturn(u); expect(mockDb.getAllRefs()).andReturn(u);
assumeVisible(bar, true); assumeVisible(bar, true, targets(u));
assumeVisible(bar, true); assumeVisible(bar, true, targets(u));
assumeVisible(foo, false); assumeVisible(foo, false, targets(u));
expect(pc.canAddRefs()).andReturn(true); expect(pc.canAddRefs()).andReturn(true);
mockDb.close(); mockDb.close();
expectLastCall(); expectLastCall();
@@ -348,7 +364,11 @@ public class ListBranchesTest extends LocalDiskRepositoryTestCase {
assertNotNull(r); assertNotNull(r);
assertEquals(2, r.getBranches().size()); assertEquals(2, r.getBranches().size());
assertEquals(HEAD, r.getBranches().get(0).getShortName()); assertEquals(HEAD, r.getBranches().get(0).getShortName());
assertFalse(r.getBranches().get(0).getCanDelete());
assertEquals("bar", r.getBranches().get(1).getShortName()); assertEquals("bar", r.getBranches().get(1).getShortName());
assertFalse(r.getBranches().get(1).getCanDelete());
} }
} }