package com.limegroup.gnutella.version;
import java.io.*;
import java.util.*;
import junit.framework.Test;
import com.limegroup.gnutella.*;
import com.limegroup.gnutella.util.*;
public final class VersionTest extends BaseTestCase {
public VersionTest(String name) {
super(name);
}
public static Test suite() {
return buildTestSuite(VersionTest.class);
}
/**
* Runs this test individually.
*/
public static void main(String[] args) {
junit.textui.TestRunner.run(suite());
}
public void testInvalidVersions() throws Exception {
try {
new Version("@version@");
fail("invalid v.");
} catch(VersionFormatException expected) {}
try {
new Version("1");
fail("invalid v");
} catch(VersionFormatException expected) {}
try {
new Version("1.2");
fail("invalid v");
} catch(VersionFormatException expected) {}
try {
new Version("1.3.a");
fail("invalid v");
} catch(VersionFormatException expected) {}
try {
new Version("1.a.3");
fail("invalid v");
} catch(VersionFormatException expected) {}
try {
new Version("1.a");
fail("invalid v");
} catch(VersionFormatException expected) {}
}
public void testValidVersion() throws Exception {
new Version("0.0.0");
new Version("1.2.3");
new Version("10.2.3052");
new Version("10.2.3_05");
new Version("2.1.81");
new Version("4.6.0 Pro");
new Version("4.6.0jum");
new Version("4.6.0_01");
new Version("4.6.0jum233");
new Version("4.6.0 666");
new Version("4.6.0_01abc");
new Version("1.5.0b56");
new Version("1.5.0_01");
new Version("1.5.0_02");
}
public void testComparingVersions() throws Exception {
Version v1, v2;
v1 = new Version("0.0.0");
v2 = new Version("0.0.0");
assertEquals(v1, v2);
v2 = new Version("0.0.0_1");
// make sure aGT a aLT are doing it the way we expect ...
// param 2 is 'X than' param 1
assertGreaterThan(0, v2.compareTo(v1));
assertLessThan(0, v1.compareTo(v2));
assertGreaterThan(v1, v2);
assertLessThan(v2, v1);
v2 = new Version("1.0.0");
assertGreaterThan(v1, v2);
assertLessThan(v2, v1);
v2 = new Version("0.1.0");
assertGreaterThan(v1, v2);
assertLessThan(v2, v1);
v2 = new Version("0.0.1");
assertGreaterThan(v1, v2);
assertLessThan(v2, v1);
// try with a leading zero.
v2 = new Version("0.0.0_01");
assertGreaterThan(v1, v2);
assertLessThan(v2, v1);
// try with words
v2 = new Version("0.0.0 PRO");
assertEquals(v1, v2);
v2 = new Version("0.0.1 PRO");
assertGreaterThan(v1, v2);
assertLessThan(v2, v1);
}
}