/*
* ====================================================================
* Copyright (c) 2005-2012 sventon project. All rights reserved.
*
* This software is licensed as described in the file LICENSE, which
* you should have received as part of this distribution. The terms
* are also available at http://www.sventon.org.
* If newer versions of this license are posted there, you may use a
* newer version instead, at your option.
* ====================================================================
*/
package org.sventon.model;
import org.junit.Test;
import java.util.Calendar;
import java.util.Date;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertSame;
public class RevisionTest {
@Test
public void testCreateNumberRevision() {
final Revision revision = Revision.create(42);
assertEquals(42, revision.getNumber());
assertEquals("42", revision.toString());
}
@Test
public void testCreateHeadRevision() {
final Revision revision = Revision.createHeadRevision(42);
assertEquals("HEAD", revision.toString());
}
@Test
public void testCreateDateRevision() {
final Date now = new Date();
final Revision revision = Revision.create(now);
assertEquals(now, revision.getDate());
}
@Test
public void testUndefined() {
final Revision revision = Revision.create(-1);
assertSame(Revision.UNDEFINED, revision);
assertEquals("-1", revision.toString());
}
@Test
public void testParseNamedRevision() {
assertSame(Revision.HEAD, Revision.parse("HEAD"));
assertEquals("HEAD", Revision.parse("HEAD").toString());
assertSame(Revision.HEAD, Revision.parse("head"));
assertSame(Revision.HEAD, Revision.parse("hEAd"));
assertSame(Revision.UNDEFINED, Revision.parse("undefined"));
assertSame(Revision.UNDEFINED, Revision.parse("unDEFined"));
assertSame(Revision.UNDEFINED, Revision.parse("unDEFined"));
}
@Test
public void parseNumberRevision() throws Exception {
assertSame(Revision.UNDEFINED, Revision.parse("-1"));
assertEquals(42, Revision.parse("42").getNumber());
}
@Test
public void parseDateRevision() throws Exception {
Calendar cal = Calendar.getInstance();
cal.set(2010, 0, 1, 12, 34, 56);
cal.set(Calendar.MILLISECOND, 789);
cal.set(Calendar.ZONE_OFFSET, 0);
assertEquals(cal.getTime(), Revision.parse("{2010-01-01T12:34:56.789Z}").getDate());
}
@Test
public void parseShortDateRevision() throws Exception {
assertEquals("{2010-01-01}", Revision.parse("{2010-01-01}").toString());
}
@Test
public void parseMalformedDateRevision() throws Exception {
assertSame(Revision.UNDEFINED, Revision.parse("-r {foobar-not-applicable}"));
}
@Test
public void namedVersionToString() throws Exception {
assertEquals("HEAD", Revision.HEAD.toString());
}
}