1   /*
2       StatCvs - CVS statistics generation 
3       Copyright (C) 2002  Lukasz Pekacki <lukasz@pekacki.de>
4       http://statcvs.sf.net/
5       
6       This library is free software; you can redistribute it and/or
7       modify it under the terms of the GNU Lesser General Public
8       License as published by the Free Software Foundation; either
9       version 2.1 of the License, or (at your option) any later version.
10  
11      This library is distributed in the hope that it will be useful,
12      but WITHOUT ANY WARRANTY; without even the implied warranty of
13      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14      Lesser General Public License for more details.
15  
16      You should have received a copy of the GNU Lesser General Public
17      License along with this library; if not, write to the Free Software
18      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19      
20  	$Name:  $
21  	Created on $Date: 2002/08/17 21:24:55 $ 
22  */
23  package net.sf.statcvs.model;
24  
25  import java.util.Collection;
26  import java.util.Date;
27  
28  import junit.framework.TestCase;
29  
30  /**
31   * @author Richard Cyganiak
32   * @version $Id: CvsContentTest.java,v 1.3 2002/08/17 21:24:55 cyganiak Exp $
33   */
34  public class CvsContentTest extends TestCase {
35      private Author tester1;
36      private Author tester2;
37      private Author tester3;
38      private Author tester4;
39      private Directory dirRoot;
40      private Directory dirTest;
41      private Directory dirTest1;
42      private final Date date = new Date(100000000);
43  
44      /**
45       * Constructor for CvsContentTest.
46       * @param arg0 input
47       */
48      public CvsContentTest(final String arg0) {
49          super(arg0);
50      }
51  
52      /**
53       * @see TestCase#setUp()
54       */
55      protected void setUp() throws Exception {
56          super.setUp();
57          tester1 = new Author("tester1");
58          tester2 = new Author("tester2");
59          tester3 = new Author("tester3");
60          tester4 = new Author("tester4");
61          dirRoot = Directory.createRoot();
62          dirTest = dirRoot.createSubdirectory("test");
63          dirTest1 = dirRoot.createSubdirectory("test1");
64      }
65  
66      /**
67       * Method testGetDirectories.
68       */
69      public void testGetDirectories() {
70          final VersionedFile file1 = new VersionedFile("test/test1.java", dirTest);
71          file1.addInitialRevision("1.1", tester1, date, null, 0, null);
72          final VersionedFile file2 = new VersionedFile("test2.java", dirRoot);
73          file2.addInitialRevision("1.1", tester1, date, null, 0, null);
74          final VersionedFile file3 = new VersionedFile("test1/test3.java", dirTest1);
75          file3.addInitialRevision("1.1", tester1, date, null, 0, null);
76          final VersionedFile file4 = new VersionedFile("test/test2.java", dirTest);
77          file4.addInitialRevision("1.1", tester1, date, null, 0, null);
78          final VersionedFile file5 = new VersionedFile("test1/test1.java", dirTest1);
79          file5.addInitialRevision("1.1", tester1, date, null, 0, null);
80          final VersionedFile file6 = new VersionedFile("test/test3.java", dirTest);
81          file6.addInitialRevision("1.1", tester1, date, null, 0, null);
82  
83          final Repository content = new Repository();
84          content.addFile(file1);
85          content.addFile(file2);
86          content.addFile(file3);
87          content.addFile(file4);
88          content.addFile(file5);
89          content.addFile(file6);
90  
91          final Collection dirs = content.getDirectories();
92  
93          assertEquals(3, dirs.size());
94          assertTrue(dirs.contains(dirTest));
95          assertTrue(dirs.contains(dirTest1));
96          assertTrue(dirs.contains(dirRoot));
97      }
98  
99      /**
100      * Method testGetDirectoriesPerUser.
101      */
102     public void testGetDirectoriesPerUser() {
103         final VersionedFile file1 = new VersionedFile("test/test1.java", dirTest);
104         file1.addChangeRevision("1.2", tester1, date, null, 0, 0, 0, null);
105         file1.addInitialRevision("1.1", tester2, date, null, 0, null);
106         final VersionedFile file2 = new VersionedFile("test2.java", dirRoot);
107         file2.addChangeRevision("2.3", tester1, date, null, 0, 0, 0, null);
108         file2.addChangeRevision("2.2", tester1, date, null, 0, 0, 0, null);
109         file2.addInitialRevision("2.1", tester3, date, null, 0, null);
110         final VersionedFile file3 = new VersionedFile("test1/test3.java", dirTest1);
111         file3.addInitialRevision("3.1", tester2, date, null, 0, null);
112         final VersionedFile file4 = new VersionedFile("test/test2.java", dirTest);
113         file4.addInitialRevision("4.1", tester2, date, null, 0, null);
114         final VersionedFile file5 = new VersionedFile("test1/test1.java", dirTest1);
115         file5.addChangeRevision("5.3", tester2, date, null, 0, 0, 0, null);
116         file5.addChangeRevision("5.2", tester2, date, null, 0, 0, 0, null);
117         file5.addInitialRevision("5.1", tester2, date, null, 0, null);
118         final VersionedFile file6 = new VersionedFile("test/test3.java", dirTest);
119         file6.addChangeRevision("6.2", tester1, date, null, 0, 0, 0, null);
120         file6.addInitialRevision("6.1", tester3, date, null, 0, null);
121 
122         final Repository content = new Repository();
123         content.addFile(file1);
124         content.addFile(file2);
125         content.addFile(file3);
126         content.addFile(file4);
127         content.addFile(file5);
128         content.addFile(file6);
129 
130         Collection dirs = tester1.getDirectories();
131         assertEquals(2, dirs.size());
132         assertTrue(dirs.contains(dirTest));
133         assertTrue(dirs.contains(dirRoot));
134 
135         dirs = tester2.getDirectories();
136         assertEquals(2, dirs.size());
137         assertTrue(dirs.contains(dirTest));
138         assertTrue(dirs.contains(dirTest1));
139 
140         dirs = tester3.getDirectories();
141         assertEquals(2, dirs.size());
142         assertTrue(dirs.contains(dirRoot));
143         assertTrue(dirs.contains(dirTest));
144     }
145 
146     /**
147      * Method testUserNames.
148      */
149     public void testUserNames() {
150         final VersionedFile file1 = new VersionedFile("test/Burg.java", dirTest);
151         file1.addChangeRevision("1.3", tester1, date, null, 0, 0, 0, null);
152         file1.addChangeRevision("1.2", tester2, date, null, 0, 0, 0, null);
153         file1.addInitialRevision("1.1", tester1, date, null, 0, null);
154         final VersionedFile file2 = new VersionedFile("test/History.java", dirTest);
155         file2.addChangeRevision("2.2", tester3, date, null, 0, 0, 0, null);
156         file2.addInitialRevision("2.1", tester4, date, null, 0, null);
157         final VersionedFile file3 = new VersionedFile("test/Spieler.java", dirTest);
158         file3.addChangeRevision("3.4", tester2, date, null, 0, 0, 0, null);
159         file3.addChangeRevision("3.3", tester4, date, null, 0, 0, 0, null);
160         file3.addChangeRevision("3.2", tester1, date, null, 0, 0, 0, null);
161         file3.addInitialRevision("3.1", tester2, date, null, 0, null);
162         final Repository content = new Repository();
163         content.addFile(file1);
164         content.addFile(file2);
165         content.addFile(file3);
166 
167         assertEquals(4, content.getAuthors().size());
168     }
169 
170     /**
171      * The null author used for "begin of log" revisions must not be included
172      * in the authors list
173      */
174     public void testIgnoreNullAuthor() {
175         final VersionedFile file = new VersionedFile("test/file", dirTest);
176         file.addInitialRevision("0.0", null, date, null, 0, null);
177         final Repository content = new Repository();
178         content.addFile(file);
179 
180         assertTrue(content.getAuthors().isEmpty());
181     }
182 }