View Javadoc

1   package com.aragost.javahg.commands;
2   
3   import static com.aragost.javahg.Phase.DRAFT;
4   import static com.aragost.javahg.Phase.PUBLIC;
5   import static com.aragost.javahg.Phase.SECRET;
6   
7   import java.io.IOException;
8   
9   import junit.framework.Assert;
10  
11  import com.aragost.javahg.BaseRepository;
12  import com.aragost.javahg.Changeset;
13  import com.aragost.javahg.Repository;
14  import com.aragost.javahg.UnknownCommandException;
15  import com.aragost.javahg.test.AbstractTestCase;
16  
17  import org.junit.Assume;
18  import org.junit.Test;
19  
20  public class PhaseCommandTest extends AbstractTestCase {
21  
22      private boolean isPhasesSupported() {
23          BaseRepository repo = getTestRepository();
24          try {
25              PhaseCommand.on(repo).rev(Changeset.NULL_ID).execute();
26              return true;
27          } catch (UnknownCommandException e) {
28              return false;
29          }
30      }
31  
32      @Test
33      public void test() throws IOException {
34          Assume.assumeTrue(isPhasesSupported());
35          BaseRepository repo = getTestRepository();
36          Changeset cs1 = createChangeset();
37          Changeset cs2 = createChangeset();
38          Assert.assertEquals(DRAFT, cs1.phase());
39          Assert.assertEquals(DRAFT, cs2.phase());
40          PhaseCommand cmd = PhaseCommand.on(repo).pub().rev(cs2.getNode());
41          cmd.execute();
42          Assert.assertEquals(PUBLIC, cs1.phase());
43          Assert.assertEquals(PUBLIC, cs2.phase());
44  
45          cmd = PhaseCommand.on(repo).secret().rev(cs2.getNode());
46          Assert.assertFalse(cmd.execute());
47          Assert.assertEquals(PUBLIC, cs1.phase());
48          Assert.assertEquals(PUBLIC, cs2.phase());
49  
50          cmd = PhaseCommand.on(repo).secret().force().rev(cs1.getNode());
51          Assert.assertTrue(cmd.execute());
52          Assert.assertEquals(SECRET, cs1.phase());
53          Assert.assertEquals(SECRET, cs2.phase());
54          
55          cmd = PhaseCommand.on(repo).pub().force().rev(cs1.getNode());
56          cmd.execute();
57          Assert.assertEquals(PUBLIC, cs1.phase());
58          Assert.assertEquals(SECRET, cs2.phase());
59      }
60  
61      @Test
62      public void testPhaseMakesNoChanges() throws IOException {
63          Assume.assumeTrue(isPhasesSupported());
64          BaseRepository repo = getTestRepository();
65          Changeset cs = createChangeset();
66          PhaseCommand cmd = PhaseCommand.on(repo).draft().rev(cs.getNode());
67          Assert.assertFalse(cmd.execute());
68      }
69      
70      @Test
71      public void testPhasesWhenPhasesNotSupported() throws IOException {
72          Assume.assumeTrue(!isPhasesSupported());
73          Changeset cs = createChangeset();
74          Assert.assertNull(cs.phase());        
75      }
76  
77      @Test
78      public void testPhasesUnknownRev() throws IOException {
79          Assume.assumeTrue(isPhasesSupported());
80  
81        createChangeset();
82        
83        Repository repo = getTestRepository();
84        
85        try
86        {
87           repo.phases("abcdef124");
88        }
89        catch (ExecutionException e)
90        {
91        }
92        
93        try
94        {
95           repo.phases("abcdef124");
96        }
97        catch (ExecutionException e)
98        {
99        }
100       
101       try
102       {
103          repo.phases("abcdef124");
104       }
105       catch (ExecutionException e)
106       {
107       }
108       
109 
110       try
111       {
112          repo.phases("abcdef124");
113       }
114       catch (ExecutionException e)
115       {
116       }
117     }
118 }