01: package net.sourceforge.cruisecontrol.labelincrementers;
02:
03: import java.io.IOException;
04:
05: import junit.framework.TestCase;
06:
07: import org.jdom.Element;
08:
09: /**
10: * @author Ketan Padegaonkar < KetanPadegaonkar gmail >
11: */
12: public class SVNLabelIncrementerTest extends TestCase {
13:
14: private SVNLabelIncrementer incrementer;
15:
16: protected void setUp() {
17: incrementer = new SVNLabelIncrementer();
18: }
19:
20: public void testIsPreBuildLabelIncrementer() throws Exception {
21: assertTrue(incrementer.isPreBuildIncrementer());
22: }
23:
24: public void testGetsDefaultLabel() throws Exception {
25: assertEquals("svn.0", incrementer.getDefaultLabel());
26: }
27:
28: public void testGetsLabelPrefix() throws Exception {
29: assertEquals("svn", incrementer.getLabelPrefix());
30: }
31:
32: public void testGetsSeparator() throws Exception {
33: assertEquals(".", incrementer.getSeparator());
34:
35: incrementer.setSeparator("-");
36: assertEquals("-", incrementer.getSeparator());
37: }
38:
39: public void testIncrementsLabelWhenSVNRevisionIsSame()
40: throws Exception {
41: incrementer = new SVNLabelIncrementer() {
42: protected String getSvnRevision() throws IOException {
43: return "10";
44: }
45: };
46: assertEquals("svn.10.1", incrementer.incrementLabel("svn.10",
47: new Element("nothing")));
48: assertEquals("svn.10.3", incrementer.incrementLabel("svn.10.2",
49: new Element("nothing")));
50: }
51:
52: public void testIncrementsLabelWithProperSeparatorWhenSVNRevisionIsSame() {
53: incrementer = new SVNLabelIncrementer() {
54: protected String getSvnRevision() throws IOException {
55: return "10";
56: }
57:
58: public String getSeparator() {
59: return "-";
60: }
61: };
62: assertEquals("svn-10-1", incrementer.incrementLabel("svn-10",
63: new Element("nothing")));
64: assertEquals("svn-10-3", incrementer.incrementLabel("svn-10-2",
65: new Element("nothing")));
66: }
67:
68: public void testValidatesLabel() throws Exception {
69: assertFalse(incrementer.isValidLabel("svn10"));
70: assertTrue(incrementer.isValidLabel("svn.10"));
71: assertTrue(incrementer.isValidLabel("svn.10.2"));
72:
73: incrementer.setSeparator("-");
74: assertFalse(incrementer.isValidLabel("svn10"));
75: assertTrue(incrementer.isValidLabel("svn-10"));
76: assertTrue(incrementer.isValidLabel("svn-10-2"));
77: }
78:
79: // See http://svnbook.red-bean.com/en/1.1/re57.html
80: public void testShouldValidateForNonSameRevisionLabels() {
81: assertTrue(incrementer.isValidLabel("svn.10:11"));
82: assertTrue(incrementer.isValidLabel("svn.10:11.2"));
83: assertTrue(incrementer.isValidLabel("svn.10M"));
84: assertTrue(incrementer.isValidLabel("svn.10M.2"));
85: assertTrue(incrementer.isValidLabel("svn.10S"));
86: assertTrue(incrementer.isValidLabel("svn.10S.2"));
87: assertTrue(incrementer.isValidLabel("svn.10:11MS"));
88: assertTrue(incrementer.isValidLabel("svn.10:11MS.2"));
89:
90: incrementer.setSeparator("-");
91: assertFalse(incrementer.isValidLabel("svn.10:11MS.2"));
92: assertFalse(incrementer.isValidLabel("svn-10:11MS.2"));
93: assertFalse(incrementer.isValidLabel("svn.10:11MS-2"));
94: assertTrue(incrementer.isValidLabel("svn-10:11MS-2"));
95: }
96:
97: }
|