comparison test/org/tmatesoft/hg/test/TestBranches.java @ 315:8952f89be195

Allow to query specific branch heads if they are closed
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Wed, 28 Sep 2011 12:18:21 +0200
parents 962f78aac342
children
comparison
equal deleted inserted replaced
314:fb74133d2025 315:8952f89be195
16 */ 16 */
17 package org.tmatesoft.hg.test; 17 package org.tmatesoft.hg.test;
18 18
19 import static org.junit.Assert.*; 19 import static org.junit.Assert.*;
20 20
21 import org.junit.Assert;
22 import org.junit.Test; 21 import org.junit.Test;
22 import org.tmatesoft.hg.core.Nodeid;
23 import org.tmatesoft.hg.repo.HgBranches; 23 import org.tmatesoft.hg.repo.HgBranches;
24 import org.tmatesoft.hg.repo.HgBranches.BranchInfo; 24 import org.tmatesoft.hg.repo.HgBranches.BranchInfo;
25 import org.tmatesoft.hg.repo.HgRepository; 25 import org.tmatesoft.hg.repo.HgRepository;
26 26
27 /** 27 /**
28 * 28 * <pre>
29 * branches-1/create.bat:
30 * branch1 to have fork, two heads, both closed -- shall be recognized as closed
31 * branch2 to have fork, two heads, one closed -- shall be recognized as active
32 * branch3 no active head -- shall be recognized as inactive
33 * branch4 to fork, with 1 inactive and 1 active heads
34 * branch5 to be closed and reopened
35 * </pre>
36 *
29 * @author Artem Tikhomirov 37 * @author Artem Tikhomirov
30 * @author TMate Software Ltd. 38 * @author TMate Software Ltd.
31 */ 39 */
32 public class TestBranches { 40 public class TestBranches {
33 41
67 assertNotNull(b5); 75 assertNotNull(b5);
68 assertFalse(b5.isClosed()); 76 assertFalse(b5.isClosed());
69 assertEquals(1, b5.getHeads().size()); 77 assertEquals(1, b5.getHeads().size());
70 assertEquals("9cb6ad32b9074021356c38050e2aab6addba4393", b5.getHeads().get(0).toString()); 78 assertEquals("9cb6ad32b9074021356c38050e2aab6addba4393", b5.getHeads().get(0).toString());
71 } 79 }
80
81 @Test
82 public void testBranchInfoClosedHeads() throws Exception{
83 HgRepository repo = Configuration.get().find("branches-1");
84 HgBranches branches = repo.getBranches();
85 // branch1 - two closed heads
86 BranchInfo b1 = branches.getBranch("branch1");
87 assertTrue(b1.isClosed(b1.getHeads().get(0)));
88 assertTrue(b1.isClosed(b1.getHeads().get(1)));
89 try {
90 b1.isClosed(Nodeid.fromAscii("9cb6ad32b9074021356c38050e2aab6addba4393"));
91 fail("Revision that doesn't belong to heads of the branch shall not be handled");
92 } catch (IllegalArgumentException ex) {
93 // good
94 }
95 //
96 // branch2, one closed head
97 BranchInfo b2 = branches.getBranch("branch2");
98 assertFalse(b2.isClosed(b2.getHeads().get(0)));
99 assertTrue(b2.isClosed(b2.getHeads().get(1)));
100 //
101 // branch5, closed and reopened, 1 open head
102 BranchInfo b5 = branches.getBranch("branch5");
103 for (Nodeid h : b5.getHeads()) {
104 assertFalse(b5.isClosed(h));
105 }
106 }
72 } 107 }