/******************************************************************************* * Copyright (c) 1998, 2016 Oracle and/or its affiliates. All rights reserved. * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 * which accompanies this distribution. * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html * and the Eclipse Distribution License is available at * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * Tomas Kraus, Peter Benedikovic - initial API and implementation ******************************************************************************/ package org.eclipse.persistence.testing.tests.helper; import org.eclipse.persistence.internal.helper.JavaSEPlatform; import org.eclipse.persistence.internal.helper.JavaVersion; import org.junit.Test; /** * Test Java related utilities. * @author Tomas Kraus, Peter Benedikovic */ public class JavaUtilTest extends junit.framework.TestCase { /** * Constructs an instance of Java utilities. * @param name java.lang.String */ public JavaUtilTest(String name) { super(name); } /** * Test <code>JavaVersion.comapreTo</code> functionality. */ @Test public void testJavaVersionCompareTo() { JavaVersion version = new JavaVersion(1, 4); // Differs on major numbers. assertEquals( 1, version.comapreTo(new JavaVersion(0, 4))); assertEquals(-1, version.comapreTo(new JavaVersion(2, 4))); // Differs on minor numbers. assertEquals( 1, version.comapreTo(new JavaVersion(1, 3))); assertEquals(-1, version.comapreTo(new JavaVersion(1, 5))); // Equal values assertEquals( 0, version.comapreTo(new JavaVersion(1, 4))); } /** * Test that <code>javaVmVersion</code> is able to parse Java version * output. */ @Test public void testJavaVersion() { JavaVersion version = JavaVersion.vmVersion(); assertTrue(version.getMajor() > 0); } /** * Test {@link String} with major and minor version numbers pairs * to <code>JavaSEPlatform</code> conversion. */ @Test public void testStringToPlatform() { // Valid version number pairs. int[][] valid = {{1, 1}, {1, 2}, {1, 3}, {1, 4}, {1, 5}, {1, 6}, {1, 7}, {1, 8}, {1, 9}, {9, 0}}; int[][] invalid = {{0, 0}, {0, 1}, {0, 3}, {0, 5}, {0, 7}, {0, 9}, {1, 0}, {2, 0}, {2, 1}, {2, 2}, {3, 0}, {4, 0}, {1, 10}}; // Verify valid pairs. for (int [] version : valid) { int major = version[0]; int minor = version[1]; String versionString = JavaSEPlatform.versionString(major, minor); JavaSEPlatform platform = JavaSEPlatform.toValue(versionString); assertNotNull("There should exist platform for valid platform" +" version numbers.", platform); assertTrue("Returned platform version numbers do not match provided" + " version numbers", major == platform.getMajor() && minor == platform.getMinor()); } // Invalid version number pairs. for (int [] version : invalid) { int major = version[0]; int minor = version[1]; String versionString = JavaSEPlatform.versionString(major, minor); JavaSEPlatform platform = JavaSEPlatform.toValue(major, minor); assertNull("Returned platform shall be null for invalid version " + "number", platform); } } /** * Test major and minor version numbers pairs to <code>JavaSEPlatform</code> * conversion. */ @Test public void testMajorMinorToPlatform() { // Valid version number pairs. int[][] valid = {{1, 1}, {1, 2}, {1, 3}, {1, 4}, {1, 5}, {1, 6}, {1, 7}, {1, 8}, {1, 9}, {9, 0}}; int[][] invalid = {{0, 0}, {0, 1}, {0, 3}, {0, 5}, {0, 7}, {0, 9}, {1, 0}, {2, 0}, {2, 1}, {2, 2}, {3, 0}, {4, 0}, {1, 10}}; // Verify valid pairs. for (int [] version : valid) { int major = version[0]; int minor = version[1]; JavaSEPlatform platform = JavaSEPlatform.toValue(major, minor); assertNotNull("There should exist platform for valid platform" +" version numbers.", platform); assertTrue("Returned platform version numbers do not match provided" + " version numbers", major == platform.getMajor() && minor == platform.getMinor()); } // Invalid version number pairs. for (int [] version : invalid) { int major = version[0]; int minor = version[1]; JavaSEPlatform platform = JavaSEPlatform.toValue(major, minor); assertNull("Returned platform shall be null for invalid version " + "number", platform); } } /** * Test current platform equals shortcut method. */ @Test public void testCurrentIs() { // Test method on current platform. final JavaSEPlatform current = JavaSEPlatform.toValue( JavaSEPlatform.CURRENT.getMajor(), JavaSEPlatform.CURRENT.getMinor()); boolean result = JavaSEPlatform.is(current); assertTrue("Current platform check shall return true.", result); // Test method on unsupported platforms (up to 1.6). for (JavaSEPlatform platform : JavaSEPlatform.values()) { if (platform.isSupported()) { break; } result = JavaSEPlatform.is(platform); assertFalse("Unsupported platform check shall return false.", result); } } }