blob: c87013ba3e2c5b4fbb7c9a9a68c6840262e656b8 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011, 2012 Tasktop Technologies and others.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* https://www.eclipse.org/legal/epl-2.0
*
* SPDX-License-Identifier: EPL-2.0
*
* Tasktop Technologies - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.commons.tests.core;
import junit.framework.TestCase;
import org.eclipse.mylyn.commons.core.CoreUtil;
import org.eclipse.osgi.service.resolver.VersionRange;
import org.osgi.framework.Version;
/**
* @author Steffen Pingel
*/
public class CoreUtilTest extends TestCase {
public void testCompareNullNull() {
assertEquals(0, CoreUtil.compare(null, null));
}
public void testCompareNullString() {
assertEquals(1, CoreUtil.compare(null, "abc"));
}
public void testCompareNumbersBigger() {
assertEquals(1, CoreUtil.compare(4, 2));
}
public void testCompareNumbersEquals() {
assertEquals(0, CoreUtil.compare(-4, -4));
}
public void testCompareNumbersNull() {
assertEquals(1, CoreUtil.compare(null, 2));
}
public void testCompareNumbersSmaller() {
assertEquals(-1, CoreUtil.compare(1, 2));
}
public void testCompareStringNull() {
assertEquals(-1, CoreUtil.compare("abc", null));
}
public void testPropertyEquallsNullFalse() {
assertFalse(CoreUtil.propertyEquals(false, null));
}
public void testPropertyEquallsNullTrue() {
assertTrue(CoreUtil.propertyEquals(true, null));
}
public void testPropertyEqualsBooleanTrue() {
assertTrue(CoreUtil.propertyEquals(true, Boolean.TRUE));
}
public void testPropertyEqualsNumbe() {
assertFalse(CoreUtil.propertyEquals(true, 1));
}
public void testPropertyEqualsStringFalse() {
assertFalse(CoreUtil.propertyEquals(false, "false"));
}
public void testPropertyEqualsStringFalseUnexpected() {
assertFalse(CoreUtil.propertyEquals(true, "false"));
}
public void testPropertyEqualsStringTrue() {
assertFalse(CoreUtil.propertyEquals(true, "true"));
}
public void testAreEqualEqualStrings() {
assertTrue(CoreUtil.areEqual("a", "a"));
}
public void testAreEqualSameObject() {
Object o = new Object();
assertTrue(CoreUtil.areEqual(o, o));
}
public void testAreEqualNull() {
assertTrue(CoreUtil.areEqual(null, null));
}
public void testAreEqualRightNotNull() {
assertFalse(CoreUtil.areEqual(null, new Object()));
}
public void testAreEqualLeftNotNull() {
assertFalse(CoreUtil.areEqual(new Object(), null));
}
public void testAreEqualUnequalObject() {
assertFalse(CoreUtil.areEqual(1, "a"));
}
public void testAreEqualUnequalStrings() {
assertFalse(CoreUtil.areEqual("a", "b"));
}
public void testGetRuntimeVersion() {
String oldValue = System.setProperty("java.runtime.version", "1.5.0_2");
try {
assertEquals(new Version(1, 5, 0, "2"), CoreUtil.getRuntimeVersion());
} finally {
System.setProperty("java.runtime.version", oldValue);
}
}
public void testGetRuntimeVersionShort() {
String oldValue = System.setProperty("java.runtime.version", "1.7");
try {
assertEquals(new Version(1, 7, 0), CoreUtil.getRuntimeVersion());
} finally {
System.setProperty("java.runtime.version", oldValue);
}
}
public void testGetRuntimeVersionLetters() {
String oldValue = System.setProperty("java.runtime.version", "1.7-CUSTOM");
try {
assertEquals(new Version(1, 7, 0), CoreUtil.getRuntimeVersion());
} finally {
System.setProperty("java.runtime.version", oldValue);
}
}
public void testGetRuntimeVersionTrailingUnderscore() {
String oldValue = System.setProperty("java.runtime.version", "1.5.0_");
try {
assertEquals(new Version(1, 5, 0), CoreUtil.getRuntimeVersion());
} finally {
System.setProperty("java.runtime.version", oldValue);
}
}
public void testGetRuntimeVersionNoQualifier() {
String oldValue = System.setProperty("java.runtime.version", "1.2.0");
try {
assertEquals(new Version(1, 2, 0), CoreUtil.getRuntimeVersion());
} finally {
System.setProperty("java.runtime.version", oldValue);
}
}
public void testGetRuntimeVersionProperty() {
String oldValue1 = System.setProperty("java.runtime.version", "1.2.0");
String oldValue2 = System.setProperty("java.version", "1.3.0");
try {
assertEquals(new Version(1, 2, 0), CoreUtil.getRuntimeVersion());
} finally {
System.setProperty("java.runtime.version", oldValue1);
System.setProperty("java.version", oldValue2);
}
}
public void testGetRuntimeVersionPropertyNull() {
String oldValue1 = System.clearProperty("java.runtime.version");
String oldValue2 = System.setProperty("java.version", "1.3.0");
try {
assertEquals(new Version(1, 3, 0), CoreUtil.getRuntimeVersion());
} finally {
System.setProperty("java.runtime.version", oldValue1);
System.setProperty("java.version", oldValue2);
}
}
public void testGetRuntimeVersionMatch() {
String oldValue = System.setProperty("java.runtime.version", "1.6.0_26");
try {
assertFalse(new VersionRange("[0.0.0,1.6.0.25]").isIncluded(CoreUtil.getRuntimeVersion()));
assertTrue(new VersionRange("[0.0.0,1.6.0.26]").isIncluded(CoreUtil.getRuntimeVersion()));
} finally {
System.setProperty("java.runtime.version", oldValue);
}
}
public void testAsFileName() {
assertEquals("abc", CoreUtil.asFileName("abc"));
assertEquals("a.b.c", CoreUtil.asFileName("a.b.c"));
assertEquals("", CoreUtil.asFileName(""));
}
public void testAsFileNameSpaces() {
assertEquals("%20%20", CoreUtil.asFileName(" "));
assertEquals(".%20", CoreUtil.asFileName(". "));
}
public void testAsFileNamePercent() {
assertEquals("%25abc", CoreUtil.asFileName("%abc"));
assertEquals("%2525abc", CoreUtil.asFileName("%25abc"));
}
public void testDecode() {
assertEquals("abc", CoreUtil.encode("abc"));
assertEquals("%2D_", CoreUtil.encode("-"));
assertEquals("abc%2D_123", CoreUtil.encode("abc-123"));
assertEquals("", CoreUtil.encode(""));
}
public void testDecodeInvalid() {
try {
String s = CoreUtil.decode("abc-123");
fail("Expected IllegalArgumentException, got '" + s + "'");
} catch (IllegalArgumentException e) {
}
try {
String s = CoreUtil.decode("%Z_");
fail("Expected IllegalArgumentException, got '" + s + "'");
} catch (IllegalArgumentException e) {
}
}
public void testEncode() {
assertEquals("abc", CoreUtil.decode("abc"));
assertEquals("-", CoreUtil.decode("%2D_"));
assertEquals("abc-123", CoreUtil.decode("abc%2D_123"));
assertEquals("abc-123", CoreUtil.decode(CoreUtil.decode(CoreUtil.encode(CoreUtil.encode("abc-123")))));
}
}