package net.sourceforge.cruisecontrol.labelincrementers;
import java.io.IOException;
import junit.framework.TestCase;
import org.jdom.Element;
/**
* @author Ketan Padegaonkar < KetanPadegaonkar gmail >
*/
public class SVNLabelIncrementerTest extends TestCase {
private SVNLabelIncrementer incrementer;
protected void setUp() {
incrementer = new SVNLabelIncrementer();
}
public void testIsPreBuildLabelIncrementer() throws Exception {
assertTrue(incrementer.isPreBuildIncrementer());
}
public void testGetsDefaultLabel() throws Exception {
assertEquals("svn.0", incrementer.getDefaultLabel());
incrementer.setSeparator("-");
assertEquals("svn-0", incrementer.getDefaultLabel());
incrementer.setLabelPrefix("test");
assertEquals("test-0", incrementer.getDefaultLabel());
}
public void testGetsLabelPrefix() throws Exception {
assertEquals("svn", incrementer.getLabelPrefix());
}
public void testGetsSeparator() throws Exception {
assertEquals(".", incrementer.getSeparator());
incrementer.setSeparator("-");
assertEquals("-", incrementer.getSeparator());
}
public void testIncrementsLabelWhenSVNRevisionIsSame() throws Exception {
incrementer = new SVNLabelIncrementer() {
protected String getSvnRevision() throws IOException {
return "10";
}
};
assertEquals("svn.10.1", incrementer.incrementLabel("svn.10", new Element("nothing")));
assertEquals("svn.10.3", incrementer.incrementLabel("svn.10.2", new Element("nothing")));
}
public void testIncrementsLabelWithProperSeparatorWhenSVNRevisionIsSame() {
incrementer = new SVNLabelIncrementer() {
protected String getSvnRevision() throws IOException {
return "10";
}
public String getSeparator() {
return "-";
}
};
assertEquals("svn-10-1", incrementer.incrementLabel("svn-10", new Element("nothing")));
assertEquals("svn-10-3", incrementer.incrementLabel("svn-10-2", new Element("nothing")));
}
public void testValidatesLabel() throws Exception {
// all labels should be considered valid!
assertTrue(incrementer.isValidLabel("svn10"));
assertTrue(incrementer.isValidLabel("svn.10"));
assertTrue(incrementer.isValidLabel("svn.10.2"));
incrementer.setSeparator("-");
assertTrue(incrementer.isValidLabel("svn10"));
assertTrue(incrementer.isValidLabel("svn-10"));
assertTrue(incrementer.isValidLabel("svn-10-2"));
assertTrue(incrementer.isValidLabel("svn.10:11"));
assertTrue(incrementer.isValidLabel("svn.10:11.2"));
assertTrue(incrementer.isValidLabel("svn.10M"));
assertTrue(incrementer.isValidLabel("svn.10M.2"));
assertTrue(incrementer.isValidLabel("svn.10S"));
assertTrue(incrementer.isValidLabel("svn.10S.2"));
assertTrue(incrementer.isValidLabel("svn.10:11MS"));
assertTrue(incrementer.isValidLabel("svn.10:11MS.2"));
incrementer.setSeparator("-");
assertTrue(incrementer.isValidLabel("svn.10:11MS.2"));
assertTrue(incrementer.isValidLabel("svn-10:11MS.2"));
assertTrue(incrementer.isValidLabel("svn.10:11MS-2"));
assertTrue(incrementer.isValidLabel("svn-10:11MS-2"));
}
}