View Javadoc

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          // Diamond shape give two parents with the same node
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  }