mirror of
https://github.com/haraldk/TwelveMonkeys.git
synced 2025-08-05 12:35:29 -04:00
Made test cases more reliable.
This commit is contained in:
parent
18b86f8d26
commit
46ab06f471
@ -2,6 +2,8 @@ package com.twelvemonkeys.imageio.spi;
|
|||||||
|
|
||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
|
import java.net.URL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ProviderInfoTestCase
|
* ProviderInfoTestCase
|
||||||
*
|
*
|
||||||
@ -24,23 +26,20 @@ public class ProviderInfoTestCase extends TestCase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testGetVendorUnknownPackage() {
|
public void testGetVendorNonJARPackage() {
|
||||||
// TODO: FixMe: This test will fail if for some reason JUnit adds manifest info to their JAR..
|
ProviderInfo info = new ProviderInfo(mockNonJARPackage("org.foo"));
|
||||||
ProviderInfo info = new ProviderInfo(Package.getPackage("junit.framework"));
|
|
||||||
|
|
||||||
String vendor = info.getVendorName();
|
String vendor = info.getVendorName();
|
||||||
assertNotNull(vendor);
|
assertNotNull(vendor);
|
||||||
assertEquals("junit.framework", vendor);
|
assertEquals("org.foo", vendor);
|
||||||
|
|
||||||
String version = info.getVersion();
|
String version = info.getVersion();
|
||||||
assertNotNull(version);
|
assertNotNull(version);
|
||||||
assertEquals("DEV", version);
|
assertEquals("DEV", version);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testGetVendorTMPackage() {
|
public void testGetVendorNonJARTMPackage() {
|
||||||
// TODO: FixMe: This test will fail if for some reason the tests are run from within a JAR-file,
|
ProviderInfo info = new ProviderInfo(mockNonJARPackage("com.twelvemonkeys"));
|
||||||
// and depends on implementation details.
|
|
||||||
ProviderInfo info = new ProviderInfo(getClass().getPackage());
|
|
||||||
|
|
||||||
String vendor = info.getVendorName();
|
String vendor = info.getVendorName();
|
||||||
assertNotNull(vendor);
|
assertNotNull(vendor);
|
||||||
@ -51,25 +50,48 @@ public class ProviderInfoTestCase extends TestCase {
|
|||||||
assertEquals("DEV", version);
|
assertEquals("DEV", version);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testGetVendorKnownPackage() {
|
public void testGetVendorKnownJARPackage() {
|
||||||
// TODO: FixMe: This test depends on implementation details, and may fail on various JRE's...
|
ProviderInfo info = new ProviderInfo(mockJARPackage("com.acme", "1.7u4-BETA-b39", "Acme"));
|
||||||
ProviderInfo info = new ProviderInfo(Package.getPackage("java.util"));
|
|
||||||
|
|
||||||
String vendor = info.getVendorName();
|
String vendor = info.getVendorName();
|
||||||
assertNotNull(vendor);
|
assertNotNull(vendor);
|
||||||
assertFalse("".equals(vendor));
|
assertEquals("Acme", vendor);
|
||||||
|
|
||||||
// NOTE: Does not work: assertEquals(System.getProperty("java.vendor"), vendor);
|
|
||||||
assertFalse("TwelveMonkeys".equals(vendor));
|
|
||||||
assertFalse("java.util".equals(vendor));
|
|
||||||
|
|
||||||
String version = info.getVersion();
|
String version = info.getVersion();
|
||||||
assertNotNull(version);
|
assertNotNull(version);
|
||||||
assertFalse("".equals(version));
|
assertEquals("1.7u4-BETA-b39", version);
|
||||||
assertFalse("DEV".equals(version));
|
}
|
||||||
|
|
||||||
// Is this safe to assume?
|
private Package mockNonJARPackage(final String pName) {
|
||||||
String jreVersion = System.getProperty("java.version");
|
return new MockClassLoader().mockPackage(
|
||||||
assertTrue(jreVersion.equals(version) || jreVersion.startsWith(version) || version.startsWith(jreVersion));
|
pName,
|
||||||
|
null, null, null,
|
||||||
|
null, null, null,
|
||||||
|
null
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Package mockJARPackage(final String pName, final String pImplVersion, final String pImplVendor) {
|
||||||
|
return new MockClassLoader().mockPackage(
|
||||||
|
pName,
|
||||||
|
"The almighty specification", "1.0", "Acme Inc",
|
||||||
|
"The buggy implementation", pImplVersion, pImplVendor,
|
||||||
|
null
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class MockClassLoader extends ClassLoader {
|
||||||
|
protected MockClassLoader() {
|
||||||
|
super(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Package mockPackage(String name, String specTitle, String specVersion, String specVendor, String implTitle, String implVersion, String implVendor, URL sealBase) throws IllegalArgumentException {
|
||||||
|
return definePackage(name, specTitle, specVersion, specVendor, implTitle, implVersion, implVendor, sealBase);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Package getPackage(String name) {
|
||||||
|
return null; // Allow re-createing packages
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user