From 08bb3a5a0e7573622aa6dc25763cb6513095093b Mon Sep 17 00:00:00 2001 From: Mark Struberg Date: Sun, 14 Oct 2018 21:12:52 +0200 Subject: [PATCH] move openjpa-lib tests to junit4 style No more junit3 extends TestCase stuff ^^ --- .../apache/openjpa/meta/TestAccessCode.java | 1 - .../TestConfigurationProviderPrefixes.java | 29 +- .../openjpa/lib/conf/TestConfigurations.java | 14 +- .../apache/openjpa/lib/conf/TestValue.java | 9 +- .../lib/conf/TestXMLCaseConversions.java | 7 +- .../lib/conf/test/TestConfigurationImpl.java | 28 +- .../lib/conf/test/TestPluginValue.java | 13 +- .../lib/graph/TestDepthFirstAnalysis.java | 14 +- .../apache/openjpa/lib/graph/TestGraph.java | 12 +- .../lib/identifier/TestIdentifiers.java | 4 + .../openjpa/lib/rop/ResultListTest.java | 31 +- .../openjpa/lib/rop/TestEagerResultList.java | 7 +- .../lib/rop/TestLazyForwardResultList.java | 8 +- .../openjpa/lib/rop/TestListResultList.java | 7 +- .../rop/TestMergedResultObjectProvider.java | 7 - ...TestOrderedMergedResultObjectProvider.java | 8 - .../lib/rop/TestRandomAccessResultList.java | 7 - .../rop/TestRangeResultObjectProvider.java | 6 - .../openjpa/lib/rop/TestSimpleResultList.java | 7 - .../rop/TestSoftRandomAccessResultList.java | 7 - .../openjpa/lib/rop/TestWindowResultList.java | 6 - .../openjpa/lib/test/AbstractTestCase.java | 858 +----------------- .../lib/util/TestAbstractEventManager.java | 22 +- .../openjpa/lib/util/TestLocalizer.java | 52 +- .../lib/util/TestMultiClassLoader.java | 56 +- .../apache/openjpa/lib/util/TestOptions.java | 26 +- .../lib/util/TestParameterTemplate.java | 22 +- .../lib/util/TestPropertiesParser.java | 28 +- .../openjpa/lib/util/TestReferenceSet.java | 17 +- .../openjpa/lib/util/TestSimpleRegex.java | 11 +- .../lib/util/TestTemporaryClassLoader.java | 6 +- .../openjpa/lib/util/TestTypedProperties.java | 27 +- .../openjpa/lib/util/TestUUIDGenerator.java | 13 +- .../openjpa/lib/util/svn/TestSVNUtils.java | 26 +- .../openjpa/lib/xml/TestDocTypeReader.java | 25 +- .../apache/openjpa/lib/xml/TestXMLWriter.java | 21 +- 36 files changed, 256 insertions(+), 1186 deletions(-) diff --git a/openjpa-kernel/src/test/java/org/apache/openjpa/meta/TestAccessCode.java b/openjpa-kernel/src/test/java/org/apache/openjpa/meta/TestAccessCode.java index 1cb699c37..528aaca61 100644 --- a/openjpa-kernel/src/test/java/org/apache/openjpa/meta/TestAccessCode.java +++ b/openjpa-kernel/src/test/java/org/apache/openjpa/meta/TestAccessCode.java @@ -18,7 +18,6 @@ */ package org.apache.openjpa.meta; -import junit.framework.TestCase; import org.junit.Test; import static org.junit.Assert.*; diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/TestConfigurationProviderPrefixes.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/TestConfigurationProviderPrefixes.java index 23fc12332..f83b1d847 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/TestConfigurationProviderPrefixes.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/TestConfigurationProviderPrefixes.java @@ -24,18 +24,22 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import junit.framework.TestCase; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import static org.junit.Assert.fail; -public class TestConfigurationProviderPrefixes - extends TestCase { +public class TestConfigurationProviderPrefixes { private static final String CUSTOM_PREFIX = TestConfigurationProviderPrefixes.class.getName(); private String[] _origPrefixes; - @Override + @Before public void setUp() { _origPrefixes = ProductDerivations.getConfigurationPrefixes(); List l = new ArrayList(Arrays.asList(_origPrefixes)); @@ -44,45 +48,52 @@ public class TestConfigurationProviderPrefixes (String[]) l.toArray(new String[0])); } - @Override + @After public void tearDown() { ProductDerivations.setConfigurationPrefixes(_origPrefixes); } + @Test public void testPrefixContents() { String[] prefixes = ProductDerivations.getConfigurationPrefixes(); - assertEquals(CUSTOM_PREFIX, prefixes[prefixes.length - 1]); - assertEquals("openjpa", prefixes[0]); + Assert.assertEquals(CUSTOM_PREFIX, prefixes[prefixes.length - 1]); + Assert.assertEquals("openjpa", prefixes[0]); } + @Test public void testPartialKeyAndNullMap() { assertEquals("openjpa.Foo", "Foo", (Map) null, null); } + @Test public void testPartialKeyWithInvalidPrefix() { Map map = new HashMap(); map.put("bar.Foo", "value"); assertEquals("openjpa.Foo", "Foo", map, null); } + @Test public void testPartialKeyWithoutMatch() { Map map = new HashMap(); map.put("bar.Baz", "value"); assertEquals("openjpa.Foo", "Foo", map, null); } + @Test public void testPartialKeyWithOpenJPAMatch() { Map map = new HashMap(); map.put("openjpa.Foo", "value"); assertEquals("openjpa.Foo", "Foo", map, "value"); } + @Test public void testPartialKeyWithCustomMatch() { Map map = new HashMap(); map.put(CUSTOM_PREFIX + ".Foo", "value"); assertEquals(CUSTOM_PREFIX + ".Foo", "Foo", map, "value"); } + @Test public void testPartialKeyDuplicateFullKeys() { Map map = new HashMap(); map.put(CUSTOM_PREFIX + ".Foo", "value"); @@ -97,9 +108,9 @@ public class TestConfigurationProviderPrefixes private static void assertEquals(String fullKey, String partialKey, Map map, Object value) { - assertEquals(fullKey, ProductDerivations.getConfigurationKey( + Assert.assertEquals(fullKey, ProductDerivations.getConfigurationKey( partialKey, map)); if (map != null) - assertEquals(value, map.get(fullKey)); + Assert.assertEquals(value, map.get(fullKey)); } } diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/TestConfigurations.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/TestConfigurations.java index 5a4c81920..506d3c0f4 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/TestConfigurations.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/TestConfigurations.java @@ -23,6 +23,10 @@ import java.util.Map; import org.apache.openjpa.lib.test.AbstractTestCase; import org.apache.openjpa.lib.util.Options; +import org.junit.Test; + +import static org.junit.Assert.*; + /** * Tests the {@link Configurations} class. @@ -31,10 +35,7 @@ import org.apache.openjpa.lib.util.Options; */ public class TestConfigurations extends AbstractTestCase { - public TestConfigurations(String test) { - super(test); - } - + @Test public void testParsePlugin() { String str = null; assertNull(Configurations.getClassName(str)); @@ -59,6 +60,7 @@ public class TestConfigurations extends AbstractTestCase { assertEquals("a='b,c d', c='d'", Configurations.getProperties(str)); } + @Test public void testParseProperties() { Options opts = Configurations.parseProperties(null); assertEquals(0, opts.size()); @@ -86,6 +88,7 @@ public class TestConfigurations extends AbstractTestCase { assertEquals("baz baz", opts.getProperty("biz")); } + @Test public void testCombinePlugins() { assertPluginsCombined("jpa", null, null, null, @@ -142,7 +145,4 @@ public class TestConfigurations extends AbstractTestCase { return map; } - public static void main(String[] args) { - main(TestConfigurations.class); - } } diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/TestValue.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/TestValue.java index af4a9db47..6f45888d8 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/TestValue.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/TestValue.java @@ -18,9 +18,11 @@ */ package org.apache.openjpa.lib.conf; -import junit.framework.TestCase; +import org.junit.Test; -public class TestValue extends TestCase { +import static org.junit.Assert.*; + +public class TestValue { private static class SimpleValue extends Value { @@ -50,6 +52,7 @@ public class TestValue extends TestCase { } + @Test public void testSetAliasesByValue() { String alias = "alias"; String aName = "Johnny"; @@ -64,6 +67,7 @@ public class TestValue extends TestCase { assertEquals("Array of aliases not set by value", aName, aStrings[1]); } + @Test public void testEquivalentValueCanBeSet() { SimpleValue v = new SimpleValue(); v.setProperty("main"); @@ -79,6 +83,7 @@ public class TestValue extends TestCase { assertFalse(v.matches("eqivalent3")); } + @Test public void testEquivalentValuesAreUnmodifable() { SimpleValue v = new SimpleValue(); v.setProperty("main"); diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/TestXMLCaseConversions.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/TestXMLCaseConversions.java index 4edeac4ac..24f07c763 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/TestXMLCaseConversions.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/TestXMLCaseConversions.java @@ -23,11 +23,14 @@ import java.io.File; import java.io.FileReader; import java.io.IOException; -import junit.framework.TestCase; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; -public class TestXMLCaseConversions extends TestCase { +public class TestXMLCaseConversions { + @Test public void testToXMLName() { assertEquals("easy-xml-conversion", ConfigurationImpl.toXMLName("easyXmlConversion")); diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/test/TestConfigurationImpl.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/test/TestConfigurationImpl.java index bd711313a..ae55bfae7 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/test/TestConfigurationImpl.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/test/TestConfigurationImpl.java @@ -32,6 +32,13 @@ import org.apache.openjpa.lib.conf.StringValue; import org.apache.openjpa.lib.conf.Value; import org.apache.openjpa.lib.test.AbstractTestCase; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import static org.junit.Assert.*; + + /** * Tests the {@link ConfigurationImpl} type. This needs to be placed * in a sub-package so that it can have its own localizer.properties @@ -49,24 +56,20 @@ public class TestConfigurationImpl extends AbstractTestCase { private ConfigurationTest _conf = new ConfigurationTest(); - public TestConfigurationImpl(String test) { - super(test); - } - - @Override + @Before public void setUp() { System.setProperty("openjpatest.properties", "test.properties"); } - @Override + @After public void tearDown() throws Exception { System.setProperty("openjpatest.properties", ""); - super.tearDown(); } /** * Test that global properties are found and loaded. */ + @Test public void testGlobals() { System.setProperty("openjpa.sysKey", "sysvalue"); assertNull(_conf.getTestKey()); @@ -103,6 +106,7 @@ public class TestConfigurationImpl extends AbstractTestCase { /** * Test that the configuration is serialized to properties correctly. */ + @Test public void testToProperties() { assertTrue(_conf.loadGlobals()); assertEquals("testvalue", _conf.getTestKey()); @@ -121,6 +125,7 @@ public class TestConfigurationImpl extends AbstractTestCase { /** * Tests properties caching. */ + @Test public void testPropertiesCaching() { _conf.setTestKey("val"); _conf.setPluginKey("java.lang.Object"); @@ -142,6 +147,7 @@ public class TestConfigurationImpl extends AbstractTestCase { /** * Test the equals method. */ + @Test public void testEquals() { ConfigurationTest conf = new ConfigurationTest(); conf.setTestKey(_conf.getTestKey()); @@ -165,6 +171,7 @@ public class TestConfigurationImpl extends AbstractTestCase { /** * Test using bean introspection. */ + @Test public void testBeanAccessors() throws Exception { PropertyDescriptor[] pds = _conf.getPropertyDescriptors(); for (int i = 0; i < pds.length; i++) { @@ -201,6 +208,7 @@ public class TestConfigurationImpl extends AbstractTestCase { /** * Test freezing. */ + @Test public void testFreezing() { assertTrue(!_conf.isReadOnly()); _conf.setReadOnly(Configuration.INIT_STATE_FROZEN); @@ -222,6 +230,7 @@ public class TestConfigurationImpl extends AbstractTestCase { /** * Test serialization. */ + @Test public void testSerialization() throws Exception { assertTrue(_conf.loadGlobals()); _conf.setTestKey("testvalue"); @@ -248,6 +257,7 @@ public class TestConfigurationImpl extends AbstractTestCase { assertEquals("", copy2.getPluginKeyInstance().toString()); } + @Test public void testProductDerivationCloseCallback() { // toggle the static. This will be reset by the close invocation. ConfigurationTestProductDerivation.closed = false; @@ -255,10 +265,6 @@ public class TestConfigurationImpl extends AbstractTestCase { assertTrue(ConfigurationTestProductDerivation.closed); } - public static void main(String[] args) { - main(); - } - private static class ConfigurationTest extends ConfigurationImpl { private final StringValue _testKey; diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/test/TestPluginValue.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/test/TestPluginValue.java index f19e6d351..5417d2575 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/test/TestPluginValue.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/conf/test/TestPluginValue.java @@ -23,6 +23,9 @@ import org.apache.openjpa.lib.conf.PluginValue; import org.apache.openjpa.lib.conf.StringValue; import org.apache.openjpa.lib.conf.Value; import org.apache.openjpa.lib.test.AbstractTestCase; +import org.junit.Test; + +import static org.junit.Assert.*; /** * Tests the {@link Value}, {@link PluginValue}, and @@ -32,10 +35,7 @@ import org.apache.openjpa.lib.test.AbstractTestCase; */ public class TestPluginValue extends AbstractTestCase { - public TestPluginValue(String test) { - super(test); - } - + @Test public void testDefault() { defaultTest(new StringValue("testKey")); defaultTest(new PluginValue("testKey", true)); @@ -74,6 +74,7 @@ public class TestPluginValue extends AbstractTestCase { assertEquals(null, val.get()); } + @Test public void testAlias() { aliasTest(new StringValue("testKey")); aliasTest(new PluginValue("testKey", true)); @@ -131,6 +132,7 @@ public class TestPluginValue extends AbstractTestCase { assertTrue(((PluginListValue) val).getClassNames().length == 0); } + @Test public void testPluginListParsing() { PluginListValue val = new PluginListValue("testKey"); assertEquals(0, val.getClassNames().length); @@ -175,7 +177,4 @@ public class TestPluginValue extends AbstractTestCase { public void setTestKey(String key) { } - public static void main(String[] args) { - main(); - } } diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/graph/TestDepthFirstAnalysis.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/graph/TestDepthFirstAnalysis.java index 68fe705e2..eb4e9e851 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/graph/TestDepthFirstAnalysis.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/graph/TestDepthFirstAnalysis.java @@ -23,6 +23,11 @@ import java.util.Iterator; import java.util.List; import org.apache.openjpa.lib.test.AbstractTestCase; +import org.junit.Before; +import org.junit.Test; + +import static org.junit.Assert.*; + /** *

Tests the {@link DepthFirstAnalysis} type.

@@ -34,7 +39,7 @@ public class TestDepthFirstAnalysis private DepthFirstAnalysis _dfa = null; - @Override + @Before public void setUp() { setUpGraph1(); } @@ -79,6 +84,7 @@ public class TestDepthFirstAnalysis _dfa = new DepthFirstAnalysis(graph); } + @Test public void testNodeSorting() { Collection nodes = _dfa.getSortedNodes(); assertEquals(4, nodes.size()); @@ -92,6 +98,7 @@ public class TestDepthFirstAnalysis } } + @Test public void testEdgeTyping() { Collection edges = _dfa.getEdges(Edge.TYPE_BACK); assertEquals(2, edges.size()); @@ -102,6 +109,7 @@ public class TestDepthFirstAnalysis || edge1.getTo().equals(edge1.getFrom())); } + @Test public void testBackEdges() { setUpGraph2(); Collection edges = _dfa.getEdges(Edge.TYPE_BACK); @@ -130,6 +138,7 @@ public class TestDepthFirstAnalysis } } + @Test public void testForwardEdges() { setUpGraph2(); Collection edges = _dfa.getEdges(Edge.TYPE_FORWARD); @@ -153,7 +162,4 @@ public class TestDepthFirstAnalysis } } - public static void main(String[] args) { - main(TestDepthFirstAnalysis.class); - } } diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/graph/TestGraph.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/graph/TestGraph.java index 11c2e83cd..a1da2db14 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/graph/TestGraph.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/graph/TestGraph.java @@ -22,6 +22,10 @@ import java.util.Collection; import java.util.Iterator; import org.apache.openjpa.lib.test.AbstractTestCase; +import org.junit.Before; +import org.junit.Test; + +import static org.junit.Assert.*; /** *

Tests the {@link Graph} type, and in so doing implicitly tests the @@ -41,7 +45,7 @@ public class TestGraph private Edge _edge3 = new Edge(_node1, _node3, false); private Edge _edge4 = new Edge(_node2, _node2, false); - @Override + @Before public void setUp() { _graph.addNode(_node1); _graph.addNode(_node2); @@ -55,6 +59,7 @@ public class TestGraph /** * Tests adding and retrieving nodes and edges. */ + @Test public void testAddRetrieve() { assertEquals(3, _graph.getNodes().size()); assertEquals(4, _graph.getEdges().size()); @@ -106,6 +111,7 @@ public class TestGraph /** * Test removing edges. */ + @Test public void testRemoveEdges() { assertTrue(_graph.removeEdge(_edge2)); Collection edges = _graph.getEdgesFrom(_node2); @@ -127,6 +133,7 @@ public class TestGraph /** * Test removing nodes. */ + @Test public void testRemoveNodes() { assertTrue(_graph.removeNode(_node3)); Collection edges = _graph.getEdges(); @@ -143,7 +150,4 @@ public class TestGraph assertEquals(0, edges.size()); } - public static void main(String[] args) { - main(TestGraph.class); - } } diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/identifier/TestIdentifiers.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/identifier/TestIdentifiers.java index 2eb0caf20..5fabf4eb7 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/identifier/TestIdentifiers.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/identifier/TestIdentifiers.java @@ -19,9 +19,13 @@ package org.apache.openjpa.lib.identifier; import org.apache.openjpa.lib.test.AbstractTestCase; +import org.junit.Test; + +import static org.junit.Assert.*; public class TestIdentifiers extends AbstractTestCase { + @Test public void testIdentifierConversion() { // Create a naming configs used for testing. diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/ResultListTest.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/ResultListTest.java index 1a0e45fca..3fd7fe3cf 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/ResultListTest.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/ResultListTest.java @@ -27,6 +27,10 @@ import java.util.ListIterator; import java.util.NoSuchElementException; import org.apache.openjpa.lib.test.AbstractTestCase; +import org.junit.Before; +import org.junit.Test; + +import static org.junit.Assert.*; /** * Tests for {@link ResultList} implementations. @@ -39,12 +43,12 @@ public abstract class ResultListTest extends AbstractTestCase { protected boolean subListSupported = false; - public ResultListTest(String test) { - super(test); + + public ResultListTest() { + this(false); } - public ResultListTest(String test, boolean supportSubList) { - super(test); + public ResultListTest(boolean supportSubList) { subListSupported = supportSubList; } @@ -63,7 +67,7 @@ public abstract class ResultListTest extends AbstractTestCase { }; } - @Override + @Before public void setUp() { List results = new ArrayList(100); for (int i = 0; i < 100; i++) @@ -74,6 +78,7 @@ public abstract class ResultListTest extends AbstractTestCase { _lists[i] = getResultList(rops[i]); } + @Test public void testIterator() { for (int i = 0; i < _lists.length; i++) { Iterator itr = _lists[i].iterator(); @@ -90,6 +95,7 @@ public abstract class ResultListTest extends AbstractTestCase { } } + @Test public void testIteratorModification() { for (int i = 0; i < _lists.length; i++) { try { @@ -102,6 +108,7 @@ public abstract class ResultListTest extends AbstractTestCase { } } + @Test public void testListIteratorForward() { for (int i = 0; i < _lists.length; i++) { ListIterator itr = _lists[i].listIterator(); @@ -120,6 +127,7 @@ public abstract class ResultListTest extends AbstractTestCase { } } + @Test public void testListIteratorIndex() { for (int i = 0; i < _lists.length; i++) { ListIterator itr = _lists[i].listIterator(50); @@ -138,6 +146,7 @@ public abstract class ResultListTest extends AbstractTestCase { } } + @Test public void testListIteratorReverse() { for (int i = 0; i < _lists.length; i++) { ListIterator itr = _lists[i].listIterator(100); @@ -156,6 +165,7 @@ public abstract class ResultListTest extends AbstractTestCase { } } + @Test public void testListIteratorModification() { for (int i = 0; i < _lists.length; i++) { try { @@ -168,12 +178,14 @@ public abstract class ResultListTest extends AbstractTestCase { } } + @Test public void testMultipleIterations() { testListIteratorIndex(); testListIteratorForward(); testListIteratorReverse(); } + @Test public void testContains() { for (int i = 0; i < _lists.length; i++) { assertTrue(_lists[i].contains("0")); @@ -189,6 +201,7 @@ public abstract class ResultListTest extends AbstractTestCase { } } + @Test public void testModification() { for (int i = 0; i < _lists.length; i++) { try { @@ -209,6 +222,7 @@ public abstract class ResultListTest extends AbstractTestCase { } } + @Test public void testGetBegin() { for (int i = 0; i < _lists.length; i++) { for (int j = 0; j < 10; j++) @@ -222,12 +236,14 @@ public abstract class ResultListTest extends AbstractTestCase { } } + @Test public void testGetMiddle() { for (int i = 0; i < _lists.length; i++) for (int j = 50; j < 60; j++) assertEquals(String.valueOf(j), _lists[i].get(j)); } + @Test public void testGetEnd() { for (int i = 0; i < _lists.length; i++) { for (int j = 90; j < 100; j++) @@ -241,12 +257,14 @@ public abstract class ResultListTest extends AbstractTestCase { } } + @Test public void testGetReverse() { for (int i = 0; i < _lists.length; i++) for (int j = 99; j > -1; j--) assertEquals(String.valueOf(j), _lists[i].get(j)); } + @Test public void testMultipleGet() { testGetMiddle(); testGetBegin(); @@ -262,12 +280,14 @@ public abstract class ResultListTest extends AbstractTestCase { testGetEnd(); } + @Test public void testSize() { for (int i = 0; i < _lists.length; i++) assertTrue(_lists[i].size() == 100 || _lists[i].size() == Integer.MAX_VALUE); } + @Test public void testEmpty() { ResultObjectProvider[] rops = getResultObjectProviders (Collections.EMPTY_LIST); @@ -278,6 +298,7 @@ public abstract class ResultListTest extends AbstractTestCase { } } + @Test public void testSubList() { ResultObjectProvider[] rops = getResultObjectProviders (Collections.EMPTY_LIST); diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestEagerResultList.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestEagerResultList.java index dcf0e6216..9e8152262 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestEagerResultList.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestEagerResultList.java @@ -25,8 +25,8 @@ package org.apache.openjpa.lib.rop; */ public class TestEagerResultList extends ResultListTest { - public TestEagerResultList(String test) { - super(test, true); + public TestEagerResultList() { + super(true); } @Override @@ -34,7 +34,4 @@ public class TestEagerResultList extends ResultListTest { return new EagerResultList(provider); } - public static void main(String[] args) { - main(); - } } diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestLazyForwardResultList.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestLazyForwardResultList.java index fa0d822f6..2feeff20a 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestLazyForwardResultList.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestLazyForwardResultList.java @@ -25,16 +25,12 @@ package org.apache.openjpa.lib.rop; */ public class TestLazyForwardResultList extends ResultListTest { - public TestLazyForwardResultList(String test) { - super(test, true); + public TestLazyForwardResultList() { + super(true); } @Override protected ResultList getResultList(ResultObjectProvider provider) { return new LazyForwardResultList(provider); } - - public static void main(String[] args) { - main(); - } } diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestListResultList.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestListResultList.java index 46d13d101..d590112d8 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestListResultList.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestListResultList.java @@ -25,8 +25,8 @@ package org.apache.openjpa.lib.rop; */ public class TestListResultList extends ResultListTest { - public TestListResultList(String test) { - super(test, true); + public TestListResultList() { + super(true); } @Override @@ -35,7 +35,4 @@ public class TestListResultList extends ResultListTest { getDelegate()); } - public static void main(String[] args) { - main(); - } } diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestMergedResultObjectProvider.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestMergedResultObjectProvider.java index 8f40765a2..2417d623c 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestMergedResultObjectProvider.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestMergedResultObjectProvider.java @@ -28,10 +28,6 @@ import java.util.List; */ public class TestMergedResultObjectProvider extends ResultListTest { - public TestMergedResultObjectProvider(String test) { - super(test); - } - @Override protected ResultList getResultList(ResultObjectProvider provider) { return new WindowResultList(provider, 10); @@ -62,7 +58,4 @@ public class TestMergedResultObjectProvider extends ResultListTest { return merges; } - public static void main(String[] args) { - main(); - } } diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestOrderedMergedResultObjectProvider.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestOrderedMergedResultObjectProvider.java index 9fe240e2f..a1b189ccb 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestOrderedMergedResultObjectProvider.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestOrderedMergedResultObjectProvider.java @@ -30,10 +30,6 @@ import java.util.List; */ public class TestOrderedMergedResultObjectProvider extends ResultListTest { - public TestOrderedMergedResultObjectProvider(String test) { - super(test); - } - @Override protected ResultList getResultList(ResultObjectProvider provider) { return new WindowResultList(provider, 10); @@ -64,10 +60,6 @@ public class TestOrderedMergedResultObjectProvider extends ResultListTest { }; } - public static void main(String[] args) { - main(); - } - private static class IntValueComparator implements Comparator { @Override diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestRandomAccessResultList.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestRandomAccessResultList.java index a9902b14b..177e6745f 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestRandomAccessResultList.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestRandomAccessResultList.java @@ -25,16 +25,9 @@ package org.apache.openjpa.lib.rop; */ public class TestRandomAccessResultList extends ResultListTest { - public TestRandomAccessResultList(String test) { - super(test); - } - @Override protected ResultList getResultList(ResultObjectProvider provider) { return new RandomAccessResultList(provider); } - public static void main(String[] args) { - main(); - } } diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestRangeResultObjectProvider.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestRangeResultObjectProvider.java index 3ebe13c08..ac684b74d 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestRangeResultObjectProvider.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestRangeResultObjectProvider.java @@ -28,9 +28,6 @@ import java.util.List; */ public class TestRangeResultObjectProvider extends ResultListTest { - public TestRangeResultObjectProvider(String test) { - super(test); - } @Override protected ResultList getResultList(ResultObjectProvider provider) { @@ -66,7 +63,4 @@ public class TestRangeResultObjectProvider extends ResultListTest { return ranges; } - public static void main(String[] args) { - main(); - } } diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestSimpleResultList.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestSimpleResultList.java index be058eb83..862a7a430 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestSimpleResultList.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestSimpleResultList.java @@ -25,16 +25,9 @@ package org.apache.openjpa.lib.rop; */ public class TestSimpleResultList extends ResultListTest { - public TestSimpleResultList(String test) { - super(test); - } - @Override protected ResultList getResultList(ResultObjectProvider provider) { return new SimpleResultList(provider); } - public static void main(String[] args) { - main(); - } } diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestSoftRandomAccessResultList.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestSoftRandomAccessResultList.java index f58f2ea5d..d6046f160 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestSoftRandomAccessResultList.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestSoftRandomAccessResultList.java @@ -25,16 +25,9 @@ package org.apache.openjpa.lib.rop; */ public class TestSoftRandomAccessResultList extends ResultListTest { - public TestSoftRandomAccessResultList(String test) { - super(test); - } - @Override protected ResultList getResultList(ResultObjectProvider provider) { return new SoftRandomAccessResultList(provider); } - public static void main(String[] args) { - main(); - } } diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestWindowResultList.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestWindowResultList.java index 8e606a0e3..db15ebdc7 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestWindowResultList.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/rop/TestWindowResultList.java @@ -25,16 +25,10 @@ package org.apache.openjpa.lib.rop; */ public class TestWindowResultList extends ResultListTest { - public TestWindowResultList(String test) { - super(test); - } @Override protected ResultList getResultList(ResultObjectProvider provider) { return new WindowResultList(provider, 10); } - public static void main(String[] args) { - main(); - } } diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/test/AbstractTestCase.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/test/AbstractTestCase.java index adb72fdc2..18a3ff49e 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/test/AbstractTestCase.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/test/AbstractTestCase.java @@ -18,40 +18,20 @@ */ package org.apache.openjpa.lib.test; -import java.beans.BeanInfo; -import java.beans.IntrospectionException; -import java.beans.Introspector; -import java.beans.PropertyDescriptor; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.math.BigDecimal; -import java.math.BigInteger; -import java.net.URL; import java.text.NumberFormat; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.Date; -import java.util.HashMap; import java.util.Iterator; -import java.util.LinkedList; import java.util.List; -import java.util.ListIterator; -import java.util.Map; -import java.util.NoSuchElementException; -import java.util.StringTokenizer; import org.apache.openjpa.lib.log.Log; import org.apache.openjpa.lib.log.LogFactoryImpl; @@ -59,13 +39,9 @@ import org.apache.openjpa.lib.util.Localizer; import org.apache.regexp.RE; import org.apache.regexp.RESyntaxException; import org.apache.regexp.REUtil; -import org.apache.tools.ant.AntClassLoader; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.ProjectHelper; -import junit.framework.TestCase; -import junit.framework.TestResult; -import junit.textui.TestRunner; +import org.junit.After; +import static org.junit.Assert.*; /** * TestCase framework to run various tests against solarmetric code. @@ -80,37 +56,13 @@ import junit.textui.TestRunner; * @author Marc Prud'hommeaux * @author Patrick Linskey */ -public abstract class AbstractTestCase extends TestCase { - - public static final String TEST_METHODS = - System.getProperty(AbstractTestCase.class.getName() + ".testMethods"); - public static final long PLATFORM_ALL = 2 << 1; - public static final long PLATFORM_UNKNOWN = 2 << 2; - - public static final String SKIP_TOKEN = "SOLARSKIP"; - public static final String SKIP_DELIMITER = "|"; +public abstract class AbstractTestCase { private static final Localizer _loc = Localizer.forPackage(AbstractTestCase.class); private Log log = null; - private static Map _times = new HashMap(); - - private static AbstractTestCase _lastTest = null; - - private static WatchdogThread _watchdog = new WatchdogThread(); - private long _timeout; - - /** - * Constructor. Create a test case with the specified name. - */ - public AbstractTestCase(String test) { - super(test); - } - - public AbstractTestCase() { - } protected final Log getLog() { if (log == null) @@ -122,112 +74,17 @@ public abstract class AbstractTestCase extends TestCase { // this implementation leaves much to be desired, as it just // creates a new LogFactoryImpl each time, and does not apply // any configurations. - return new LogFactoryImpl().getLog(getLogName()); + return new LogFactoryImpl().getLog(this.getClass().getName()); } - protected String getLogName() { - return "com.solarmetric.Runtime"; - } - /** - * Called before the watchdog thread is about to kill the entire - * JVM due to a test case's timeout. This method offers the - * ability to try to resolve whatever contention is taking place - * in the test. It will be given 10 seconds to try to end the - * test peacefully before the watchdog exits the JVM. - */ - protected void preTimeout() { - } - @Override - public void run(TestResult result) { - if (skipTest()) { - // keep track of the tests we skip so that we can get an - // idea in the autobuild status - System.err.println(SKIP_TOKEN + SKIP_DELIMITER - + ("" + getClass().getName()) - + "." + getName() + SKIP_DELIMITER); - return; - } - if (_lastTest != null && _lastTest.getClass() != getClass()) { - try { - _lastTest.tearDownTestClass(); - } catch (Throwable t) { - getLog().error(null, t); - } - } - - if (_lastTest == null || _lastTest.getClass() != getClass()) { - try { - setUpTestClass(); - } catch (Throwable t) { - getLog().error(null, t); - } - } - - _lastTest = this; - - // inform the watchdog thread that we are entering the test - _watchdog.enteringTest(this); - try { - super.run(result); - } finally { - _watchdog.leavingTest(this); - } - } - - /** - * If this test should be skipped given the current - * environment, return true. This allows a unit test - * class to disable test cases on a per-method granularity, and - * prevents the test from showing up as a passed test just - * because it was skipped. - * For example, if a particular test case method should not be - * run against a certain database, this method could check the - * name of the test result and the current database configuration - * in order to make the decision: - *

- * protected boolean skipTest() { - * // don't run with pointbase: it uses a DataSource, which - * // can't be translated into a JBoss DataSource configuration. - * if ("testJBoss".equals(getName()) && - * getCurrentPlatform() == PLATFORM_POINTBASE) - * return true; - * } - * - * If you want to disable execution of an entire test case - * class for a given database, you might want to add the class to - * the excluded test list in that database's properties file. - */ - protected boolean skipTest() { - if (TEST_METHODS != null && TEST_METHODS.length() > 0) - return TEST_METHODS.indexOf(getName()) == -1; - - return false; - } - - /** - * This method is called before the first test in this test class - * is executed. - */ - public void setUpTestClass() throws Exception { - } - - /** - * This method is called after the last test in this test class - * is executed. It can be used to do things like clean up - * large, slow processes that may have been started. - */ - public void tearDownTestClass() throws Exception { - } - - @Override + @After public void tearDown() throws Exception { if ("true".equals(System.getProperty("meminfo"))) printMemoryInfo(); - super.tearDown(); } ////////////////////////// @@ -262,54 +119,6 @@ public abstract class AbstractTestCase extends TestCase { return new Long((long) (Math.random() * Long.MAX_VALUE)); } - /** - * Support method to get a random Short for testing. - */ - public static Short randomShort() { - return new Short((short) (Math.random() * Short.MAX_VALUE)); - } - - /** - * Support method to get a random Double for testing. - */ - public static Double randomDouble() { - return new Double((double) (Math.round(Math.random() * 5000d)) / 1000d); - } - - /** - * Support method to get a random Float for testing. - */ - public static Float randomFloat() { - return new Float((float) (Math.round(Math.random() * 5000f)) / 1000f); - } - - /** - * Support method to get a random Byte for testing. - */ - public static Byte randomByte() { - return new Byte((byte) (Math.random() * Byte.MAX_VALUE)); - } - - /** - * Support method to get a random Boolean for testing. - */ - public static Boolean randomBoolean() { - return new Boolean(Math.random() > 0.5 ? true : false); - } - - /** - * Support method to get a random Date for testing. - */ - public static Date randomDate() { - long millis = (long) (Math.random() * System.currentTimeMillis()); - - // round millis to the nearest 1000: this is because some - // databases do not store the milliseconds correctly(e.g., MySQL). - // This is a really a bug we should fix. FC #27. - millis -= (millis % 1000); - - return new Date(millis); - } /** * Support method to get a random String for testing. @@ -330,408 +139,11 @@ public abstract class AbstractTestCase extends TestCase { return buf.toString(); } - /** - * Support method to get a random clob for testing. - */ - public static String randomClob() { - StringBuffer sbuf = new StringBuffer(); - while (sbuf.length() < (5 * 1024)) { // at least 5K - sbuf.append(randomString(1024)); - } - - return sbuf.toString(); - } - - /** - * Support method to get a random BigInteger for testing. - */ - public static BigInteger randomBigInteger() { - // too many of our test databases don't support bigints > MAX_LONG: - // I don't like it, but for now, let's only test below MAX_LONG - BigInteger lng = new BigInteger( - ((long) (Math.random() * Long.MAX_VALUE)) + ""); - - BigInteger multiplier = new BigInteger("1"); - // (1 + (int)(Math.random() * 10000)) + ""); - if (Math.random() < 0.5) - multiplier = multiplier.multiply(new BigInteger("-1")); - - return lng.multiply(multiplier); - } - - /** - * Support method to get a random BigDecimal for testing. - */ - public static BigDecimal randomBigDecimal() { - BigInteger start = randomBigInteger(); - String str = start.toString(); - // truncate off the last 8 digits: we still get some - // overflows with lame databases. - for (int i = 0; i < 8; i++) - if (str.length() > 2) - str = str.substring(0, str.length() - 1); - start = new BigInteger(str); - - String val = start + "." + ((int) (Math.random() * 10)) - + ((int) (Math.random() * 10)) - + ((int) (Math.random() * 10)) - + ((int) (Math.random() * 10)) - + ((int) (Math.random() * 10)) - + ((int) (Math.random() * 10)) - + ((int) (Math.random() * 10)) - + ((int) (Math.random() * 10)) - + ((int) (Math.random() * 10)) - + ((int) (Math.random() * 10)); - - return new BigDecimal(val); - } - - /** - * Support method to get a random blob for testing. - */ - public static byte[] randomBlob() { - // up to 100K blob - byte [] blob = new byte [(int) (Math.random() * 1024 * 100)]; - for (int i = 0; i < blob.length; i++) - blob[i] = randomByte().byteValue(); - - return blob; - } - - /** - * Invoke setters for pimitives and primitive wrappers on the - * specified object. - */ - public static Object randomizeBean(Object bean) - throws IntrospectionException, IllegalAccessException, - InvocationTargetException { - BeanInfo info = Introspector.getBeanInfo(bean.getClass()); - PropertyDescriptor [] props = info.getPropertyDescriptors(); - for (int i = 0; i < props.length; i++) { - Method write = props[i].getWriteMethod(); - if (write == null) - continue; - - Class [] params = write.getParameterTypes(); - if (params == null || params.length != 1) - continue; - - Class paramType = params[0]; - Object arg = null; - - if (paramType == boolean.class || paramType == Boolean.class) - arg = randomBoolean(); - else if (paramType == byte.class || paramType == Byte.class) - arg = randomByte(); - else if (paramType == char.class || paramType == Character.class) - arg = randomChar(); - else if (paramType == short.class || paramType == Short.class) - arg = randomShort(); - else if (paramType == int.class || paramType == Integer.class) - arg = randomInt(); - else if (paramType == long.class || paramType == Long.class) - arg = randomLong(); - else if (paramType == double.class || paramType == Double.class) - arg = randomDouble(); - else if (paramType == float.class || paramType == Float.class) - arg = randomFloat(); - else if (paramType == String.class) - arg = randomString(); - else if (paramType == BigInteger.class) - arg = randomBigInteger(); - else if (paramType == BigDecimal.class) - arg = randomBigDecimal(); - else if (paramType == Date.class) - arg = randomDate(); - - if (arg != null) - write.invoke(bean, new Object []{ arg }); - } - - return bean; - } - - /** - * Utility method to start a profile. - * - * @see #endProfile(String) - */ - public void startProfile(String name) { - _times.put(name, new Long(System.currentTimeMillis())); - } - - /** - * Utility to end the profile and print out the time. Example usage: - *

- *

 startProfile("Some long task"); doSomeLongTask();
-     * endProfile("Some long task");
-     * 
- * - * @param name - * @return the amount of time that this profile invocation took, or - * -1 if name was never started. - */ - public long endProfile(String name) { - Long time = (Long) _times.remove(name); - - long elapsed = -1; - if (time != null) - elapsed = System.currentTimeMillis() - time.longValue(); - - getLog().info(_loc.get("profile-info", name, - (time == null ? "???" : "" + elapsed))); - return elapsed; - } - - ///////////////////////// - // ClassLoader functions - ///////////////////////// - - /** - * Create a ClassLoader that will not use the parent - * ClassLoader to resolve classes. This is useful for - * testing interactions between Kodo in running - * in ClassLoaderA and instances in ClassLoaderB. - */ - public ClassLoader createIsolatedClassLoader() { - return new IsolatedClassLoader(); - } - - public NestedClassLoader createNestedClassLoader() { - return new NestedClassLoader(false); - } - - public NestedClassLoader createNestedParentClassLoader() { - return new NestedClassLoader(true); - } - - /** - * Reload the specified class in an isolated ClassLoader. - * - * @param target the target class to load - * @return the Class as reloaded in an new ClassLoader - */ - public Class isolate(Class target) throws ClassNotFoundException { - Class result = isolate(target.getName()); - assertTrue(result != target); - assertNotEquals(result, target); - assertTrue(result.getClassLoader() != target.getClassLoader()); - return result; - } - - public Class isolate(String target) throws ClassNotFoundException { - ClassLoader il = createIsolatedClassLoader(); - Class result = il.loadClass(target); - assertEquals(result.getName(), target); - - return result; - } - - public Class nest(Class target) throws ClassNotFoundException { - ClassLoader il = createNestedClassLoader(); - Class result = il.loadClass(target.getName()); - assertTrue(result != target); - assertNotEquals(result, target); - assertTrue(result.getClassLoader() != target.getClassLoader()); - assertEquals(result.getName(), target.getName()); - - return result; - } - - public Object isolateNew(Class target) - throws ClassNotFoundException, IllegalAccessException, - InstantiationException { - return isolate(target).newInstance(); - } - - private static class NestedClassLoader extends AntClassLoader { - - public NestedClassLoader(boolean useParent) { - super(ClassLoader.getSystemClassLoader(), useParent); - - for (StringTokenizer cltok = new StringTokenizer( - System.getProperty("java.class.path"), File.pathSeparator); - cltok.hasMoreTokens();) { - String path = cltok.nextToken(); - - // only load test paths, not jar files - if (path.indexOf(".jar") != -1) - continue; - if (path.indexOf(".zip") != -1) - continue; - - addPathElement(path); - } - - try { - if (!useParent) { - assertTrue(loadClass - (AbstractTestCase.class.getName()).getClassLoader() - != AbstractTestCase.class.getClassLoader()); - } - } catch (ClassNotFoundException cnfe) { - fail(cnfe.toString()); - } - } - - @Override - public Class findClass(String name) throws ClassNotFoundException { - // don't isolate PC and related classes in kodo.enhnace - if (name.indexOf(".enhance.") != -1) - throw new ClassNotFoundException(name); - if (name.indexOf("/enhance/") != -1) - throw new ClassNotFoundException(name); - return super.findClass(name); - } - } - - /** - * A ClassLoader that is completely isolated with respect to - * any classes that are loaded in the System ClassLoader. - * - * @author Marc Prud'hommeaux - */ - private static class IsolatedClassLoader extends NestedClassLoader { - - public IsolatedClassLoader() { - super(false); - setIsolated(false); - } - } /////////////// // Collections /////////////// - /** - * Validate that the specified {@link Collection} fulfills the - * Collection contract as specified by the Collections API. - *

- * Note: does not validate mutable operations - */ - public static void validateCollection(Collection collection) { - int size = collection.size(); - int iterated = 0; - // ensure we can walk along the iterator - for (Iterator i = collection.iterator(); i.hasNext();) { - iterated++; - i.next(); - } - - // ensure the number of values iterated is the same as the list size - assertEquals(size, iterated); - - // also validate the list - if (collection instanceof List) { - List ll = new ArrayList(); - for (int i = 0; i < 100; i++) - ll.add(new Integer(i)); - validateList((List) ll); - validateList((List) collection); - } - } - - /** - * Validate that the specified {@link List} fulfills the - * List contract as specified by the Collections API. - *

- * Note: does not validate mutable operations - */ - public static void validateList(List list) { - Object [] coreValues = list.toArray(); - Object [] values1 = new Object [list.size()]; - Object [] values2 = new Object [list.size()]; - Object [] values3 = new Object [list.size()]; - Object [] values4 = new Object [list.size()]; - - // fill sequential index access list - for (int i = 0; i < list.size(); i++) - values1[i] = list.get(i); - - // fill sequential list - int index = 0; - ListIterator iter; - for (iter = list.listIterator(0); iter.hasNext();) { - assertEquals(index, iter.nextIndex()); - assertEquals(index, iter.previousIndex() + 1); - values2[index] = iter.next(); - assertTrue(list.contains(values2[index])); - index++; - } - - // ensure NoSuchElementException is thrown as appropriate - try { - iter.next(); - fail("next() should have resulted in a NoSuchElementException"); - } catch (NoSuchElementException e) { - } // as expected - - // fill reverse sequential list - int back = 0; - for (iter = list.listIterator(list.size()); iter.hasPrevious();) { - assertEquals(index, iter.previousIndex() + 1); - assertEquals(index, iter.nextIndex()); - values3[--index] = iter.previous(); - back++; - } - assertEquals(list.size(), back); - - // ensure NoSuchElementException is thrown as appropriate - try { - iter.previous(); - fail("previous() should have resulted in a " - + "NoSuchElementException"); - } catch (NoSuchElementException e) { - } // as expected - - // fill random access list - List indices = new LinkedList(); - for (int i = 0; i < list.size(); i++) - indices.add(new Integer(i)); - - for (int i = 0; i < list.size(); i++) { - int rand = (int) (Math.random() * indices.size()); - Integer randIndex = (Integer) indices.remove(rand); - values4[randIndex.intValue()] = list.get(randIndex.intValue()); - } - - assertEquals(Arrays.asList(coreValues), Arrays.asList(values1)); - assertIdentical(Arrays.asList(coreValues), Arrays.asList(values1)); - assertEquals(Arrays.asList(coreValues), Arrays.asList(values2)); - assertIdentical(Arrays.asList(coreValues), Arrays.asList(values2)); - assertEquals(Arrays.asList(coreValues), Arrays.asList(values4)); - assertIdentical(Arrays.asList(coreValues), Arrays.asList(values4)); - assertEquals(Arrays.asList(coreValues), Arrays.asList(values3)); - assertIdentical(Arrays.asList(coreValues), Arrays.asList(values3)); - } - - /** - * Assert that the given List contain the exact same - * elements. This is different than the normal List contract, which - * states that list1.equals(list2) if each element e1.equals(e2). - * This method asserts that e1 == n2. - */ - public static void assertIdentical(List c1, List c2) { - assertEquals(c1.size(), c2.size()); - for (Iterator i1 = c1.iterator(), i2 = c2.iterator(); - i1.hasNext() && i2.hasNext();) - assertTrue(i1.next() == i2.next()); - } - - /** - * Assert that the collection parameter is already ordered - * according to the specified comparator. - */ - public void assertOrdered(Collection c, Comparator comp) { - List l1 = new LinkedList(c); - List l2 = new LinkedList(c); - assertEquals(l1, l2); - Collections.sort(l2, comp); - assertEquals(l1, l2); - Collections.sort(l1, comp); - assertEquals(l1, l2); - } - //////////////////// // Assertion Helpers //////////////////// @@ -804,39 +216,6 @@ public abstract class AbstractTestCase extends TestCase { nf.format(free))); } - /** - * Return a list of all values iterated by the given iterator. - */ - public static List iteratorToList(Iterator i) { - LinkedList list = new LinkedList(); - while (i.hasNext()) - list.add(i.next()); - return list; - } - - /** - * Return an array of the objects iterated by the given iterator. - */ - public static Object [] iteratorToArray(Iterator i, Class [] clazz) { - return iteratorToList(i).toArray(clazz); - } - - /** - * Run ant on the specified build file. - * - * @param buildFile the build file to use - * @param target the name of the target to invoke - */ - public void ant(File buildFile, String target) { - assertTrue(buildFile.isFile()); - - Project project = new Project(); - project.init(); - project.setUserProperty("ant.file", buildFile.getAbsolutePath()); - ProjectHelper.configureProject(project, buildFile); - project.executeTarget(target); - } - /** * Serialize and deserialize the object. * @@ -872,25 +251,6 @@ public abstract class AbstractTestCase extends TestCase { return re.match(input); } - public static void assertMatches(String regex, String input) { - try { - if (!(matches(regex, input))) - fail("Expected regular expression: <" + regex + ">" - + " did not match: <" + input + ">"); - } catch (RESyntaxException e) { - throw new IllegalArgumentException(e.toString()); - } - } - - public static void assertNotMatches(String regex, String input) { - try { - if (matches(regex, input)) - fail("Regular expression: <" + regex + ">" - + " should not match: <" + input + ">"); - } catch (RESyntaxException e) { - throw new IllegalArgumentException(e.toString()); - } - } /** * Check the list if strings and return the ones that match @@ -908,212 +268,4 @@ public abstract class AbstractTestCase extends TestCase { return matches; } - /** - * Assert that the specified collection of Strings contains at least - * one string that matches the specified regular expression. - */ - public static void assertMatches(String regex, Collection input) { - try { - if (matches(regex, input).size() == 0) - fail("The specified list of size " + input.size() - + " did not contain any strings that match the" - + " specified regular expression(\"" + regex + "\")"); - } catch (RESyntaxException e) { - throw new IllegalArgumentException(e.toString()); - } - } - - /** - * Assert that the specified collection of Strings does not match - * the specified regular expression. - */ - public static void assertNotMatches(String regex, Collection input) { - try { - List matches; - - if (((matches = matches(regex, input))).size() > 0) - fail("The specified list of size " + input.size() - + " did contain one or more strings that matchs the" - + " specified illegal regular expression" - + " (\"" + regex + "\")." - + " First example of a matching message is: " - + matches.iterator().next()); - } catch (RESyntaxException e) { - throw new IllegalArgumentException(e.toString()); - } - } - - /** - * To be called by the child. E.g.: - * public static void main(String [] args) { main(TestBug375.class); - * } - * - */ - public static void main(Class c) { - TestRunner.run(c); - } - - /** - * To be called by child. Figures out the class from the calling context. - */ - public static void main() { - String caller = new SecurityManager() { - @Override - public String toString() { - return getClassContext()[2].getName(); - } - }.toString(); - - try { - main(Class.forName(caller)); - } catch (ClassNotFoundException cnfe) { - throw new RuntimeException(cnfe.toString()); - } - } - - /** - * Returns the jar file in which the class is contained. - * - * @return the jar file, or none if the class is not in a jar - * @throws FileNotFoundException if the jar file cannot located - */ - public static File getJarFile(Class clazz) throws FileNotFoundException { - URL url = clazz.getResource(clazz.getName().substring( - clazz.getName().lastIndexOf(".") + 1) + ".class"); - if (url == null) - throw new FileNotFoundException(clazz.toString()); - - String file = url.getFile(); - if (file == null) - throw new FileNotFoundException(url.toString()); - int index = file.indexOf("!"); - if (index == -1) - throw new FileNotFoundException(file); - - file = file.substring(0, index); - file = file.substring("file:".length()); - - File f = new File(file); - if (!(f.isFile())) - throw new FileNotFoundException(file); - - return f.getAbsoluteFile(); - } - - /** - * The number of milliseconds each test case will have for a timeout. - */ - public void setTimeout(long timeout) { - _timeout = timeout; - } - - /** - * The number of milliseconds each test case will have for a timeout. - */ - public long getTimeout() { - return _timeout; - } - - /** - * A watchdog that just exits the JVM if a test has not completed in - * a certain amount of time. This speeds up the mechanism of determining - * if a timeout has occurred, since we can exit the entire test run - * if a test hasn't completed in a shorted amount of time than - * the global test timeout. - * - * @author Marc Prud'hommeaux - */ - private static class WatchdogThread extends Thread { - - private final long _timeoutms; - private long _endtime = -1; - private AbstractTestCase _curtest = null; - - public WatchdogThread() { - super("Kodo test case watchdog thread"); - setDaemon(true); - - int timeoutMin = new Integer - (System.getProperty("autobuild.testcase.timeout", "20")) - .intValue(); - - _timeoutms = timeoutMin * 60 * 1000; - } - - @Override - public void run() { - while (true) { - try { - sleep(200); - } catch (InterruptedException ie) { - } - - if (_endtime > 0 && System.currentTimeMillis() > _endtime) { - Thread preTimeout = new Thread - ("Attempting pre-timeout for " + _curtest) { - @Override - public void run() { - _curtest.preTimeout(); - } - }; - preTimeout.start(); - - // wait a little while for the pre-timeout - // thread to complete - try { - preTimeout.join(10 * 1000); - } catch (Exception e) { - } - - // give it a few more seconds... - try { - sleep(5 * 1000); - } catch (Exception e) { - } - - // new endtime? resume... - if (System.currentTimeMillis() < _endtime) - continue; - - new Exception("test case " - + (_curtest != null ? _curtest.getName() - : "UNKNOWN") + " timed out after " - + _timeoutms + "ms").printStackTrace(); - - // also run "killall -QUIT java" to try to grab - // a stack trace - try { - Runtime.getRuntime().exec - (new String[]{ "killall", "-QUIT", "java" }); - } catch (Exception e) { - } - - try { - sleep(1000); - } catch (InterruptedException ie) { - } - - // now actually exit - System.exit(111); - } - } - } - - public synchronized void enteringTest(AbstractTestCase test) { - long timeout = test.getTimeout(); - if (timeout <= 0) - timeout = _timeoutms; - - _endtime = System.currentTimeMillis() + timeout; - _curtest = test; - - if (!isAlive()) - start(); - } - - public synchronized void leavingTest(AbstractTestCase test) { - _endtime = -1; - _curtest = null; - } - } } diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestAbstractEventManager.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestAbstractEventManager.java index 2e018be5d..f7be22a1c 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestAbstractEventManager.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestAbstractEventManager.java @@ -20,24 +20,19 @@ package org.apache.openjpa.lib.util; import org.apache.openjpa.lib.util.concurrent.AbstractConcurrentEventManager; -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; -import junit.textui.TestRunner; +import org.junit.Test; +import static org.junit.Assert.*; /** * Tests the {@link AbstractConcurrentEventManager}. * * @author Abe White */ -public class TestAbstractEventManager extends TestCase { +public class TestAbstractEventManager { private EventManager _em = new EventManager(); - public TestAbstractEventManager(String test) { - super(test); - } - + @Test public void testReentrantAdd() { Listener l1 = new Listener(Listener.ADD); Listener l2 = new Listener(Listener.NONE); @@ -49,6 +44,7 @@ public class TestAbstractEventManager extends TestCase { assertEquals(3, _em.getListeners().size()); } + @Test public void testReentrantRemove() { Listener l1 = new Listener(Listener.REMOVE); Listener l2 = new Listener(Listener.NONE); @@ -61,14 +57,6 @@ public class TestAbstractEventManager extends TestCase { assertFalse(_em.getListeners().contains(l1)); } - public static Test suite() { - return new TestSuite(TestAbstractEventManager.class); - } - - public static void main(String[] args) { - TestRunner.run(suite()); - } - private static class EventManager extends AbstractConcurrentEventManager { diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestLocalizer.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestLocalizer.java index 4aca0e970..f708dec59 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestLocalizer.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestLocalizer.java @@ -24,25 +24,21 @@ import java.util.MissingResourceException; import org.apache.openjpa.lib.util.Localizer.Message; import org.apache.openjpa.lib.util.testlocalizer.LocalizerTestHelper; -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; -import junit.textui.TestRunner; +import org.junit.Test; +import org.junit.Before; + +import static org.junit.Assert.*; /** * Tests the Localizer. * * @author Abe White */ -public class TestLocalizer extends TestCase { +public class TestLocalizer { private Localizer _locals = null; - public TestLocalizer(String test) { - super(test); - } - - @Override + @Before public void setUp() { _locals = Localizer.forPackage(LocalizerTestHelper.class); } @@ -50,27 +46,30 @@ public class TestLocalizer extends TestCase { /** * Test getting a string for a class. */ + @Test public void testForClass() { - assertEquals(Locale.getDefault().equals(Locale.GERMANY) + assertEqualsMSg(Locale.getDefault().equals(Locale.GERMANY) ? "value1_de" : "value1", _locals.get("test.local1")); } /** * Test getting a string for a non-default locale. */ + @Test public void testForLocale() { Localizer locl = Localizer.forPackage(LocalizerTestHelper.class, Locale.GERMANY); - assertEquals("value1_de", locl.get("test.local1")); + assertEqualsMSg("value1_de", locl.get("test.local1")); } /** * Tests that if a locale is missing the system falls back to the default. */ + @Test public void testFallbackLocale() { Localizer locl = Localizer.forPackage(LocalizerTestHelper.class, Locale.FRANCE); - assertEquals(Locale.getDefault().equals(Locale.GERMANY) + assertEqualsMSg(Locale.getDefault().equals(Locale.GERMANY) ? "value1_de" : "value1", locl.get("test.local1")); } @@ -78,22 +77,24 @@ public class TestLocalizer extends TestCase { * Tests that a null class accesses the localizer.properties file * for the top-level(no package). */ + @Test public void testTopLevel() { Localizer system = Localizer.forPackage(null); - assertEquals("systemvalue1", system.get("test.systemlocal")); + assertEqualsMSg("systemvalue1", system.get("test.systemlocal")); } /** * Test that the message formatting works correctly. */ + @Test public void testMessageFormat() { String suffix = Locale.getDefault().equals(Locale.GERMANY) ? "_de" : ""; - assertEquals("value2" + suffix + " x sep y", _locals.get("test.local2", + assertEqualsMSg("value2" + suffix + " x sep y", _locals.get("test.local2", new String[]{ "x", "y" })); // test that it treates single objects as single-element arrays - assertEquals("value2" + suffix + " x sep {1}", + assertEqualsMSg("value2" + suffix + " x sep {1}", _locals.get("test.local2", "x")); } @@ -101,10 +102,11 @@ public class TestLocalizer extends TestCase { * Test that a {@link MissingResourceException} is thrown for missing * resource bundles. */ + @Test public void testMissingBundle() { Localizer missing = Localizer.forPackage(String.class); - assertEquals("localized message key: foo.bar", missing.get("foo.bar")); - assertEquals("localized message key: foo.bar; substitutions: [baz, 1]", missing.get("foo.bar", "baz", 1)); + assertEqualsMSg("localized message key: foo.bar", missing.get("foo.bar")); + assertEqualsMSg("localized message key: foo.bar; substitutions: [baz, 1]", missing.get("foo.bar", "baz", 1)); try { missing.getFatal("foo.bar"); fail("No exception for fatal get on missing bundle."); @@ -115,9 +117,10 @@ public class TestLocalizer extends TestCase { /** * Test that a {@link MissingResourceException} is thrown for missing keys. */ + @Test public void testMissingKey() { - assertEquals("localized message key: foo.bar", _locals.get("foo.bar")); - assertEquals("localized message key: foo.bar; substitutions: [baz, 1]", _locals.get("foo.bar", "baz", 1)); + assertEqualsMSg("localized message key: foo.bar", _locals.get("foo.bar")); + assertEqualsMSg("localized message key: foo.bar; substitutions: [baz, 1]", _locals.get("foo.bar", "baz", 1)); try { _locals.getFatal("foo.bar"); fail("No exception for fatal get on missing key."); @@ -125,15 +128,8 @@ public class TestLocalizer extends TestCase { } } - public static void assertEquals(String s, Message m) { + public static void assertEqualsMSg(String s, Message m) { assertEquals(s, m.getMessage()); } - public static Test suite() { - return new TestSuite(TestLocalizer.class); - } - - public static void main(String[] args) { - TestRunner.run(suite()); - } } diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestMultiClassLoader.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestMultiClassLoader.java index d69b84edb..9aea9e0af 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestMultiClassLoader.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestMultiClassLoader.java @@ -20,27 +20,23 @@ package org.apache.openjpa.lib.util; import java.net.URL; -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; -import junit.textui.TestRunner; +import org.junit.Test; +import org.junit.Before; + +import static org.junit.Assert.*; /** * Tests the {@link MultiClassLoader}. * * @author Abe White */ -public class TestMultiClassLoader extends TestCase { +public class TestMultiClassLoader { private ClassLoader SYSTEM_LOADER = MultiClassLoader.class.getClassLoader(); private MultiClassLoader _loader = new MultiClassLoader(); - public TestMultiClassLoader(String test) { - super(test); - } - - @Override + @Before public void setUp() { _loader.addClassLoader(MultiClassLoader.THREAD_LOADER); _loader.addClassLoader(SYSTEM_LOADER); @@ -49,6 +45,7 @@ public class TestMultiClassLoader extends TestCase { /** * Tests basic add/remove functionality. */ + @Test public void testBasic() { assertEquals(2, _loader.size()); assertTrue(!_loader.isEmpty()); @@ -91,54 +88,17 @@ public class TestMultiClassLoader extends TestCase { assertEquals(foo2, loaders[2]); } - /** - * Test finding classes. - */ -/* - public void testClassForName() - throws Exception - { - assertEquals(MultiClassLoader.class, - Class.forName(MultiClassLoader.class.getName(), true, _loader)); - assertTrue(_loader.removeClassLoader(SYSTEM_LOADER)); - assertTrue(_loader.removeClassLoader(MultiClassLoader.THREAD_LOADER)); - try - { - // have to switch classes here b/c other is now cached - assertEquals(TestMultiClassLoader.class, Class.forName - (TestMultiClassLoader.class.getName(), true, _loader)); - fail("System class laoder still working."); - } catch (ClassNotFoundException cnfe) - { - } - try - { - Class.forName("foo", true, _loader); - fail("Somehow found 'foo'???"); - } catch (ClassNotFoundException cnfe) - { - } - _loader.addClassLoader(new FooLoader()); - assertEquals(Integer.class, Class.forName("foo", true, _loader)); - } -*/ /** * Test finding resources. */ + @Test public void testGetResource() { assertNull(_loader.getResource("foo")); _loader.addClassLoader(new FooLoader()); assertNotNull(_loader.getResource("foo")); } - public static Test suite() { - return new TestSuite(TestMultiClassLoader.class); - } - - public static void main(String[] args) { - TestRunner.run(suite()); - } private static final class FooLoader extends ClassLoader { diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestOptions.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestOptions.java index 48efa77eb..c1ae1a736 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestOptions.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestOptions.java @@ -20,17 +20,17 @@ package org.apache.openjpa.lib.util; import java.util.Properties; -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; -import junit.textui.TestRunner; +import org.junit.Before; +import org.junit.Test; +import static org.junit.Assert.*; + /** * Tests the {@link Options} type. * * @author Abe White */ -public class TestOptions extends TestCase { +public class TestOptions { private Options _opts = null; @@ -39,11 +39,7 @@ public class TestOptions extends TestCase { "-range2", "10", "-fieldVal", "20", "-FieldVal2", "30", "-inner.nullInner.range1", "10,100", "arg1", "arg2", "arg3" }; - public TestOptions(String test) { - super(test); - } - - @Override + @Before public void setUp() { Properties defs = new Properties(); defs.setProperty("default", "value"); @@ -54,6 +50,7 @@ public class TestOptions extends TestCase { /** * Test command-line parsing. */ + @Test public void testCmdLineParsing() { assertEquals(3, _args.length); assertEquals("arg1", _args[0]); @@ -78,6 +75,7 @@ public class TestOptions extends TestCase { /** * Tests the setting of option values into bean objects. */ + @Test public void testSetObject() { Inner inner = new Inner(); _opts.setInto(inner); @@ -110,14 +108,6 @@ public class TestOptions extends TestCase { assertEquals("STR", inner.getString()); } - public static Test suite() { - return new TestSuite(TestOptions.class); - } - - public static void main(String[] args) { - TestRunner.run(suite()); - } - /** * Used internally for testing; must be public so Options can construct it. */ diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestParameterTemplate.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestParameterTemplate.java index b4f53043d..111f2795a 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestParameterTemplate.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestParameterTemplate.java @@ -18,24 +18,21 @@ */ package org.apache.openjpa.lib.util; -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; -import junit.textui.TestRunner; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; /** * Tests the {@link ParameterTemplate} utility class. * * @author Abe White */ -public class TestParameterTemplate extends TestCase { +public class TestParameterTemplate { private ParameterTemplate templ = new ParameterTemplate(); - public TestParameterTemplate(String test) { - super(test); - } - + @Test public void testParameters() { templ.append("{foo$${foo}bar{${bar}}biz baz$"); templ.append("{booz}booz${java.io.tmpdir}{ack}"); @@ -55,12 +52,5 @@ public class TestParameterTemplate extends TestCase { templ.toString()); } - public static Test suite() { - return new TestSuite(TestParameterTemplate.class); - } - - public static void main(String[] args) { - TestRunner.run(suite()); - } } diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestPropertiesParser.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestPropertiesParser.java index dfdf341f1..372d1b2b2 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestPropertiesParser.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestPropertiesParser.java @@ -36,7 +36,9 @@ import java.util.Properties; import org.apache.openjpa.lib.util.FormatPreservingProperties. DuplicateKeyException; -import junit.framework.TestCase; +import org.junit.Test; + +import static org.junit.Assert.*; // things to test: // - delimiters in keys @@ -45,10 +47,11 @@ import junit.framework.TestCase; // - non-String keys / vals // - list() method behavior -public class TestPropertiesParser extends TestCase { +public class TestPropertiesParser { private static final String LS = System.getProperty( "line.separator" ); + @Test public void testSimpleProperties() throws IOException { StringBuffer buf = new StringBuffer(); buf.append("key: value" + LS); @@ -58,6 +61,7 @@ public class TestPropertiesParser extends TestCase { { "key", "value" }, { "key2", "value2" } }, p); } + @Test public void testComments() throws IOException { StringBuffer buf = new StringBuffer(); buf.append("# this is a comment" + LS); @@ -70,6 +74,7 @@ public class TestPropertiesParser extends TestCase { assertEquals(0, p.size()); } + @Test public void testMixedContent() throws IOException { StringBuffer buf = new StringBuffer(); buf.append("# this is a comment" + LS); @@ -81,6 +86,7 @@ public class TestPropertiesParser extends TestCase { assertProperties(new String[][]{ { "foo", "bar#baz" } }, p); } + @Test public void testMultiLineInput() throws IOException { String s = "foo: bar\\" + LS + "more line goes here"; Properties p = toProperties(s); @@ -88,12 +94,14 @@ public class TestPropertiesParser extends TestCase { new String[][]{ { "foo", "barmore line goes here" } }, p); } + @Test public void testEmptyLines() throws IOException { Properties p = toProperties(LS + "foo: bar" + LS + LS + "baz: val"); assertProperties(new String[][]{ { "foo", "bar" }, { "baz", "val" } }, p); } + @Test public void testAddProperties() throws IOException { // intentionally left out the trailing end line String s = "foo: bar" + LS + "baz: val"; @@ -108,6 +116,7 @@ public class TestPropertiesParser extends TestCase { "another-new-key: val3" + LS, p); } + @Test public void testAddAndMutateProperties() throws IOException { // intentionally left out the trailing end line Properties p = toProperties("foo: bar" + LS + "baz: val"); @@ -120,11 +129,13 @@ public class TestPropertiesParser extends TestCase { + "new-key: new value" + LS, p); } + @Test public void testEscapedEquals() throws IOException { Properties p = toProperties("foo=bar\\=WARN,baz\\=TRACE"); assertProperties(new String[][]{ { "foo", "bar=WARN,baz=TRACE" } }, p); } + @Test public void testLineTypes() throws IOException { StringBuffer buf = new StringBuffer(); buf.append(" !comment" + LS + " \t " + LS + "name = no" + LS + " " @@ -140,6 +151,7 @@ public class TestPropertiesParser extends TestCase { }, p); } + @Test public void testSpecialChars() throws Throwable { testSpecialChars(false, true); testSpecialChars(true, true); @@ -155,7 +167,7 @@ public class TestPropertiesParser extends TestCase { * against a normal Properties instance(for validation of the test case). * @param value whether to test the key or the value */ - public void testSpecialChars(boolean formattingProps, boolean value) + private void testSpecialChars(boolean formattingProps, boolean value) throws Throwable { List valueList = new ArrayList(Arrays.asList(new String[]{ "xxyy", "xx\\yy", "xx" + LS + "yy", "xx\\nyy", "xx\tyy", "xx\\tyy", @@ -246,6 +258,7 @@ public class TestPropertiesParser extends TestCase { return buf.toString(); } + @Test public void testEquivalentStore() throws IOException { Properties p1 = new Properties(); FormatPreservingProperties p2 = new FormatPreservingProperties(); @@ -308,6 +321,7 @@ public class TestPropertiesParser extends TestCase { return sbuf.toString(); } + @Test public void testDuplicateProperties() throws IOException { FormatPreservingProperties p = new FormatPreservingProperties(); try { @@ -324,6 +338,7 @@ public class TestPropertiesParser extends TestCase { assertProperties(new String[][]{ { "foo", "baz" } }, p); } + @Test public void testMultipleLoads() throws IOException { String props = "foo=bar" + LS + "baz=quux"; String props2 = "a=b" + LS + "c=d"; @@ -381,13 +396,6 @@ public class TestPropertiesParser extends TestCase { } } - public static void assertEquals(String expected, String actual) { - if (expected == actual) - return; - - if (expected == null || !expected.equals(actual)) - fail("Expected <" + expected + "> but was <" + actual + ">"); - } private void assertPropertiesSame(Properties vanilla, Properties p) { assertEquals(vanilla, p); diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestReferenceSet.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestReferenceSet.java index a43869e15..5e6722739 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestReferenceSet.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestReferenceSet.java @@ -23,24 +23,23 @@ import java.util.Iterator; import org.apache.commons.collections4.map.AbstractReferenceMap.ReferenceStrength; -import junit.framework.TestCase; +import org.junit.Before; +import org.junit.Test; + +import static org.junit.Assert.*; /** * Tests the {@link ReferenceHashSet}. * * @author Abe White */ -public class TestReferenceSet extends TestCase { +public class TestReferenceSet { private ReferenceHashSet _coll = new ReferenceHashSet(ReferenceStrength.WEAK); private Object _heldValue = new Integer(2); - public TestReferenceSet(String test) { - super(test); - } - - @Override + @Before public void setUp() { _coll.add(_heldValue); _coll.add(new Integer(1)); @@ -49,6 +48,7 @@ public class TestReferenceSet extends TestCase { /** * Tests basic add/contains/remove functionality. */ + @Test public void testBasics() { Collection coll = new ReferenceHashSet(ReferenceStrength.WEAK); assertEquals(0, coll.size()); @@ -69,6 +69,7 @@ public class TestReferenceSet extends TestCase { /** * Test that values with strong references are not gc'd. */ + @Test public void testHeldReference() { if (JavaVersions.VERSION >= 5) return; @@ -81,6 +82,7 @@ public class TestReferenceSet extends TestCase { /** * Test that weak references are gc'd. */ + @Test public void testWeakReference() { if (JavaVersions.VERSION >= 5) return; @@ -106,6 +108,7 @@ public class TestReferenceSet extends TestCase { /** * Test that values that have been replaced aren't expired. */ + @Test public void testChangeValue() { if (JavaVersions.VERSION >= 5) return; diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestSimpleRegex.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestSimpleRegex.java index 2f025c803..8a33e96a3 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestSimpleRegex.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestSimpleRegex.java @@ -18,21 +18,23 @@ */ package org.apache.openjpa.lib.util; -import junit.framework.TestCase; -import junit.textui.TestRunner; +import org.junit.Test; + +import static org.junit.Assert.*; /** * Tests simple regex for use in in-memory query execution. * * @author Greg Campbell */ -public class TestSimpleRegex extends TestCase { +public class TestSimpleRegex { private boolean matchExpr(String target, String expr, boolean caseInsens) { SimpleRegex re = new SimpleRegex(expr, caseInsens); return re.matches(target); } + @Test public void testWildcards() { assertTrue(matchExpr("Hello", "Hello", false)); assertFalse(matchExpr("Hello", "Bye", false)); @@ -66,7 +68,4 @@ public class TestSimpleRegex extends TestCase { assertFalse(matchExpr("Hellow", ".*YoHello", false)); } - public static void main(String[] args) { - TestRunner.run(TestSimpleRegex.class); - } } diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestTemporaryClassLoader.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestTemporaryClassLoader.java index ebf4eaacf..b2229ed18 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestTemporaryClassLoader.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestTemporaryClassLoader.java @@ -22,9 +22,13 @@ import java.util.HashSet; import java.util.Set; import junit.framework.TestCase; +import org.junit.Test; -public class TestTemporaryClassLoader extends TestCase { +import static org.junit.Assert.assertEquals; +public class TestTemporaryClassLoader { + + @Test public void testTemporaryClassLoader() throws Exception { Set s = new HashSet(); for (int i = 0; i < 2; i++) { diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestTypedProperties.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestTypedProperties.java index 0ae66f602..16c6ccc97 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestTypedProperties.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestTypedProperties.java @@ -18,26 +18,22 @@ */ package org.apache.openjpa.lib.util; -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; -import junit.textui.TestRunner; +import org.junit.Before; +import org.junit.Test; + +import static org.junit.Assert.*; /** * Tests the {@link TypedProperties} type. * * @author Abe White */ -public class TestTypedProperties extends TestCase { +public class TestTypedProperties { private TypedProperties _props = null; private TypedProperties _defs = null; - public TestTypedProperties(String test) { - super(test); - } - - @Override + @Before public void setUp() { _props = new TypedProperties(); _props.setProperty("bool", "true"); @@ -52,6 +48,7 @@ public class TestTypedProperties extends TestCase { /** * Tests basic typed gets. */ + @Test public void testTypes() { assertTrue(_props.getBooleanProperty("bool")); assertEquals(1, _props.getIntProperty("int")); @@ -64,6 +61,7 @@ public class TestTypedProperties extends TestCase { /** * Tests the defaults returned for missing keys. */ + @Test public void testNoDefaults() { assertTrue(!_props.getBooleanProperty("bool2")); assertEquals(0, _props.getIntProperty("int2")); @@ -77,6 +75,7 @@ public class TestTypedProperties extends TestCase { * Tests the defaults returned by keys found in the default * backing properties instance. */ + @Test public void testDefaults() { assertTrue(_defs.getBooleanProperty("bool")); assertEquals(1, _defs.getIntProperty("int")); @@ -89,6 +88,7 @@ public class TestTypedProperties extends TestCase { /** * Tests that given defaults works. */ + @Test public void testGivenDefaults() { assertTrue(_props.getBooleanProperty("bool2", true)); assertEquals(1, _props.getIntProperty("int2", 1)); @@ -105,11 +105,4 @@ public class TestTypedProperties extends TestCase { assertEquals("2.2", _defs.getProperty("double", "3.3")); } - public static Test suite() { - return new TestSuite(TestTypedProperties.class); - } - - public static void main(String[] args) { - TestRunner.run(suite()); - } } diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestUUIDGenerator.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestUUIDGenerator.java index 419f2af76..9fb316196 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestUUIDGenerator.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/TestUUIDGenerator.java @@ -24,15 +24,18 @@ import java.security.PrivilegedExceptionAction; import java.util.HashSet; import java.util.Set; -import junit.framework.TestCase; +import org.junit.Test; + +import static org.junit.Assert.assertTrue; /** * Test UUID generation. * * @author Abe White */ -public class TestUUIDGenerator extends TestCase { +public class TestUUIDGenerator { + @Test public void testUniqueString() { Set seen = new HashSet(); for (int i = 0; i < 10000; i++) @@ -40,6 +43,7 @@ public class TestUUIDGenerator extends TestCase { UUIDGenerator.nextString(UUIDGenerator.TYPE1))); } + @Test public void testUniqueHex() { Set seen = new HashSet(); for (int i = 0; i < 10000; i++) @@ -47,6 +51,7 @@ public class TestUUIDGenerator extends TestCase { UUIDGenerator.nextHex(UUIDGenerator.TYPE1))); } + @Test public void testUniqueType4String() { Set seen = new HashSet(); for (int i = 0; i < 10000; i++) @@ -54,6 +59,7 @@ public class TestUUIDGenerator extends TestCase { UUIDGenerator.nextString(UUIDGenerator.TYPE4))); } + @Test public void testUniqueType4Hex() { Set seen = new HashSet(); for (int i = 0; i < 10000; i++) @@ -61,6 +67,7 @@ public class TestUUIDGenerator extends TestCase { UUIDGenerator.nextHex(UUIDGenerator.TYPE4))); } + @Test public void testUniqueMixedTypesHex() { Set seen = new HashSet(); for (int i = 0; i < 10000; i++) { @@ -71,6 +78,7 @@ public class TestUUIDGenerator extends TestCase { } } + @Test public void testGetTime() { long time = 0; for (int i = 0; i < 10000; i++) { @@ -80,6 +88,7 @@ public class TestUUIDGenerator extends TestCase { } } + @Test public void testInitType1MultiThreaded() throws Exception { // This test method depends IP and RANDOM in UUIDGenerator to be null // and type1Initialized to be false. Using reflection to ensure that diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/svn/TestSVNUtils.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/svn/TestSVNUtils.java index 42a7a76b8..402fd5752 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/svn/TestSVNUtils.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/util/svn/TestSVNUtils.java @@ -18,50 +18,46 @@ */ package org.apache.openjpa.lib.util.svn; -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; -import junit.textui.TestRunner; -public class TestSVNUtils extends TestCase { - public TestSVNUtils(String s) { - super(s); - } +import org.junit.Test; +import static org.junit.Assert.assertEquals; + +public class TestSVNUtils { + + @Test public void testNull() { assertEquals(-1, SVNUtils.svnInfoToInteger(null)); } + @Test public void testBasic() { int i = 12345678; assertEquals(i, SVNUtils.svnInfoToInteger(i + "")); } + @Test public void testGoodTrailingString() { int i = 12345678; assertEquals(i, SVNUtils.svnInfoToInteger(i + "m")); } + @Test public void testMixedRevision() { int i = 12345678; assertEquals(i, SVNUtils.svnInfoToInteger("55555:" + i)); } + @Test public void testMixedRevisionTrailingString() { int i = 12345678; assertEquals(i, SVNUtils.svnInfoToInteger("55555:" + i + "MS")); } + @Test public void testBad() { int i = 12345678; assertEquals(-1, SVNUtils.svnInfoToInteger("55555:aa" + i + "ms")); } - public static Test suite() { - return new TestSuite(TestSVNUtils.class); - } - - public static void main(String[] args) { - TestRunner.run(suite()); - } } diff --git a/openjpa-lib/src/test/java/org/apache/openjpa/lib/xml/TestDocTypeReader.java b/openjpa-lib/src/test/java/org/apache/openjpa/lib/xml/TestDocTypeReader.java index 033a453a2..36c06b89d 100644 --- a/openjpa-lib/src/test/java/org/apache/openjpa/lib/xml/TestDocTypeReader.java +++ b/openjpa-lib/src/test/java/org/apache/openjpa/lib/xml/TestDocTypeReader.java @@ -26,15 +26,15 @@ import java.io.Writer; import javax.xml.parsers.SAXParser; +import org.junit.Before; +import org.junit.Test; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; import org.xml.sax.helpers.DefaultHandler; -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; -import junit.textui.TestRunner; +import static org.junit.Assert.*; + /** * Tests the {@link DocTypeReader} by comparing the results of passing @@ -42,7 +42,7 @@ import junit.textui.TestRunner; * * @author Abe White */ -public class TestDocTypeReader extends TestCase { +public class TestDocTypeReader { private String _docType = null; private String _validXML = null; @@ -52,11 +52,8 @@ public class TestDocTypeReader extends TestCase { private String _expectedHTML = null; private String _xmlWithDocType = null; - public TestDocTypeReader(String test) { - super(test); - } - @Override + @Before public void setUp() { StringBuffer docType = new StringBuffer(); docType.append("