1 package com.aragost.javahg.commands;
2
3 import java.io.IOException;
4 import java.util.List;
5
6 import org.junit.Assert;
7 import org.junit.Test;
8
9 import com.aragost.javahg.Changeset;
10 import com.aragost.javahg.Repository;
11 import com.aragost.javahg.test.AbstractTestCase;
12
13 public class ParentsCommandTest extends AbstractTestCase {
14
15 @Test
16 public void test() throws IOException {
17 Repository repo = getTestRepository();
18 ParentsCommand cmd = ParentsCommand.on(repo);
19 List<Changeset> parents = cmd.execute();
20 Assert.assertEquals(0, parents.size());
21
22 writeFile("a");
23 Changeset csRoot = commit();
24 parents = cmd.execute();
25 Assert.assertEquals(1, parents.size());
26 Assert.assertEquals(csRoot, parents.get(0));
27
28 writeFile("b");
29 Changeset csB = commit();
30 parents = cmd.execute();
31 Assert.assertEquals(1, parents.size());
32 Assert.assertEquals(csB, parents.get(0));
33
34 update(csRoot);
35 writeFile("c");
36 Changeset csC = commit();
37 parents = cmd.execute();
38 Assert.assertEquals(1, parents.size());
39 Assert.assertEquals(csC, parents.get(0));
40
41 MergeCommand.on(repo).execute(null);
42 parents = cmd.execute();
43 Assert.assertEquals(2, parents.size());
44 Assert.assertEquals(csC, parents.get(0));
45 Assert.assertEquals(csB, parents.get(1));
46
47 writeFile("a");
48 Changeset csA2 = commit();
49 parents = cmd.execute();
50 Assert.assertEquals(1, parents.size());
51 Assert.assertEquals(csA2, parents.get(0));
52
53 writeFile("a");
54 Changeset csA3 = commit();
55 parents = cmd.execute();
56 Assert.assertEquals(1, parents.size());
57 Assert.assertEquals(csA3, parents.get(0));
58
59 parents = cmd.execute("a");
60 Assert.assertEquals(1, parents.size());
61 Assert.assertEquals(csA3, parents.get(0));
62
63 parents = cmd.execute("b");
64 Assert.assertEquals(1, parents.size());
65 Assert.assertEquals(csB, parents.get(0));
66
67 parents = cmd.rev(csA3.getNode()).execute("a");
68 Assert.assertEquals(1, parents.size());
69 Assert.assertEquals(csA2, parents.get(0));
70
71
72 parents = cmd.rev(csA2.getNode()).execute("a");
73 Assert.assertEquals(2, parents.size());
74 Assert.assertEquals(csRoot, parents.get(0));
75 Assert.assertEquals(csRoot, parents.get(1));
76 }
77
78 }