package nodebox.node;
import junit.framework.TestCase;
public class VersionTest extends TestCase {
public void testParsing() {
assertEquals(new Version(0, 0, 0), new Version("0"));
assertEquals(new Version(1, 0, 0), new Version("1"));
assertEquals(new Version(1, 4, 0), new Version("1.4"));
assertEquals(new Version(0, 4, 5), new Version("0.4.5"));
assertEquals(new Version(124125, 421321, 5123213), new Version("124125.421321.5123213"));
assertInvalidVersion("", "no empty strings");
assertInvalidVersion("hello", "only numbers");
assertInvalidVersion("1.2.3.4", "too many components");
assertInvalidVersion("-12.2.3", "no negative numbers");
assertInvalidVersion("1.2.a", "no letters");
}
public void testLargerThan() {
assertTrue(new Version(1, 0, 0).largerThan(new Version(0, 0, 0)));
assertTrue(new Version(0, 0, 1).largerThan(new Version(0, 0, 0)));
assertTrue(new Version(0, 3, 1).largerThan(new Version(0, 2, 99)));
assertTrue(new Version(4, 0, 0).largerThan(new Version(3, 9, 9)));
}
private void assertInvalidVersion(String verisonString, String reason) {
try {
Version.parseVersionString(verisonString);
fail("Version " + verisonString + " should not have been accepted: " + reason);
} catch (IllegalArgumentException e) {
// Should fail!
}
}
}