View Javadoc

1   /*
2    * LICENSE
3    *
4    * "THE BEER-WARE LICENSE" (Revision 42):
5    * "Sven Strittmatter" <ich@weltraumschaf.de> wrote this file.
6    * As long as you retain this notice you can do whatever you want with
7    * this stuff. If we meet some day, and you think this stuff is worth it,
8    * you can buy me a beer in return.
9    */
10  package org.jenkinsci.plugins.darcs;
11  
12  import junit.framework.TestCase;
13  import java.util.List;
14  import java.util.ArrayList;
15  import hudson.Util;
16  
17  /**
18   *
19   * @author Sven Strittmatter <ich@weltraumschaf.de>
20   */
21  public class DarcsChangeSetListTest extends TestCase {
22  
23      public DarcsChangeSetListTest(String name) {
24          super(name);
25      }
26  
27      protected static DarcsChangeSet createChangeSet(String suffix) {
28          DarcsChangeSet cs = new DarcsChangeSet();
29          cs.setAuthor("author" + suffix);
30          cs.setDate("date" + suffix);
31          cs.setLocalDate("local_date" + suffix);
32          cs.setHash("hash" + suffix);
33          cs.setInverted(false);
34  
35          return cs;
36      }
37  
38      public void testIsEmpty() {
39          DarcsChangeSetList sut;
40  
41          sut = new DarcsChangeSetList(null, new ArrayList<DarcsChangeSet>());
42          assertTrue(sut.isEmptySet());
43          assertEquals(0, sut.size());
44  
45          List<DarcsChangeSet> list = new ArrayList<DarcsChangeSet>();
46          list.add(createChangeSet("1"));
47          list.add(createChangeSet("2"));
48          list.add(createChangeSet("3"));
49          sut = new DarcsChangeSetList(list);
50          assertFalse(sut.isEmptySet());
51          assertEquals(3, sut.size());
52      }
53  
54      public void testDigest() {
55          DarcsChangeSetList sut;
56          sut = new DarcsChangeSetList(new ArrayList<DarcsChangeSet>());
57          assertEquals(Util.getDigestOf(""), sut.digest());
58          
59          DarcsChangeSet cs1 = createChangeSet("1");
60          DarcsChangeSet cs2 = createChangeSet("2");
61          DarcsChangeSet cs3 = createChangeSet("3");
62  
63          List<DarcsChangeSet> list = new ArrayList<DarcsChangeSet>();
64          list.add(cs1);
65          list.add(cs2);
66          list.add(cs3);
67          sut = new DarcsChangeSetList(list);
68          assertEquals(Util.getDigestOf(cs1.getHash() + cs2.getHash() + cs3.getHash()),
69                  sut.digest());
70      }
71  
72      public void testGetKind() {
73          DarcsChangeSetList sut = new DarcsChangeSetList(new ArrayList<DarcsChangeSet>());
74          assertEquals("darcs", sut.getKind());
75      }
76  
77      public void testEquals() {
78          DarcsChangeSet cs1 = createChangeSet("1");
79          DarcsChangeSet cs2 = createChangeSet("2");
80          DarcsChangeSet cs3 = createChangeSet("3");
81          List<DarcsChangeSet> list1 = new ArrayList<DarcsChangeSet>(),
82                               list2 = new ArrayList<DarcsChangeSet>(),
83                               list3 = new ArrayList<DarcsChangeSet>();
84          list1.add(cs1);
85          list1.add(cs2);
86          DarcsChangeSetList sut1 = new DarcsChangeSetList(list1);
87          list2.add(cs1);
88          list2.add(cs2);
89          DarcsChangeSetList sut2 = new DarcsChangeSetList(list2);
90          list3.add(cs1);
91          list3.add(cs2);
92          list3.add(cs3);
93          DarcsChangeSetList sut3 = new DarcsChangeSetList(list3);
94  
95          // equals to itself
96          assertTrue(sut1.equals(sut1));
97          assertTrue(sut2.equals(sut2));
98          assertTrue(list3.equals(list3));
99          // list1 and list2 are euqal
100         assertTrue(sut1.equals(sut2));
101         assertTrue(sut2.equals(sut1));
102         // list3 has one more patch
103         assertFalse(sut1.equals(sut3));
104         assertFalse(sut2.equals(sut3));
105         // wron types
106         assertFalse(sut1.equals(cs3));
107     }
108 }