package de.uni_hannover.sra.minimax_simulator;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
/**
* Tests the version comparison of {@link Version}.
*
* @author Philipp Rohde
*/
public class VersionTest {
private static Version version;
private static int major;
private static int feature;
private static int update;
private static int build;
/**
* Initializes the test setup.
*/
@BeforeClass
public static void initialize() {
version = new Version(VersionTest.class);
major = version.getJvmMajor();
feature = version.getJvmFeature();
update = version.getJvmUpdate();
build = version.getJvmBuild();
}
/**
* Tests the initialization of the version class.
*/
@Test
public void testConstructor() {
Version nullVersion = new Version(null);
assertEquals(false, "".equals(String.valueOf(nullVersion.getJvmMajor())));
assertEquals(false, "".equals(String.valueOf(nullVersion.getJvmBuild())));
assertEquals(true, "".equals(nullVersion.getAuthorName()));
assertEquals(true, "".equals(nullVersion.getCompanyName()));
assertEquals(true, "".equals(nullVersion.getModuleName()));
assertEquals(true, "".equals(nullVersion.getBuildJdk()));
assertEquals(true, "".equals(nullVersion.getBuildTime()));
assertEquals(true, "".equals(nullVersion.getVersionNumber()));
assertEquals(true, "".equals(nullVersion.getRevisionNumber()));
assertEquals(false, nullVersion.isJar());
String[] shortDesc = nullVersion.getShortInfoStrings();
assertEquals(shortDesc[0], "[Module: ]");
assertEquals(shortDesc[1], "Version: - Revision: ");
String[] fullDesc = nullVersion.getFullInfoStrings();
assertEquals(fullDesc[0], "[Module: ]");
assertEquals(fullDesc[1], "Version: - Revision: - Time: - Build JDK: ");
}
/**
* Tests the implementation of {@link Version#isJvmEqual(int, int, int, int)}.
*/
@Test
public void testIsJvmEqual() {
assertEquals("isJvmEqual: same version", true, version.isJvmEqual(major, feature, update, build));
assertEquals("isJvmEqual: different major", false, version.isJvmEqual(0, feature, update, build));
assertEquals("isJvmEqual: different feature", false, version.isJvmEqual(major, feature - 2, update, build));
assertEquals("isJvmEqual: different update", false, version.isJvmEqual(major, feature, update + 5, build));
assertEquals("isJvmEqual: different build", false, version.isJvmEqual(major, feature, update, build + 100));
}
/**
* Tests the implementation of {@link Version#isJvmLower(int, int, int, int)}.
*/
@Test
public void testIsJvmLower() {
assertEquals("isJvmLower: same version", false, version.isJvmLower(major, feature, update, build));
// higher running version
assertEquals("isJvmLower: lower major", false, version.isJvmLower(0, feature, update, build));
assertEquals("isJvmLower: lower feature", false, version.isJvmLower(major, feature - 2, update, build));
assertEquals("isJvmLower: lower update", false, version.isJvmLower(major, feature, -5, build));
assertEquals("isJvmLower: lower build", false, version.isJvmLower(major, feature, update, 0));
// lower running version
assertEquals("isJvmLower: higher major", true, version.isJvmLower(3, feature, update, build));
assertEquals("isJvmLower: higher feature", true, version.isJvmLower(major, feature + 2, update, build));
assertEquals("isJvmLower: higher update", true, version.isJvmLower(major, feature, update + 5, build));
assertEquals("isJvmLower: higher build", true, version.isJvmLower(major, feature, update, build + 100));
}
/**
* Tests the implementation of {@link Version#isJvmLowerOrEqual(int, int, int, int)}.
*/
@Test
public void testIsJvmLowerOrEqual() {
assertEquals("isJvmLowerOrEqual: same version", true, version.isJvmLowerOrEqual(major, feature, update, build));
// higher running version
assertEquals("isJvmLowerOrEqual: lower major", false, version.isJvmLowerOrEqual(0, feature, update, build));
assertEquals("isJvmLowerOrEqual: lower feature", false, version.isJvmLowerOrEqual(major, feature - 2, update, build));
assertEquals("isJvmLowerOrEqual: lower update", false, version.isJvmLowerOrEqual(major, feature, -5, build));
assertEquals("isJvmLowerOrEqual: lower build", false, version.isJvmLowerOrEqual(major, feature, update, 0));
// lower running version
assertEquals("isJvmLowerOrEqual: higher major", true, version.isJvmLowerOrEqual(3, feature, update, build));
assertEquals("isJvmLowerOrEqual: higher feature", true, version.isJvmLowerOrEqual(major, feature + 2, update, build));
assertEquals("isJvmLowerOrEqual: higher update", true, version.isJvmLowerOrEqual(major, feature, update + 5, build));
assertEquals("isJvmLowerOrEqual: higher build", true, version.isJvmLowerOrEqual(major, feature, update, build + 100));
}
/**
* Tests the implementation of {@link Version#isJvmHigher(int, int, int, int)}.
*/
@Test
public void testIsJvmHigher() {
assertEquals("isJvmHigher: same version", false, version.isJvmHigher(major, feature, update, build));
// higher running version
assertEquals("isJvmHigher: lower major", true, version.isJvmHigher(0, feature, update, build));
assertEquals("isJvmHigher: lower feature", true, version.isJvmHigher(major, feature - 2, update, build));
assertEquals("isJvmHigher: lower update", true, version.isJvmHigher(major, feature, -5, build));
assertEquals("isJvmHigher: lower build", true, version.isJvmHigher(major, feature, update, 0));
// lower running version
assertEquals("isJvmHigher: higher major", false, version.isJvmHigher(3, feature, update, build));
assertEquals("isJvmHigher: higher feature", false, version.isJvmHigher(major, feature + 2, update, build));
assertEquals("isJvmHigher: higher update", false, version.isJvmHigher(major, feature, update + 5, build));
assertEquals("isJvmHigher: higher build", false, version.isJvmHigher(major, feature, update, build + 100));
}
/**
* Tests the implementation of {@link Version#isJvmHigherOrEqual(int, int, int, int)}.
*/
@Test
public void testIsJvmHigherOrEqual() {
assertEquals("isJvmHigherOrEqual: same version", true, version.isJvmHigherOrEqual(major, feature, update, build));
// higher running version
assertEquals("isJvmHigherOrEqual: lower major", true, version.isJvmHigherOrEqual(0, feature, update, build));
assertEquals("isJvmHigherOrEqual: lower feature", true, version.isJvmHigherOrEqual(major, feature - 2, update, build));
assertEquals("isJvmHigherOrEqual: lower update", true, version.isJvmHigherOrEqual(major, feature, -5, build));
assertEquals("isJvmHigherOrEqual: lower build", true, version.isJvmHigherOrEqual(major, feature, update, 0));
// lower running version
assertEquals("isJvmHigherOrEqual: higher major", false, version.isJvmHigherOrEqual(3, feature, update, build));
assertEquals("isJvmHigherOrEqual: higher feature", false, version.isJvmHigherOrEqual(major, feature + 2, update, build));
assertEquals("isJvmHigherOrEqual: higher update", false, version.isJvmHigherOrEqual(major, feature, update + 5, build));
assertEquals("isJvmHigherOrEqual: higher build", false, version.isJvmHigherOrEqual(major, feature, update, build + 100));
}
}