1 package org.apache.maven.plugin.changelog;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import junit.framework.TestCase;
23 import org.apache.maven.scm.command.changelog.ChangeLogSet;
24 import org.apache.maven.scm.ChangeSet;
25 import org.apache.maven.scm.ChangeFile;
26
27 import java.io.File;
28 import java.io.FileInputStream;
29 import java.io.InputStream;
30 import java.util.List;
31 import java.util.Calendar;
32
33
34
35
36
37 public class ChangeLogTest
38 extends TestCase
39 {
40 public void testReadFile()
41 throws Exception
42 {
43 List changedLogs = readChangeLogXml( "min-changelog.xml" );
44
45 assertNotNull( "Test changedSets were parsed", changedLogs );
46
47 assertEquals( "Test number of changelog entries", 2, changedLogs.size() );
48
49 ChangeLogSet changelogSets = (ChangeLogSet) changedLogs.get( 0 );
50
51 assertEquals( "Test number of revisions on changelog 1", 2, changelogSets.getChangeSets().size() );
52
53 ChangeSet changeSet = (ChangeSet) changelogSets.getChangeSets().get( 0 );
54
55
56 Calendar cal = Calendar.getInstance();
57
58 cal.set( 1977, 7, 6, 5, 30, 0);
59
60 cal.set( Calendar.MILLISECOND, 0);
61
62
63 assertEquals( "Test changelog 1 set 1 date/time", cal.getTime().getTime(), changeSet.getDate().getTime() );
64
65 assertEquals( "Test changelog 1 set 1 author", "Edwin Punzalan", changeSet.getAuthor() );
66
67 assertEquals( "Test changelog 1 set 1 msg", "First commit msg", changeSet.getComment() );
68
69 assertEquals( "Test changelog 1 set 1 files", 1, changeSet.getFiles().size() );
70
71 ChangeFile changeFile = (ChangeFile) changeSet.getFiles().get( 0 );
72
73 assertEquals( "Test changelog 1 set 1 file 1 filename", "/path/to/file.extension", changeFile.getName() );
74
75 assertEquals( "Test changelog 1 set 1 file 1 revision", "1", changeFile.getRevision() );
76
77
78 changeSet = (ChangeSet) changelogSets.getChangeSets().get( 1 );
79
80 cal.set( 2005, 1, 24, 21, 30, 0 );
81
82 assertEquals( "Test changelog 1 set 2 date/time", cal.getTime().getTime(), changeSet.getDate().getTime() );
83
84 assertEquals( "Test changelog 1 set 2 author", "Edwin Punzalan", changeSet.getAuthor() );
85
86 assertEquals( "Test changelog 1 set 2 msg", "Second commit msg", changeSet.getComment() );
87
88 assertEquals( "Test changelog 1 set 2 files", 2, changeSet.getFiles().size() );
89
90 changeFile = (ChangeFile) changeSet.getFiles().get( 0 );
91
92 assertEquals( "Test changelog 1 set 2 file 1 filename", "/path/to/file.extension", changeFile.getName() );
93
94 assertEquals( "Test changelog 1 set 2 file 1 revision", "2", changeFile.getRevision() );
95
96 changeFile = (ChangeFile) changeSet.getFiles().get( 1 );
97
98 assertEquals( "Test changelog 1 set 2 file 2 filename", "/path/to/file2.extension", changeFile.getName() );
99
100 assertEquals( "Test changelog 1 set 2 file 2 revision", "2", changeFile.getRevision() );
101
102
103
104 changelogSets = (ChangeLogSet) changedLogs.get( 1 );
105
106 assertEquals( "Test number of revisions on changelog 2", 2, changelogSets.getChangeSets().size() );
107
108 changeSet = (ChangeSet) changelogSets.getChangeSets().get( 0 );
109
110 cal.set( 2005, 1, 25, 22, 45, 0 );
111
112 assertEquals( "Test changelog 2 set 1 date/time", cal.getTime().getTime(), changeSet.getDate().getTime() );
113
114 assertEquals( "Test changelog 2 set 1 author", "Keogh Edrich Punzalan", changeSet.getAuthor() );
115
116 assertEquals( "Test changelog 2 set 1 msg", "Third commit msg", changeSet.getComment() );
117
118 assertEquals( "Test changelog 2 set 1 files", 1, changeSet.getFiles().size() );
119
120 changeFile = (ChangeFile) changeSet.getFiles().get( 0 );
121
122 assertEquals( "Test changelog 2 set 1 file 1 filename", "/path/to/file.extension", changeFile.getName() );
123
124 assertEquals( "Test changelog 2 set 1 file 1 revision", "3", changeFile.getRevision() );
125
126
127 changeSet = (ChangeSet) changelogSets.getChangeSets().get( 1 );
128
129 cal.set( 2100, 1, 25, 5, 30, 0 );
130
131 assertEquals( "Test changelog 2 set 2 date/time", cal.getTime().getTime(), changeSet.getDate().getTime() );
132
133 assertEquals( "Test changelog 2 set 2 author", "Keogh Edrich Punzalan", changeSet.getAuthor() );
134
135 assertEquals( "Test changelog 2 set 2 msg", "Last commit msg", changeSet.getComment() );
136
137 assertEquals( "Test changelog 2 set 2 files", 2, changeSet.getFiles().size() );
138
139 changeFile = (ChangeFile) changeSet.getFiles().get( 0 );
140
141 assertEquals( "Test changelog 2 set 2 file 1 filename", "/path/to/file.extension", changeFile.getName() );
142
143 assertEquals( "Test changelog 2 set 2 file 1 revision", "4", changeFile.getRevision() );
144
145 changeFile = (ChangeFile) changeSet.getFiles().get( 1 );
146
147 assertEquals( "Test changelog 2 set 2 file 2 filename", "/path/to/file2.extension", changeFile.getName() );
148
149 assertEquals( "Test changelog 2 set 2 file 2 revision", "4", changeFile.getRevision() );
150 }
151
152 private List readChangeLogXml( String filename )
153 throws Exception
154 {
155 File inputFile = new File( getBasedir(), "src/test/changelog-xml/" + filename );
156 InputStream in = new FileInputStream( inputFile );
157
158 return ChangeLog.loadChangedSets( in );
159 }
160
161 private String getBasedir()
162 {
163 return System.getProperty( "basedir" );
164 }
165 }