* @author Syn Wee Quek
* @since release 2.1 March 01 2002
*/
-public final class VersionInfoTest extends TestFmwk
-{
+public final class VersionInfoTest extends TestFmwk
+{
// constructor ---------------------------------------------------
-
+
/**
* Constructor
*/
}
// public methods -----------------------------------------------
-
+
/**
* Test that the instantiation works
*/
for (int i = 0; i < INSTANCE_INVALID_STRING_.length; i ++) {
try {
VersionInfo.getInstance(INSTANCE_INVALID_STRING_[i]);
- errln("\"" + INSTANCE_INVALID_STRING_[i] +
+ errln("\"" + INSTANCE_INVALID_STRING_[i] +
"\" should produce an exception");
} catch (RuntimeException e) {
- logln("PASS: \"" + INSTANCE_INVALID_STRING_[i] +
+ logln("PASS: \"" + INSTANCE_INVALID_STRING_[i] +
"\" failed as expected");
}
}
try {
VersionInfo.getInstance(INSTANCE_VALID_STRING_[i]);
} catch (RuntimeException e) {
- errln("\"" + INSTANCE_VALID_STRING_[i] +
+ errln("\"" + INSTANCE_VALID_STRING_[i] +
"\" should produce an valid version");
}
}
getInstance(INSTANCE_INVALID_INT_[i]);
errln("invalid ints should produce an exception");
} catch (RuntimeException e) {
- logln("PASS: \"" + Arrays.toString(INSTANCE_INVALID_INT_[i]) +
+ logln("PASS: \"" + Arrays.toString(INSTANCE_INVALID_INT_[i]) +
"\" failed as expected");
}
}
}
}
}
-
+
/**
* Test that the comparison works
*/
public void TestCompare()
{
for (int i = 0; i < COMPARE_NOT_EQUAL_STRING_.length; i += 2) {
- VersionInfo v1 =
+ VersionInfo v1 =
VersionInfo.getInstance(COMPARE_NOT_EQUAL_STRING_[i]);
- VersionInfo v2 =
+ VersionInfo v2 =
VersionInfo.getInstance(COMPARE_NOT_EQUAL_STRING_[i + 1]);
if (v1.compareTo(v2) == 0) {
errln(COMPARE_NOT_EQUAL_STRING_[i] + " should not equal " +
}
}
for (int i = 0; i < COMPARE_EQUAL_STRING_.length - 1; i ++) {
- VersionInfo v1 =
+ VersionInfo v1 =
VersionInfo.getInstance(COMPARE_EQUAL_STRING_[i]);
- VersionInfo v2 =
+ VersionInfo v2 =
VersionInfo.getInstance(COMPARE_EQUAL_STRING_[i + 1]);
if (v1.compareTo(v2) != 0) {
errln(COMPARE_EQUAL_STRING_[i] + " should equal " +
VersionInfo v1 = VersionInfo.getInstance(COMPARE_LESS_[i]);
VersionInfo v2 = VersionInfo.getInstance(COMPARE_LESS_[i + 1]);
if (v1.compareTo(v2) >= 0) {
- errln(COMPARE_LESS_[i] + " should be less than " +
+ errln(COMPARE_LESS_[i] + " should be less than " +
COMPARE_LESS_[i + 1]);
}
if (v2.compareTo(v1) <= 0) {
- errln(COMPARE_LESS_[i + 1] + " should be greater than " +
+ errln(COMPARE_LESS_[i + 1] + " should be greater than " +
COMPARE_LESS_[i]);
}
}
}
-
+
/**
* Test that the getter function works
*/
v.getMinor() != GET_RESULT_[(i << 2) + 1] ||
v.getMilli() != GET_RESULT_[(i << 2) + 2] ||
v.getMicro() != GET_RESULT_[(i << 2) + 3]) {
- errln(GET_STRING_[i] + " should return major=" +
- GET_RESULT_[i << 2] + " minor=" +
- GET_RESULT_[(i << 2) + 1] + " milli=" +
+ errln(GET_STRING_[i] + " should return major=" +
+ GET_RESULT_[i << 2] + " minor=" +
+ GET_RESULT_[(i << 2) + 1] + " milli=" +
GET_RESULT_[(i << 2) + 2] + " micro=" +
- GET_RESULT_[(i << 2) + 3]);
+ GET_RESULT_[(i << 2) + 3]);
}
v = getInstance(GET_INT_[i]);
if (v.getMajor() != GET_RESULT_[i << 2] ||
v.getMinor() != GET_RESULT_[(i << 2) + 1] ||
v.getMilli() != GET_RESULT_[(i << 2) + 2] ||
v.getMicro() != GET_RESULT_[(i << 2) + 3]) {
- errln(GET_STRING_[i] + " should return major=" +
- GET_RESULT_[i << 2] + " minor=" +
- GET_RESULT_[(i << 2) + 1] + " milli=" +
+ errln(GET_STRING_[i] + " should return major=" +
+ GET_RESULT_[i << 2] + " minor=" +
+ GET_RESULT_[(i << 2) + 1] + " milli=" +
GET_RESULT_[(i << 2) + 2] + " micro=" +
- GET_RESULT_[(i << 2) + 3]);
+ GET_RESULT_[(i << 2) + 3]);
}
}
}
-
+
/**
* Test toString()
*/
@Test
- public void TesttoString()
+ public void TesttoString()
{
for (int i = 0; i < TOSTRING_STRING_.length; i ++) {
VersionInfo v = VersionInfo.getInstance(TOSTRING_STRING_[i]);
if (!v.toString().equals(TOSTRING_RESULT_[i])) {
- errln("toString() for " + TOSTRING_STRING_[i] +
+ errln("toString() for " + TOSTRING_STRING_[i] +
" should produce " + TOSTRING_RESULT_[i]);
}
v = getInstance(TOSTRING_INT_[i]);
}
}
}
-
+
/**
* Test Comparable interface
*/
}
}
}
+
+ /**
+ * Test equals and hashCode
+ */
+ @Test
+ public void TestEqualsAndHashCode() {
+ VersionInfo v1234a = VersionInfo.getInstance(1, 2, 3, 4);
+ VersionInfo v1234b = VersionInfo.getInstance(1, 2, 3, 4);
+ VersionInfo v1235 = VersionInfo.getInstance(1, 2, 3, 5);
+
+ assertEquals("v1234a and v1234b", v1234a, v1234b);
+ assertEquals("v1234a.hashCode() and v1234b.hashCode()", v1234a.hashCode(), v1234b.hashCode());
+ assertNotEquals("v1234a and v1235", v1234a, v1235);
+ }
// private methods --------------------------------------------------
-
+
/**
* int array versioninfo creation
*/
case 3:
return VersionInfo.getInstance(data[0], data[1], data[2]);
default:
- return VersionInfo.getInstance(data[0], data[1], data[2],
+ return VersionInfo.getInstance(data[0], data[1], data[2],
data[3]);
}
}
-
+
// private data members --------------------------------------------
-
+
/**
* Test instance data
*/
{255, 255, 255},
{255, 255, 255, 255}
};
-
+
/**
* Test compare data
*/
"2.0.0.0", "2.0.0", "2.0", "2"
};
private static final int COMPARE_EQUAL_INT_[][] = {
- {2}, {2, 0}, {2, 0, 0}, {2, 0, 0, 0}
+ {2}, {2, 0}, {2, 0, 0}, {2, 0, 0, 0}
};
private static final String COMPARE_LESS_[] = {
"0", "0.0.0.1", "0.0.1", "0.1", "1", "2", "2.1", "2.1.1", "2.1.1.1"
};
-
+
/**
* Test Getter data
*/
2, 1, 255, 0,
3, 1, 255, 100
};
-
+
/**
* Test toString data
*/
"0",
"1.1",
"2.1.255",
- "3.1.255.100"
+ "3.1.255.100"
};
private static final int TOSTRING_INT_[][] = {
{0},
"0.0.0.0",
"1.1.0.0",
"2.1.255.0",
- "3.1.255.100"
+ "3.1.255.100"
};
/*
this.results = results;
}
+ @Override
public void run() {
for (int i = 0; i < results.length; i++) {
results[i] = VersionInfo.getInstance(i);