package org.jgroups.tests;
import org.jgroups.Version;
import org.jgroups.Global;
import org.testng.annotations.Test;
/**
* @author Bela Ban April 4 2003
* @version $Revision: 1.2 $
*/
@Test(groups=Global.FUNCTIONAL)
public class VersionTest {
public static void testVersionPrint() {
System.out.println("version is " +Version.printVersion());
assert true;
}
public static void testNullVersion() {
assert !(Version.isSame((short)0));
}
public static void testDifferentLengthVersion1() {
short version2=Version.encode(2,0,7);
assert !(Version.isSame(version2));
}
public static void testDifferentVersion() {
short version1=Version.encode(2,0,7), version2=Version.encode(2,0,6);
assert !(version1 == version2);
}
public static void testSameVersion() {
assert match(0,0,1, 0,0,1);
assert match(1,0,0, 1,0,0);
assert match(10,2,60, 10,2,60);
assert !(match(1, 2, 3, 1, 2, 0));
assert !(match(0, 0, 0, 0, 0, 1));
assert !(match(2, 5, 0, 2, 5, 1));
}
public static void testBinaryCompatibility() {
assert isBinaryCompatible(0,0,0, 0,0,0);
assert isBinaryCompatible(1,2,0, 1,2,1);
assert isBinaryCompatible(1,2,0, 1,2,60);
assert !(isBinaryCompatible(2, 5, 0, 2, 4, 1));
assert !(isBinaryCompatible(2, 5, 0, 2, 6, 0));
}
private static boolean match(int major_1, int minor_1, int micro_1, int major_2, int minor_2, int micro_2) {
short version1=Version.encode(major_1, minor_1, micro_1);
short version2=Version.encode(major_2, minor_2, micro_2);
return version1 == version2;
}
private static boolean isBinaryCompatible(int major_1, int minor_1, int micro_1, int major_2, int minor_2, int micro_2) {
short version1=Version.encode(major_1, minor_1, micro_1);
short version2=Version.encode(major_2, minor_2, micro_2);
boolean retval=Version.isBinaryCompatible(version1, version2);
System.out.println(Version.print(version1) + " binary compatible to " + Version.print(version2) + (retval? " OK" : " FAIL"));
return Version.isBinaryCompatible(version1, version2);
}
}