diff options
author | Alexander Kurtakov | 2020-02-10 20:19:09 +0000 |
---|---|---|
committer | Alexander Kurtakov | 2020-02-10 20:19:09 +0000 |
commit | 92414ec9b8d97154c74e6232cdd6057ec9a059ab (patch) | |
tree | bbed34e4308e377a334c4dc7fef646fc32b29187 | |
parent | 19f0153422b59ea5e2c338c0289f41c15b2e48fa (diff) | |
download | rt.equinox.p2-92414ec9b8d97154c74e6232cdd6057ec9a059ab.tar.gz rt.equinox.p2-92414ec9b8d97154c74e6232cdd6057ec9a059ab.tar.xz rt.equinox.p2-92414ec9b8d97154c74e6232cdd6057ec9a059ab.zip |
Convert p2.tests to JUnit 4.I20200210-1800
Chunk 1.
So review can be sane.
Change-Id: Id9320886ed89534f013498aa196324a6c70d629c
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
24 files changed, 466 insertions, 674 deletions
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/ZipVerifierProcessorTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/ZipVerifierProcessorTest.java index cebdfaed5..dccca576f 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/ZipVerifierProcessorTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/processors/ZipVerifierProcessorTest.java @@ -13,26 +13,23 @@ *******************************************************************************/ package org.eclipse.equinox.p2.tests.artifact.processors; -import java.io.*; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.equinox.internal.p2.core.helpers.FileUtils; import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep; import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ZipVerifierStep; import org.eclipse.equinox.p2.tests.TestActivator; +import org.junit.Test; import org.osgi.framework.Bundle; -public class ZipVerifierProcessorTest extends TestCase { - - public ZipVerifierProcessorTest(String name) { - super(name); - } - - public ZipVerifierProcessorTest() { - super(""); - } +public class ZipVerifierProcessorTest { + @Test public void testGoodZip() throws IOException { // Setup the processor ProcessingStep step = new ZipVerifierStep(); @@ -47,6 +44,7 @@ public class ZipVerifierProcessorTest extends TestCase { assertEquals(step.getStatus().getSeverity(), IStatus.OK); } + @Test public void testBogusFile() throws IOException { // Setup the processor ProcessingStep step = new ZipVerifierStep(); @@ -61,6 +59,7 @@ public class ZipVerifierProcessorTest extends TestCase { assertEquals(step.getStatus().getSeverity(), IStatus.ERROR); } + @Test public void testBogusFile2() throws IOException { // Setup the processor ProcessingStep step = new ZipVerifierStep(); @@ -75,6 +74,7 @@ public class ZipVerifierProcessorTest extends TestCase { assertEquals(step.getStatus().getSeverity(), IStatus.ERROR); } + @Test public void testBogusFile3() throws IOException { // Setup the processor ProcessingStep step = new ZipVerifierStep(); @@ -89,6 +89,7 @@ public class ZipVerifierProcessorTest extends TestCase { assertEquals(step.getStatus().getSeverity(), IStatus.ERROR); } + @Test public void testPackGZFile() throws IOException { // Setup the processor diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/FoldersRepositoryTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/FoldersRepositoryTest.java index fbc651fb4..7c2963f7f 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/FoldersRepositoryTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/FoldersRepositoryTest.java @@ -14,10 +14,12 @@ *******************************************************************************/ package org.eclipse.equinox.p2.tests.artifact.repository; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + import java.io.File; import java.io.FileFilter; import java.net.URL; -import junit.framework.TestCase; import org.eclipse.core.runtime.FileLocator; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; @@ -33,33 +35,29 @@ import org.eclipse.equinox.p2.repository.artifact.IArtifactRepositoryManager; import org.eclipse.equinox.p2.repository.artifact.spi.ArtifactDescriptor; import org.eclipse.equinox.p2.tests.AbstractProvisioningTest; import org.eclipse.equinox.p2.tests.TestActivator; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; -public class FoldersRepositoryTest extends TestCase { +public class FoldersRepositoryTest { private IArtifactRepositoryManager manager; private File testRepo; - public FoldersRepositoryTest(String name) { - super(name); - } - - public FoldersRepositoryTest() { - super(""); - } - - @Override - protected void setUp() throws Exception { + @Before + public void setUp() throws Exception { IProvisioningAgent agent = ServiceHelper.getService(TestActivator.getContext(), IProvisioningAgent.class); manager = agent.getService(IArtifactRepositoryManager.class); } - @Override - protected void tearDown() throws Exception { + @After + public void tearDown() throws Exception { manager = null; if (testRepo != null) AbstractProvisioningTest.delete(testRepo); } + @Test public void testFolderRepository() throws Exception { String tempDir = System.getProperty("java.io.tmpdir"); testRepo = new File(tempDir, "testRepo"); diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/JarURLArtifactRepositoryTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/JarURLArtifactRepositoryTest.java index 4c838d1db..35feafb63 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/JarURLArtifactRepositoryTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/JarURLArtifactRepositoryTest.java @@ -15,11 +15,12 @@ *******************************************************************************/ package org.eclipse.equinox.p2.tests.artifact.repository; +import static org.junit.Assert.assertTrue; + import java.net.MalformedURLException; import java.net.URI; import java.net.URISyntaxException; import java.net.URL; -import junit.framework.TestCase; import org.eclipse.core.runtime.URIUtil; import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper; import org.eclipse.equinox.internal.p2.metadata.ArtifactKey; @@ -29,40 +30,29 @@ import org.eclipse.equinox.p2.metadata.Version; import org.eclipse.equinox.p2.repository.artifact.IArtifactRepository; import org.eclipse.equinox.p2.repository.artifact.IArtifactRepositoryManager; import org.eclipse.equinox.p2.tests.TestActivator; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; -public class JarURLArtifactRepositoryTest extends TestCase { +public class JarURLArtifactRepositoryTest { private IArtifactRepositoryManager manager; - public JarURLArtifactRepositoryTest(String name) { - super(name); - } - - public JarURLArtifactRepositoryTest() { - super(""); - } - - @Override - protected void setUp() throws Exception { + @Before + public void setUp() throws Exception { IProvisioningAgent agent = ServiceHelper.getService(TestActivator.getContext(), IProvisioningAgent.class); manager = agent.getService(IArtifactRepositoryManager.class); } - @Override - protected void tearDown() throws Exception { + @After + public void tearDown() throws Exception { manager = null; } - public void testJarURLRepository() throws ProvisionException { + @Test + public void testJarURLRepository() throws ProvisionException, MalformedURLException, URISyntaxException { URL engineJar = TestActivator.getContext().getBundle().getEntry("/testData/enginerepo.jar"); - URI jarRepoLocation = null; - try { - jarRepoLocation = URIUtil.toURI(new URL("jar:" + engineJar.toString() + "!/testData/enginerepo/")); - } catch (URISyntaxException e) { - fail(e.getMessage()); - } catch (MalformedURLException e) { - fail(e.getMessage()); - } + URI jarRepoLocation = URIUtil.toURI(new URL("jar:" + engineJar.toString() + "!/testData/enginerepo/")); IArtifactRepository repo = manager.loadRepository(jarRepoLocation, null); assertTrue(repo.contains(new ArtifactKey("osgi.bundle", "testdata", Version.create("1.0.0.1")))); } diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/MirrorSelectorTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/MirrorSelectorTest.java index 6fb560601..527fbc098 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/MirrorSelectorTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/MirrorSelectorTest.java @@ -14,19 +14,23 @@ *******************************************************************************/ package org.eclipse.equinox.p2.tests.artifact.repository; -import java.util.*; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; import org.eclipse.equinox.internal.p2.artifact.repository.MirrorSelector; import org.eclipse.equinox.internal.p2.artifact.repository.MirrorSelector.MirrorInfo; +import org.junit.Before; +import org.junit.Test; -public class MirrorSelectorTest extends TestCase { +public class MirrorSelectorTest { private List<MirrorInfo> originals; - @Override - protected void setUp() throws Exception { - super.setUp(); - + @Before + public void setUp() throws Exception { // examples taken from real live. // This is the expected order of mirrors, // doesn't matter how often you're resorting ;-) @@ -257,6 +261,7 @@ public class MirrorSelectorTest extends TestCase { } + @Test public void testSorting() { long maxBytesPerSecond = 0; @@ -295,6 +300,7 @@ public class MirrorSelectorTest extends TestCase { } + @Test public void testComparatorZeros() { MirrorSelector.MirrorInfoComparator comparator = new MirrorSelector.MirrorInfoComparator(0, 0, 0); diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/ProcessingStepTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/ProcessingStepTest.java index d886989a2..2798b6c48 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/ProcessingStepTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/artifact/repository/processing/ProcessingStepTest.java @@ -13,27 +13,36 @@ *******************************************************************************/ package org.eclipse.equinox.p2.tests.artifact.repository.processing; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + import java.io.IOException; import java.io.OutputStream; -import junit.framework.TestCase; -import org.eclipse.core.runtime.*; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.MultiStatus; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Status; import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep; import org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStepHandler; +import org.junit.Before; +import org.junit.Test; -public class ProcessingStepTest extends TestCase { +public class ProcessingStepTest { private ProcessingStep ps; private boolean flushed; private boolean closed; - @Override - protected void setUp() throws Exception { - super.setUp(); + @Before + public void setUp() throws Exception { ps = new ProcessingStep() {}; flushed = false; closed = false; } + @Test public void testDefaultStatus() { assertNotNull(ps.getStatus()); assertTrue(ps.getStatus().isOK()); @@ -42,6 +51,7 @@ public class ProcessingStepTest extends TestCase { assertTrue(ProcessingStepHandler.checkStatus(ps).isOK()); } + @Test public void testGetDeepStatus() { ProcessingStep ps2 = new ProcessingStep() {}; ps.link(ps2, new NullProgressMonitor()); @@ -68,6 +78,7 @@ public class ProcessingStepTest extends TestCase { assertEquals(IStatus.CANCEL, ps.getStatus(true).getSeverity()); } + @Test public void testFlush() throws IOException { OutputStream destination = new OutputStream() { @@ -85,6 +96,7 @@ public class ProcessingStepTest extends TestCase { assertTrue(flushed); } + @Test public void testCloseSimpleOutputStreamAsDestination() throws IOException { OutputStream destination = new OutputStream() { @@ -102,6 +114,7 @@ public class ProcessingStepTest extends TestCase { assertFalse(closed); } + @Test public void testCloseProcessingStepAsDestination() throws IOException { OutputStream destination = new ProcessingStep() { @Override diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/AggregateQueryTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/AggregateQueryTest.java index 52ef2e45b..ca1049042 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/AggregateQueryTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/AggregateQueryTest.java @@ -14,24 +14,26 @@ ******************************************************************************/ package org.eclipse.equinox.p2.tests.core; +import static org.junit.Assert.assertEquals; + import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Iterator; import java.util.List; -import junit.framework.TestCase; import org.eclipse.equinox.p2.query.Collector; import org.eclipse.equinox.p2.query.IQuery; import org.eclipse.equinox.p2.query.IQueryResult; import org.eclipse.equinox.p2.query.MatchQuery; import org.eclipse.equinox.p2.query.QueryUtil; import org.eclipse.equinox.p2.tests.AbstractProvisioningTest; +import org.junit.Test; /** * This tests both Compound and Composite queries * */ -public class AggregateQueryTest extends TestCase { +public class AggregateQueryTest { public List<String> getABCDE() { return Arrays.asList("A", "B", "C", "D", "E"); @@ -41,6 +43,7 @@ public class AggregateQueryTest extends TestCase { return Arrays.asList("1", "2", "3"); } + @Test public void testEmptyCompositeQuery() { IQuery<String> query = QueryUtil.createPipeQuery(Collections.emptySet()); query.perform(getABCDE().iterator()); @@ -48,6 +51,7 @@ public class AggregateQueryTest extends TestCase { // will return in this case } + @Test public void testSymmetry() { IQuery getLatest = new ContextQuery() { @@ -97,9 +101,9 @@ public class AggregateQueryTest extends TestCase { } /** - * The CompositeQuery should not support symmetry. - * This method tests that + * The CompositeQuery should not support symmetry. This method tests that */ + @Test public void testNonSymmetry() { IQuery getLatest = new ContextQuery() { @@ -142,6 +146,7 @@ public class AggregateQueryTest extends TestCase { } + @Test public void testIntersection() { IQuery<String> ABC = new MatchQuery<String>() { @Override @@ -168,6 +173,7 @@ public class AggregateQueryTest extends TestCase { AbstractProvisioningTest.assertContains("1.2", result, "C"); } + @Test public void testIntersection2() { IQuery ABC = new ContextQuery() { @Override @@ -202,6 +208,7 @@ public class AggregateQueryTest extends TestCase { AbstractProvisioningTest.assertContains("1.2", result, "C"); } + @Test public void testUnion() { IQuery<String> ABC = new MatchQuery<String>() { @Override @@ -231,6 +238,7 @@ public class AggregateQueryTest extends TestCase { AbstractProvisioningTest.assertContains("1.5", result, "E"); } + @Test public void testUnion2() { IQuery ABC = new ContextQuery() { @Override diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/CompoundQueryableTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/CompoundQueryableTest.java index a6a90d87e..8a71e2bdc 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/CompoundQueryableTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/CompoundQueryableTest.java @@ -14,18 +14,26 @@ ******************************************************************************/ package org.eclipse.equinox.p2.tests.core; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + import java.util.Arrays; import java.util.Iterator; -import junit.framework.TestCase; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.tests.harness.TestProgressMonitor; -import org.eclipse.equinox.p2.query.*; +import org.eclipse.equinox.p2.query.Collector; +import org.eclipse.equinox.p2.query.IQuery; +import org.eclipse.equinox.p2.query.IQueryResult; +import org.eclipse.equinox.p2.query.IQueryable; +import org.eclipse.equinox.p2.query.MatchQuery; +import org.eclipse.equinox.p2.query.QueryUtil; import org.eclipse.equinox.p2.tests.AbstractProvisioningTest; +import org.junit.Test; /** * Tests the compound queryable */ -public class CompoundQueryableTest extends TestCase { +public class CompoundQueryableTest { public static class CompoundQueryTestProgressMonitor extends TestProgressMonitor { @@ -168,6 +176,7 @@ public class CompoundQueryableTest extends TestCase { } }; + @Test public void testMatchQuery() { IQueryable<Integer> cQueryable = QueryUtil.compoundQueryable(queryable1, queryable2); CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor(); @@ -181,6 +190,7 @@ public class CompoundQueryableTest extends TestCase { AbstractProvisioningTest.assertContains("1.6", queryResult, 12); } + @Test public void testSingleQueryable() { IQueryable<Integer> cQueryable = QueryUtil.compoundQueryable(Arrays.asList(queryable1)); CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor(); @@ -190,6 +200,7 @@ public class CompoundQueryableTest extends TestCase { AbstractProvisioningTest.assertContains("1.2", queryResult, 4); } + @Test public void testSingleContextQuery() { IQueryable<Integer> cQueryable = QueryUtil.compoundQueryable(Arrays.asList(queryable1)); CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor(); @@ -198,6 +209,7 @@ public class CompoundQueryableTest extends TestCase { AbstractProvisioningTest.assertContains("1.1", queryResult, 5); } + @Test public void testMultipleContextQueries() { IQueryable<Integer> cQueryable = QueryUtil.compoundQueryable(queryable1, queryable2); CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor(); @@ -206,6 +218,7 @@ public class CompoundQueryableTest extends TestCase { AbstractProvisioningTest.assertContains("1.1", queryResult, 12); } + @Test public void testCompoundMatchAndQuery() { IQueryable<Integer> cQueryable = QueryUtil.compoundQueryable(queryable1, queryable2); CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor(); @@ -216,6 +229,7 @@ public class CompoundQueryableTest extends TestCase { AbstractProvisioningTest.assertContains("1.6", queryResult, 12); } + @Test public void testCompoundMatchOrQuery() { IQueryable<Integer> cQueryable = QueryUtil.compoundQueryable(queryable1, queryable2); CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor(); @@ -229,6 +243,7 @@ public class CompoundQueryableTest extends TestCase { AbstractProvisioningTest.assertContains("1.6", queryResult, 12); } + @Test public void testMatchQueryProgressMonitor() { IQueryable<Integer> cQueryable = QueryUtil.compoundQueryable(queryable1, queryable2); CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor(); @@ -237,6 +252,7 @@ public class CompoundQueryableTest extends TestCase { assertTrue("1.1", monitor.isWorkDone()); } + @Test public void testSingleQueryableProgressMonitor() { IQueryable<Integer> cQueryable = QueryUtil.compoundQueryable(Arrays.asList(queryable1)); CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor(); @@ -245,6 +261,7 @@ public class CompoundQueryableTest extends TestCase { assertTrue("1.1", monitor.isWorkDone()); } + @Test public void testSingleContextQueryProgressMonitor() { IQueryable<Integer> cQueryable = QueryUtil.compoundQueryable(Arrays.asList(queryable1)); CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor(); @@ -253,6 +270,7 @@ public class CompoundQueryableTest extends TestCase { assertTrue("1.1", monitor.isWorkDone()); } + @Test public void testMultipleContextQueriesProgressMonitor() { IQueryable<Integer> cQueryable = QueryUtil.compoundQueryable(queryable1, queryable2); CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor(); @@ -261,6 +279,7 @@ public class CompoundQueryableTest extends TestCase { assertTrue("1.1", monitor.isWorkDone()); } + @Test public void testNullProgressMonitor() { IQueryable<Integer> cQueryable = QueryUtil.compoundQueryable(queryable1, queryable2); cQueryable.query(greatestNumberQuery, null); @@ -268,6 +287,7 @@ public class CompoundQueryableTest extends TestCase { } + @Test public void testDoubleCompoundContextOrQuery() { IQueryable<Integer> cQueryable1 = QueryUtil.compoundQueryable(queryable3, queryable2); IQueryable<Integer> cQueryable = QueryUtil.compoundQueryable(cQueryable1, queryable1); @@ -285,6 +305,7 @@ public class CompoundQueryableTest extends TestCase { assertTrue("1.1", monitor.isWorkDone()); } + @Test public void testDoubleCompositeQuery() { IQueryable<Integer> cQueryable1 = QueryUtil.compoundQueryable(queryable3, queryable2); IQueryable<Integer> cQueryable = QueryUtil.compoundQueryable(cQueryable1, queryable1); diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/QueryTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/QueryTest.java index af466e65f..0e76aff76 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/QueryTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/QueryTest.java @@ -13,16 +13,21 @@ *******************************************************************************/ package org.eclipse.equinox.p2.tests.core; +import static org.junit.Assert.assertEquals; + import java.util.Arrays; import java.util.List; -import junit.framework.TestCase; -import org.eclipse.equinox.p2.query.*; +import org.eclipse.equinox.p2.query.IQuery; +import org.eclipse.equinox.p2.query.IQueryResult; +import org.eclipse.equinox.p2.query.MatchQuery; +import org.eclipse.equinox.p2.query.QueryUtil; import org.eclipse.equinox.p2.tests.AbstractProvisioningTest; +import org.junit.Test; /** * Tests for the {@link org.eclipse.equinox.internal.provisional.p2.query.Query} class. */ -public class QueryTest extends TestCase { +public class QueryTest { static class AnyStringQuery extends MatchQuery { @Override @@ -32,8 +37,9 @@ public class QueryTest extends TestCase { } /** - * Tests a simple perform where all items match. - */ + * Tests a simple perform where all items match. + */ + @Test public void testPerformSimple() { List<String> items = Arrays.asList("red", "green", "blue"); IQuery query = new AnyStringQuery(); @@ -47,6 +53,7 @@ public class QueryTest extends TestCase { /** * Tests a perform where only some items match. */ + @Test public void testPerformSomeMatches() { List<Object> items = Arrays.asList(new Object(), "green", new Object()); IQuery query = new AnyStringQuery(); @@ -55,6 +62,7 @@ public class QueryTest extends TestCase { AbstractProvisioningTest.assertContains("1.1", collector, "green"); } + @Test public void testLimitQuery() { List<String> items = Arrays.asList("red", "green", "blue"); IQuery query = new AnyStringQuery(); @@ -64,6 +72,7 @@ public class QueryTest extends TestCase { AbstractProvisioningTest.assertContains("1.1", collector, "red"); } + @Test public void testLimitQuery2() { List<String> items = Arrays.asList("red", "green", "blue"); IQuery query = new AnyStringQuery(); @@ -74,6 +83,7 @@ public class QueryTest extends TestCase { AbstractProvisioningTest.assertContains("1.2", collector, "green"); } + @Test public void testLimitQuery3() { List<String> items = Arrays.asList("red", "green", "blue"); IQuery query = new AnyStringQuery(); @@ -85,6 +95,7 @@ public class QueryTest extends TestCase { AbstractProvisioningTest.assertContains("1.3", collector, "blue"); } + @Test public void testLimitQuery0() { List<String> items = Arrays.asList("red", "green", "blue"); IQuery query = new AnyStringQuery(); diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/StringHelperTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/StringHelperTest.java index 2b876b4eb..3a8f59fcb 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/StringHelperTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/StringHelperTest.java @@ -14,12 +14,15 @@ package org.eclipse.equinox.p2.tests.core; +import static org.junit.Assert.assertTrue; + import java.util.Arrays; -import junit.framework.TestCase; import org.eclipse.equinox.internal.p2.core.helpers.StringHelper; import org.eclipse.equinox.p2.publisher.AbstractPublisherAction; +import org.junit.Test; -public class StringHelperTest extends TestCase { +public class StringHelperTest { + @Test public void testSimilarBehavior() { String[] a1 = AbstractPublisherAction.getArrayFromString("foo, bar, baz ,,, zaz", ","); String[] a2 = StringHelper.getArrayFromString("foo, bar, baz ,,, zaz", ','); @@ -38,6 +41,7 @@ public class StringHelperTest extends TestCase { assertTrue("1.4", Arrays.equals(a1, a2)); } + @Test public void testPerformance() throws Exception { String[] strings = new String[5]; StringBuilder inputBld = new StringBuilder(); diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/IUListFormatterTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/IUListFormatterTest.java index 847eaa6c1..5822f7983 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/IUListFormatterTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/director/IUListFormatterTest.java @@ -29,15 +29,17 @@ import org.easymock.IAnswer; import org.eclipse.equinox.internal.p2.director.app.IUListFormatter; import org.eclipse.equinox.p2.metadata.IInstallableUnit; import org.eclipse.equinox.p2.metadata.Version; +import org.junit.Test; public class IUListFormatterTest extends TestCase { - + @Test public void testFormat() { IUListFormatter format = new IUListFormatter("${id}=${id},${version},${org.eclipse.equinox.p2.name}"); String result = format.format(asList(createIU("iu1", "1.0.0", "name", null))); assertEquals("iu1=iu1,1.0.0,name", result); } + @Test public void testFormat_MultipleIUs() { IUListFormatter format = new IUListFormatter("${id}=${version},${org.eclipse.equinox.p2.name}"); String result = format.format(asList(// @@ -47,12 +49,14 @@ public class IUListFormatterTest extends TestCase { assertEquals("iu1=1.0.0,name" + System.lineSeparator() + "iu2=2.0.0,name2", result); } + @Test public void testFormat_UnknownFormatOption() { IUListFormatter format = new IUListFormatter("${id}${UNKNOWN}"); String result = format.format(asList(createIU("iu1", "1.0.0", "name", null))); assertEquals("iu1", result); } + @Test public void testFormat_Malformed() { IUListFormatter format = new IUListFormatter("${id=${version"); String result = format.format(asList(createIU("iu1", "1.0.0", "name", null))); diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/DebugHelperTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/DebugHelperTest.java index b8fa368e5..a106298e4 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/DebugHelperTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/engine/DebugHelperTest.java @@ -14,12 +14,12 @@ package org.eclipse.equinox.p2.tests.engine; import java.util.HashMap; -import junit.framework.TestCase; import org.eclipse.equinox.internal.p2.engine.DebugHelper; import org.junit.Assert; +import org.junit.Test; -public class DebugHelperTest extends TestCase { - +public class DebugHelperTest { + @Test public void testFormatParametersContainsNullValue() { HashMap<String, Object> parameters = new HashMap<>(); parameters.put("key", null); diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/AllTests.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/AllTests.java index 2c3d19300..6a1ef0f13 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/AllTests.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/AllTests.java @@ -14,7 +14,6 @@ *******************************************************************************/ package org.eclipse.equinox.p2.tests.metadata; -import junit.framework.TestCase; import org.junit.runner.RunWith; import org.junit.runners.Suite; @@ -26,6 +25,6 @@ import org.junit.runners.Suite; InstallableUnitTest.class, InstallableUnitPatchTest.class, IUPersistenceTest.class, LatestIUTest.class, LicenseTest.class, MultipleIUAndFragmentTest.class, PersistNegation.class, PersistFragment.class, ProvidedCapabilityTest.class, RequirementToString.class, RequirementParsingTest.class }) -public class AllTests extends TestCase { +public class AllTests { //test suite }
\ No newline at end of file diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/ArtifactKeyParsingTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/ArtifactKeyParsingTest.java index 404d9d7fd..00e37563d 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/ArtifactKeyParsingTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/ArtifactKeyParsingTest.java @@ -13,26 +13,31 @@ *******************************************************************************/ package org.eclipse.equinox.p2.tests.metadata; +import static org.junit.Assert.assertThrows; + import junit.framework.TestCase; import org.eclipse.equinox.internal.p2.metadata.ArtifactKey; import org.eclipse.equinox.p2.metadata.IArtifactKey; import org.eclipse.equinox.p2.metadata.Version; +import org.junit.Test; /** * Test <code>ArtifactkeyDeSerializer</code> */ public class ArtifactKeyParsingTest extends TestCase { - + @Test public void testSerialize() { IArtifactKey key = new ArtifactKey("classifier", "identifier", Version.create("1.0")); assertEquals("classifier,identifier,1.0.0", key.toExternalForm()); } + @Test public void testSerializeEmptyClassifier() { IArtifactKey key = new ArtifactKey("", "identifier", Version.create("1.0")); assertEquals(",identifier,1.0.0", key.toExternalForm()); } + @Test public void testDeserialize() { IArtifactKey key = ArtifactKey.parse("classifier,identifier,1.0.0"); assertNotNull(key); @@ -41,6 +46,7 @@ public class ArtifactKeyParsingTest extends TestCase { assertEquals(Version.create("1.0"), key.getVersion()); } + @Test public void testDeserializeEmptyClassifier() { IArtifactKey key = ArtifactKey.parse(",identifier,1.0.0"); assertNotNull(key); @@ -49,6 +55,7 @@ public class ArtifactKeyParsingTest extends TestCase { assertEquals(Version.create("1.0"), key.getVersion()); } + @Test public void testDeserializeEmptyIdentifier() { IArtifactKey key = ArtifactKey.parse("classifier,,1.0.0"); assertNotNull(key); @@ -57,6 +64,7 @@ public class ArtifactKeyParsingTest extends TestCase { assertEquals(Version.create("1.0"), key.getVersion()); } + @Test public void testDeserializeEmptyVersion() { IArtifactKey key = ArtifactKey.parse("classifier,identifier,"); assertNotNull(key); @@ -65,6 +73,7 @@ public class ArtifactKeyParsingTest extends TestCase { assertEquals(Version.create("0.0"), key.getVersion()); } + @Test public void testDeserializeEmptyEverything() { IArtifactKey key = ArtifactKey.parse(",,"); assertNotNull(key); @@ -73,30 +82,18 @@ public class ArtifactKeyParsingTest extends TestCase { assertEquals(Version.create("0.0"), key.getVersion()); } + @Test public void testDeserializeTooFewPartsI() { - try { - ArtifactKey.parse(""); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows(IllegalArgumentException.class, () -> ArtifactKey.parse("")); } + @Test public void testDeserializeTooManyPartsI() { - try { - ArtifactKey.parse(",,,,"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows(IllegalArgumentException.class, () -> ArtifactKey.parse(",,,,")); } + @Test public void testDeserializeTooFewPartsII() { - try { - ArtifactKey.parse("classifier"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows(IllegalArgumentException.class, () -> ArtifactKey.parse("classifier")); } } diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/FragmentMethodTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/FragmentMethodTest.java index 8fbc0b08f..f7f700921 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/FragmentMethodTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/FragmentMethodTest.java @@ -13,10 +13,13 @@ *******************************************************************************/ package org.eclipse.equinox.p2.tests.metadata; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + import java.util.Collection; import java.util.HashSet; -import junit.framework.AssertionFailedError; -import junit.framework.TestCase; import org.eclipse.equinox.p2.metadata.IInstallableUnit; import org.eclipse.equinox.p2.metadata.IProvidedCapability; import org.eclipse.equinox.p2.metadata.IRequirement; @@ -26,8 +29,11 @@ import org.eclipse.equinox.p2.metadata.MetadataFactory.InstallableUnitFragmentDe import org.eclipse.equinox.p2.metadata.Version; import org.eclipse.equinox.p2.metadata.VersionRange; import org.eclipse.equinox.p2.tests.AbstractProvisioningTest; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; -public class FragmentMethodTest extends TestCase { +public class FragmentMethodTest { private static final String PROP_FRAG = "propFrag"; private static final String PROP_IU = "propIU"; private static final String TEST_REQUIRED = "testRequired"; @@ -36,9 +42,8 @@ public class FragmentMethodTest extends TestCase { Collection<IProvidedCapability> iu1Caps; Collection<IProvidedCapability> iu3Caps; - @Override - protected void setUp() throws Exception { - super.setUp(); + @Before + public void setUp() throws Exception { iu1 = createIU("iu.test1"); iu3 = createIUFragment("iu.fragment"); iu1Caps = iu1.getProvidedCapabilities(); @@ -55,15 +60,15 @@ public class FragmentMethodTest extends TestCase { } } - @Override - protected void tearDown() throws Exception { + @After + public void tearDown() throws Exception { iu1 = null; iu3 = null; iu1Caps = null; iu3Caps = null; - super.tearDown(); } + @Test public void testCapabilities() { Collection<IProvidedCapability> mergedCapabilities = iu1.getProvidedCapabilities(); for (IProvidedCapability capability : mergedCapabilities) { @@ -85,17 +90,6 @@ public class FragmentMethodTest extends TestCase { assertEquals("The fragment capabilities should not change", initialFragmentCapabilities, iu3.getProvidedCapabilities()); } - protected void assertEquals(String message, Object[] expected, Object[] actual) { - if (expected == null && actual == null) - return; - if (expected == null || actual == null) - fail(message); - if (expected.length != actual.length) - fail(message); - for (int i = 0; i < expected.length; i++) - assertEquals(message, expected[i], actual[i]); - } - protected void assertEquals(String message, Collection<? extends Object> expected, Collection<? extends Object> actual) { if (expected == null && actual == null) return; @@ -111,9 +105,10 @@ public class FragmentMethodTest extends TestCase { public static void assertDoesNotContain(Collection<? extends Object> objects, Object searched) { if (objects.contains(searched)) - throw new AssertionFailedError("The array should not contain the searched element"); + throw new AssertionError("The array should not contain the searched element"); } + @Test public void testProperties() { assertNotNull("The property is missing", iu3.getProperty(PROP_FRAG)); assertNotNull("The property is missing", iu1.getProperty(PROP_IU)); diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/LicenseTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/LicenseTest.java index 50b33dad9..fcb53002c 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/LicenseTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/LicenseTest.java @@ -7,21 +7,24 @@ * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 - * + * * Contributors: * IBM Corporation - initial API and implementation * EclipseSource - ongoing development *******************************************************************************/ package org.eclipse.equinox.p2.tests.metadata; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; + import org.eclipse.equinox.p2.metadata.ILicense; import org.eclipse.equinox.p2.metadata.MetadataFactory; +import org.junit.Test; /** * Tests for License class */ -public class LicenseTest extends TestCase { +public class LicenseTest { + @Test public void testNormalize() { ILicense licenseOne = MetadataFactory.createLicense(null, "a b"); ILicense licenseTwo = MetadataFactory.createLicense(null, "a\t\n\r \t\n\r b"); diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/RequirementToString.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/RequirementToString.java index d92f8b66d..1d4c2e2b6 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/RequirementToString.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/RequirementToString.java @@ -14,33 +14,39 @@ ******************************************************************************/ package org.eclipse.equinox.p2.tests.metadata; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; + import org.eclipse.equinox.p2.metadata.IInstallableUnit; import org.eclipse.equinox.p2.metadata.IRequirement; import org.eclipse.equinox.p2.metadata.MetadataFactory; import org.eclipse.equinox.p2.metadata.VersionRange; import org.eclipse.equinox.p2.metadata.expression.ExpressionUtil; import org.eclipse.equinox.p2.metadata.expression.IMatchExpression; +import org.junit.Test; //These tests are not here to force the toString of a requirement. //They are here to ensure that the toString of a requirement does not become unreadable because this ends up being presented in the p2 UI and in the tycho build. //As such if there are better ways present all this information, by all mean change the test. -public class RequirementToString extends TestCase { +public class RequirementToString { + @Test public void testRequirementWithEmptyRange() { IRequirement req = MetadataFactory.createRequirement("expectedNameSpace", "expectedName", VersionRange.emptyRange, null, false, false); assertEquals("expectedNameSpace; expectedName 0.0.0", req.toString()); } + @Test public void testStandardRequirement() { IRequirement req = MetadataFactory.createRequirement("expectedNameSpace", "expectedName", new VersionRange("[1.0.0, 2.0.0)"), null, false, false); assertEquals("expectedNameSpace; expectedName [1.0.0,2.0.0)", req.toString()); } + @Test public void testPropertiesRequirement() { IRequirement req = MetadataFactory.createRequirement("expectedNameSpace", "(key=val)", null, 1, 1, true); assertEquals("expectedNameSpace; (key=val)", req.toString()); } + @Test public void testFancyRequirement() { Object[] expressionParameters = new Object[] {"expectedId1", "expectedVersion1", "expectedId2", "expectedVersion2"}; IMatchExpression<IInstallableUnit> iuMatcher = ExpressionUtil.getFactory().matchExpression(ExpressionUtil.parse("(id == $0 && version == $1) || (id == $2 && version == $3)"), expressionParameters); diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/StandaloneSerializationTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/StandaloneSerializationTest.java index fe80063d5..672a06fcc 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/StandaloneSerializationTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/metadata/repository/StandaloneSerializationTest.java @@ -13,6 +13,10 @@ *******************************************************************************/ package org.eclipse.equinox.p2.tests.metadata.repository; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -24,48 +28,38 @@ import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import junit.framework.TestCase; import org.eclipse.equinox.p2.metadata.IInstallableUnit; import org.eclipse.equinox.p2.metadata.MetadataFactory; import org.eclipse.equinox.p2.metadata.Version; import org.eclipse.equinox.p2.metadata.io.IUDeserializer; import org.eclipse.equinox.p2.metadata.io.IUSerializer; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TestName; -public class StandaloneSerializationTest extends TestCase { - public void testNothingToWrite() { - try { - File f = File.createTempFile(getName(), "iu"); - try (OutputStream os = new FileOutputStream(f)) { - new IUSerializer(os).write(Collections.EMPTY_LIST); - } - assertTrue(f.length() > 0); - f.delete(); - } catch (FileNotFoundException e) { - fail("problem writing: " + e.getCause().getMessage()); - } catch (UnsupportedEncodingException e) { - fail("problem writing: " + e.getCause().getMessage()); - } catch (IOException e) { - fail("problem writing: " + e.getCause().getMessage()); +public class StandaloneSerializationTest { + @Rule + public TestName name = new TestName(); + + @Test + public void testNothingToWrite() throws IOException { + File f = File.createTempFile(name.getMethodName(), "iu"); + try (OutputStream os = new FileOutputStream(f)) { + new IUSerializer(os).write(Collections.EMPTY_LIST); } + assertTrue(f.length() > 0); + f.delete(); } - public void testNoContent() { - //Write file w/o content - File f = null; - try { - f = File.createTempFile(getName(), "iu"); - try (OutputStream os = new FileOutputStream(f)) { - new IUSerializer(os).write(Collections.EMPTY_LIST); - } - } catch (FileNotFoundException e) { - fail("problem writing: " + e.getCause().getMessage()); - } catch (UnsupportedEncodingException e) { - fail("problem writing: " + e.getCause().getMessage()); - } catch (IOException e) { - fail("problem writing: " + e.getCause().getMessage()); + @Test + public void testNoContent() throws IOException { + // Write file w/o content + File f = File.createTempFile(name.getMethodName(), "iu"); + try (OutputStream os = new FileOutputStream(f)) { + new IUSerializer(os).write(Collections.EMPTY_LIST); } - //Read file written + // Read file written boolean exceptionRaised = false; try (InputStream is = new FileInputStream(f)) { Collection<IInstallableUnit> ius = new IUDeserializer().read(is); @@ -82,7 +76,8 @@ public class StandaloneSerializationTest extends TestCase { f.delete(); } - public void testWritingThenLoading() { + @Test + public void testWritingThenLoading() throws FileNotFoundException, IOException { MetadataFactory.InstallableUnitDescription iu = new MetadataFactory.InstallableUnitDescription(); iu.setId("foo"); iu.setVersion(Version.create("1.0.0")); @@ -94,28 +89,13 @@ public class StandaloneSerializationTest extends TestCase { ius.add(MetadataFactory.createInstallableUnit(iu)); ius.add(MetadataFactory.createInstallableUnit(iu2)); - File f = null; - try { - f = File.createTempFile(getName(), "iu"); - try (OutputStream os = new FileOutputStream(f)) { - new IUSerializer(os).write(ius); - } - } catch (FileNotFoundException e) { - fail("problem writing: " + e.getCause().getMessage()); - } catch (UnsupportedEncodingException e) { - fail("problem writing: " + e.getCause().getMessage()); - } catch (IOException e) { - fail("problem writing: " + e.getCause().getMessage()); + File f = File.createTempFile(name.getMethodName(), "iu"); + try (OutputStream os = new FileOutputStream(f)) { + new IUSerializer(os).write(ius); } try (InputStream is = new FileInputStream(f)) { assertEquals(2, new IUDeserializer().read(is).size()); - } catch (FileNotFoundException e) { - fail("problem writing: " + e.getCause().getMessage()); - } catch (UnsupportedEncodingException e) { - fail("problem writing: " + e.getCause().getMessage()); - } catch (IOException e) { - fail("problem writing: " + e.getCause().getMessage()); } finally { f.delete(); } diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatATest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatATest.java index 86bf6ca5d..392e41eb9 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatATest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatATest.java @@ -14,26 +14,37 @@ package org.eclipse.equinox.p2.tests.omniVersion; -import junit.framework.TestCase; -import org.eclipse.equinox.p2.metadata.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import org.eclipse.equinox.p2.metadata.IVersionFormat; +import org.eclipse.equinox.p2.metadata.Version; +import org.eclipse.equinox.p2.metadata.VersionFormatException; +import org.junit.Test; /** * Tests the format(a) rule. * */ -public class FormatATest extends TestCase { +public class FormatATest { + @Test public void testNumeric() { Version v = Version.parseVersion("format(a):1"); assertNotNull(v); assertEquals(Version.parseVersion("raw:1"), v); } + @Test public void testString() { Version v = Version.parseVersion("format(a):a"); assertNotNull(v); assertEquals(Version.parseVersion("raw:'a'"), v); } + @Test public void testSequenceOfAuto() { Version v = Version.parseVersion("format(aaaa):123abc456def"); assertNotNull(v); @@ -43,6 +54,7 @@ public class FormatATest extends TestCase { /** * Test that exact delimits a on count and type. */ + @Test public void testExact() { Version v = Version.parseVersion("format(a={3};aaa={3};):123abc456def"); assertNotNull(v); @@ -54,107 +66,73 @@ public class FormatATest extends TestCase { assertNotNull(v = Version.parseVersion("format(a={2};a):123")); assertEquals(Version.parseVersion("raw:12.3"), v); - try { - // should fail because first segment is delimited after 2 chars - Version.parseVersion("format(a={4};aaa={3};):12.3abc456def"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - // should fail because first segment is delimited by type change after 3 chars - Version.parseVersion("format(a={4};aaa={3};):123abc456def"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - // should fail because first segment is delimited by type change after 3 chars - Version.parseVersion("format(a={4};aaa={3};):xyz123abc456"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - + // should fail because first segment is delimited after 2 chars + assertThrows(IllegalArgumentException.class, + () -> Version.parseVersion("format(a={4};aaa={3};):12.3abc456def")); + // should fail because first segment is delimited by type change after 3 chars + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(a={4};aaa={3};):123abc456def")); + // should fail because first segment is delimited by type change after 3 chars + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(a={4};aaa={3};):xyz123abc456")); } /** * Test that unbound upper range delimits a on change of type. */ + @Test public void testAtLeast() { Version v = Version.parseVersion("format(a={2,};aaa={2,};):123abc456def"); assertNotNull(v); assertEquals(Version.parseVersion("raw:123.'abc'.456.'def'"), v); - try { - Version.parseVersion("format(a={2,};aaa={2,};):1abc456def"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(a={2,};aaa={2,};):12abc456d"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(a={2,};aaa={2,};):1abc456def")); + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(a={2,};aaa={2,};):12abc456d")); } /** - * test that at-most follows same rules as exact for the min range + * test that at-most follows same rules as exact for the min range */ + @Test public void testAtMost() { Version v = Version.parseVersion("format(a={1,3};aaa={1,3};):123abc456def"); assertNotNull(v); assertEquals(Version.parseVersion("raw:123.'abc'.456.'def'"), v); - // change of type is delimiter + // change of type is delimiter assertNotNull(v = Version.parseVersion("format(a={1,2};aaaa={1,2};a):123abc456def")); assertEquals(Version.parseVersion("raw:12.3.'abc'.456.'de'.'f'"), v); - try { - Version.parseVersion("format(a={2,3};aaa={1,2};):1abc456def"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(a={2,3};aaa={2,3};):12abc456d"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(a={4,5};aaa={1,4};):123abc456def"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows(IllegalArgumentException.class, + () -> Version.parseVersion("format(a={2,3};aaa={1,2};):1abc456def")); + assertThrows(IllegalArgumentException.class, + () -> Version.parseVersion("format(a={2,3};aaa={2,3};):12abc456d")); + assertThrows(IllegalArgumentException.class, + () -> Version.parseVersion("format(a={4,5};aaa={1,4};):123abc456def")); } + @Test public void testEnum() { Version v1 = Version.parseVersion("format(aa={alpha,beta,gamma};a):12beta2"); Version v2 = Version.parseVersion("raw:12.{alpha,^beta,gamma}.2"); assertEquals(v1, v2); } + @Test public void testEnumOptional() { - // When enum is optional, test that parser falls back to string when enum isn't matched + // When enum is optional, test that parser falls back to string when enum isn't + // matched Version v1 = Version.parseVersion("format(aa={alpha,beta,gamma}?;a):12foo2"); Version v2 = Version.parseVersion("raw:12.'foo'.2"); assertEquals(v1, v2); - try { - Version.parseVersion("format(aa={alpha,beta,gamma};a):12foo2"); - fail("bad enum was not detected"); - } catch (IllegalArgumentException e) { - // Expected - } + assertThrows("bad enum was not detected", IllegalArgumentException.class, + () -> Version.parseVersion("format(aa={alpha,beta,gamma};a):12foo2")); } + @Test public void testEnumIgnoreCase() { - // When enum is optional, test that parser falls back to string when enum isn't matched + // When enum is optional, test that parser falls back to string when enum isn't + // matched Version v1 = Version.parseVersion("format(aa={Alpha,Beta,Gamma}i;a):12beta2"); Version v2 = Version.parseVersion("raw:12.{alpha,^beta,gamma}.2"); assertEquals(v1, v2); @@ -163,15 +141,12 @@ public class FormatATest extends TestCase { v2 = Version.parseVersion("raw:12.{alpha,^beta,gamma}.2"); assertEquals(v1, v2); - try { - Version.parseVersion("format(aa={alpha,beta,gamma};a):12BETA2"); - fail("enum case sensitivity ignored"); - } catch (IllegalArgumentException e) { - // Expected - } + assertThrows("enum case sensitivity ignored", IllegalArgumentException.class, + () -> Version.parseVersion("format(aa={alpha,beta,gamma};a):12BETA2")); } + @Test public void testEnumBegins() { // When enum has 'begins', test that parser doesn't go too far Version v1 = Version.parseVersion("format(aa={alpha,beta,gamma}b;aa):12gammafoo2"); @@ -189,21 +164,13 @@ public class FormatATest extends TestCase { assertEquals(v1, v2); // if it's not optional nor begins, it should fail - try { - v1 = Version.parseVersion("format(aa={alpha,beta,gamma};a):12gammafoo2"); - fail("Enum begins pattern resolved although begins was not specified"); - } catch (IllegalArgumentException e) { - // Expected - } + assertThrows( + IllegalArgumentException.class, + () -> Version.parseVersion("format(aa={alpha,beta,gamma};a):12gammafoo2")); // this one must fail too even though it's optional because // it falls back to string and '#' is not a legal string character - try { - Version.parseVersion("format(aa={#,$,%}?;aa?):12#foo2"); - fail("Enum fallback to string with illegal string character"); - } catch (IllegalArgumentException e) { - // Expected - } + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(aa={#,$,%}?;aa?):12#foo2")); // This however, should work v1 = Version.parseVersion("format(aa={#,$,%}b;aa):12#foo2"); @@ -211,11 +178,13 @@ public class FormatATest extends TestCase { assertEquals(v1, v2); } + @Test public void testEnumFormatToString() { Version v1 = Version.parseVersion("format(aa={alpha,beta,gamma};a):12beta2"); assertEquals(v1.toString(), "raw:12.{alpha,^beta,gamma}.2/format(aa={alpha,beta,gamma};a):12beta2"); } + @Test public void testPHPVersion() { IVersionFormat phpFormat = null; try { diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatArrayTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatArrayTest.java index f46827c41..b5e76760b 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatArrayTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatArrayTest.java @@ -14,32 +14,31 @@ package org.eclipse.equinox.p2.tests.omniVersion; +import static org.junit.Assert.assertThrows; + import junit.framework.TestCase; import org.eclipse.equinox.p2.metadata.Version; +import org.junit.Test; /** * Tests format(<>) - arrays. - * + * */ public class FormatArrayTest extends TestCase { + @Test public void testEmptyArray() { - try { - Version.parseVersion("format(<>q):''"); - fail("Uncaught error: empty array group is not allowed:"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows("Uncaught error: empty array group is not allowed:", IllegalArgumentException.class, + () -> Version.parseVersion("format(<>q):''")); } + @Test public void testEmptyArrayBecauseContentIsOptional() { - try { - Version.parseVersion("format(<n?>q):''"); - fail("Uncaught error: produces an empty vector"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows("Uncaught error: produces an empty vector", + IllegalArgumentException.class, + () -> Version.parseVersion("format(<n?>q):''")); } + @Test public void testOptionalArray() { Version v = Version.parseVersion("format(<n>?S):abc"); assertNotNull(v); @@ -50,18 +49,21 @@ public class FormatArrayTest extends TestCase { } + @Test public void testNumericArray() { Version v = Version.parseVersion("format(<(n.?)+>):1.2.3.4.5.6.7.8.9"); assertNotNull(v); assertEquals(Version.parseVersion("raw:<1.2.3.4.5.6.7.8.9>"), v); } + @Test public void testStringArray() { Version v = Version.parseVersion("format(<(S=[^.];d?)+>):a.b.c.d.e.f.g.h.i"); assertNotNull(v); assertEquals(Version.parseVersion("raw:<'a'.'b'.'c'.'d'.'e'.'f'.'g'.'h'.'i'>"), v); } + @Test public void testNestedArray() { Version v = Version.parseVersion("format(<n.<n.n>.n>):1.2.3.4"); assertNotNull(v); diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatDTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatDTest.java index 6266ae999..1774f5de2 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatDTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatDTest.java @@ -14,19 +14,23 @@ package org.eclipse.equinox.p2.tests.omniVersion; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThrows; + import org.eclipse.equinox.p2.metadata.Version; +import org.junit.Test; /** * Tests format(d) and explicit delimiter chars and strings. */ -public class FormatDTest extends TestCase { +public class FormatDTest { /** * Definition of default set of delimiters */ private static char[] s_delim = { // 0x20, // ' ' - 0x21, // ! + 0x21, // ! 0x22, // # 0x23, // " 0x24, // '$' @@ -45,7 +49,7 @@ public class FormatDTest extends TestCase { 0x3b, // ';' 0x3c, // '<' 0x3d, // '=' - 0x3e, // '>' + 0x3e, // '>' 0x3f, // '?' 0x40, // @ <--- TODO: Debatable - is @ a delimiter of part of a string? 0x5b, // [ @@ -59,6 +63,7 @@ public class FormatDTest extends TestCase { 0x7e, // ~ }; + @Test public void testNumericWithDefaultSet() { Version v = null; String formatString = "format(ndn):"; @@ -77,6 +82,7 @@ public class FormatDTest extends TestCase { } } + @Test public void testStringWithDefaultSet() { Version v = null; String formatString = "format(sds):"; @@ -95,6 +101,7 @@ public class FormatDTest extends TestCase { } } + @Test public void testAccepted() { Version v = Version.parseVersion("format((d=[A-Z];n){3}):A1B22C333"); assertNotNull(v); @@ -119,6 +126,7 @@ public class FormatDTest extends TestCase { assertEquals(Integer.valueOf(333), v.getSegment(2)); } + @Test public void testRejected() { Version v = null; assertNotNull(v = Version.parseVersion("format((d=[^.:];S=[a-z0-9];){3}):/a1;b22=c333")); @@ -127,6 +135,7 @@ public class FormatDTest extends TestCase { assertEquals("c333", v.getSegment(2)); } + @Test public void testExplicit() { Version v = null; assertNotNull(v = Version.parseVersion("format('epoch='n';''major='n';''minor='n';'):epoch=1;major=22;minor=333;")); @@ -141,6 +150,7 @@ public class FormatDTest extends TestCase { } + @Test public void testCounted() { // repeated d, char count d, and counted d are equal Version v1 = Version.parseVersion("format(dddn):///1"); @@ -153,43 +163,27 @@ public class FormatDTest extends TestCase { } + @Test public void testIllegalCharCount() { - try { - Version.parseVersion("format(d={3};n):///1"); - fail("Uncaught error: char count can not be used with 'd'"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(d={3};n):///1")); } + @Test public void testIllegalAsPad() { - try { - Version.parseVersion("format(nd=pm;n):1.0"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(nd=pm;n):1.0")); } + @Test public void testIllegalWithDefault() { - try { - Version.parseVersion("format(nd='a';n):1.0"); - fail("Uncaught error: 'd' can not have a default value"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(nd='a';n):1.0")); } /** * Ignore of d is illegal as d is already ignored. */ + @Test public void testIllegalIgnore() { - try { - Version.parseVersion("format(nd=!;n):1.0"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(nd=!;n):1.0")); } } diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatNTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatNTest.java index 35807c127..83014c0b2 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatNTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatNTest.java @@ -14,14 +14,18 @@ package org.eclipse.equinox.p2.tests.omniVersion; +import static org.junit.Assert.assertThrows; + import junit.framework.TestCase; import org.eclipse.equinox.p2.metadata.Version; +import org.junit.Test; /** * Tests format(n) and format(N) * */ public class FormatNTest extends TestCase { + @Test public void testNonNegative() { Version v = Version.parseVersion("format(n):1"); assertNotNull(v); @@ -30,14 +34,11 @@ public class FormatNTest extends TestCase { assertNotNull(v = Version.parseVersion("format(n):0")); assertEquals(Version.parseVersion("raw:0"), v); - try { - Version.parseVersion("format(n):-1"); - fail("Uncaught exception: negative number in 'n' format"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows("negative number in 'n' format", IllegalArgumentException.class, + () -> Version.parseVersion("format(n):-1")); } + @Test public void testNegativeValues() { Version v = Version.parseVersion("format(N):-1"); assertNotNull(v); @@ -50,6 +51,7 @@ public class FormatNTest extends TestCase { assertEquals(Version.parseVersion("raw:0"), v); } + @Test public void testLeadingZeros() { Version v = Version.parseVersion("format(n):000001"); assertNotNull(v); @@ -59,6 +61,7 @@ public class FormatNTest extends TestCase { assertEquals(Version.parseVersion("raw:-1"), v); } + @Test public void testExact() { Version v = Version.parseVersion("format(n={2};n={2};):1122"); assertNotNull(v); @@ -70,56 +73,29 @@ public class FormatNTest extends TestCase { assertNotNull(v = Version.parseVersion("format(N={4};N={3};):-001234")); assertEquals(Version.parseVersion("raw:-1.234"), v); - try { - v = Version.parseVersion("format(n={2};.;n={2};):1.2"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - v = Version.parseVersion("format(n={2};.;n={2};):111.2222"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(n={2};.;n={2};):1.2")); + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(n={2};.;n={2};):111.2222")); } + @Test public void testAtLeast() { Version v = Version.parseVersion("format(n={2,};.n={2,};):111.22222"); assertNotNull(v); assertEquals(Version.parseVersion("raw:111.22222"), v); - try { - v = Version.parseVersion("format(n={2,};.;n={2};):111.2"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(n={2,};.;n={2};):111.2")); } + @Test public void testAtMost() { Version v = Version.parseVersion("format(n={2,3};.n={2,3};):111.22"); assertNotNull(v); assertEquals(Version.parseVersion("raw:111.22"), v); - try { - v = Version.parseVersion("format(n={2,3};.n={2,3};):111.2222"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - v = Version.parseVersion("format(n={2,3};.n={2,3};):1.222"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(n={2,3};.n={2,3};):111.2222")); + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(n={2,3};.n={2,3};):1.222")); } + @Test public void testNIsGreedy() { - try { - Version.parseVersion("format(nn):1010"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(nn):1010")); } } diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatPTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatPTest.java index 017fbf3cc..8e7df4131 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatPTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatPTest.java @@ -14,16 +14,21 @@ package org.eclipse.equinox.p2.tests.omniVersion; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + import org.eclipse.equinox.p2.metadata.Version; +import org.junit.Test; -public class FormatPTest extends TestCase { +public class FormatPTest { + @Test public void testPad() { Version v = Version.parseVersion("format(qp):''pm"); assertNotNull(v); assertEquals(Version.parseVersion("raw:''pm"), v); } + @Test public void testArrayPad() { Version v = Version.parseVersion("format(r):<''pm>"); assertNotNull(v); diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatProcessingTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatProcessingTest.java index bc3178242..5ba856178 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatProcessingTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatProcessingTest.java @@ -14,15 +14,21 @@ package org.eclipse.equinox.p2.tests.omniVersion; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThrows; + import org.eclipse.equinox.p2.metadata.Version; +import org.junit.Test; /** - * Tests processing rules not tested elsewhere, and combinations of processing rules. + * Tests processing rules not tested elsewhere, and combinations of processing + * rules. * */ -public class FormatProcessingTest extends TestCase { +public class FormatProcessingTest { + @Test public void testIgnore() { Version v = Version.parseVersion("format(n=!;.n.n):100.1.2"); assertNotNull(v); @@ -30,6 +36,7 @@ public class FormatProcessingTest extends TestCase { assertEquals(Integer.valueOf(2), v.getSegment(1)); } + @Test public void testDefaultArrayWithPad() { Version v = Version.parseVersion("format(s.?<n.n>=<1.0pm>;=p10;?):alpha"); assertNotNull(v); @@ -39,12 +46,14 @@ public class FormatProcessingTest extends TestCase { assertEquals(Version.parseVersion("raw:'alpha'.<1.2p10>"), v); } + @Test public void testDefaultValues() { Version v = Version.parseVersion("format(n.[n=1;].?[s='foo';].?[a='bar';].?[a=2;]):9."); assertNotNull(v); assertEquals(Version.parseVersion("raw:9.1.'foo'.'bar'.2"), v); } + @Test public void testArrayDefaultValues() { Version v = null; assertNotNull(v = Version.parseVersion("format(n.<n.n>=<1.0>;?):9.")); @@ -59,6 +68,7 @@ public class FormatProcessingTest extends TestCase { assertEquals("individual defaults should not be used", Version.parseVersion("raw:9.<1.0>"), v); } + @Test public void testOtherTypeAsDefault() { Version v = null; assertNotNull(v = Version.parseVersion("format(s=123;?n):1")); @@ -100,159 +110,84 @@ public class FormatProcessingTest extends TestCase { } /** - * A processing rule can only be applied once to the preceding element. - * (These tests check if the same processing can be applied twice). + * A processing rule can only be applied once to the preceding element. (These + * tests check if the same processing can be applied twice). */ + @Test public void testSameMoreThanOnce() { - try { - Version.parseVersion("format(n=!;=!;.n):1.2"); - fail("error not detected:2 x =!;"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(s=[abc];=[123];.n):abc123.2"); - fail("error not detected:2 x =[];"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(nd=[^:];=[^:];n):1.2"); - fail("error not detected:2x [^];"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(n={1,3};={1,3};.n):1.2"); - fail("error not detected:2x ={ };"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(n=0;=1;.n):1.2"); - fail("error not detected:2x =default value"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format((n.n)=pm;=pm;):1.2"); - fail("error not detected:2x =pm;"); - - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows("error detected:2 x =!;", IllegalArgumentException.class, + () -> Version.parseVersion("format(n=!;=!;.n):1.2")); + assertThrows("error detected:2 x =[];", IllegalArgumentException.class, + () -> Version.parseVersion("format(s=[abc];=[123];.n):abc123.2")); + assertThrows("error detected:2x [^];", IllegalArgumentException.class, + () -> Version.parseVersion("format(nd=[^:];=[^:];n):1.2")); + assertThrows("error detected:2x ={ };", IllegalArgumentException.class, + () -> Version.parseVersion("format(n={1,3};={1,3};.n):1.2")); + assertThrows("error detected:2x =default value", IllegalArgumentException.class, + () -> Version.parseVersion("format(n=0;=1;.n):1.2")); + assertThrows("error detected:2x =pm;", IllegalArgumentException.class, + () -> Version.parseVersion("format((n.n)=pm;=pm;):1.2")); + } /** * Tests that it is not allowed to have both =[]; and =[^] at the same time. */ + @Test public void testSetNotSet() { - try { - Version.parseVersion("format(nd=[a-z];=[^.:];n):1.2"); - fail("error not detected: =[];=[^];"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows("error detected: =[];=[^];", IllegalArgumentException.class, + () -> Version.parseVersion("format(nd=[a-z];=[^.:];n):1.2")); } /** * Pad can only be combined with default value. */ + @Test public void testBadPadCombinations() { - try { - Version.parseVersion("format((n.n)=pm;=[abc];):1.2"); - fail("error not detected: =p; =[];"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format((n.n)=pm;=[^.:];):1.2"); - fail("error not detected: =p; =[];"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format((n.n)=pm;={1,3};):1.2"); - fail("error not detected: =p; ={};"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format((n.n)=pm;=!;):1.2"); - fail("error not detected: =p; =!;"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows("error detected: =p; =[];", IllegalArgumentException.class, + () -> Version.parseVersion("format((n.n)=pm;=[abc];):1.2")); + assertThrows("error detected: =p; =[];", IllegalArgumentException.class, + () -> Version.parseVersion("format((n.n)=pm;=[^.:];):1.2")); + assertThrows("error detected: =p; ={};", IllegalArgumentException.class, + () -> Version.parseVersion("format((n.n)=pm;={1,3};):1.2")); + + assertThrows("error detected: =p; =!;", IllegalArgumentException.class, + () -> Version.parseVersion("format((n.n)=pm;=!;):1.2")); } + @Test public void testNonPaddable() { - try { - Version.parseVersion("format(n=pm;):1"); - fail("error not detected: n=p;"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(N=pm;):1"); - fail("error not detected: n=p;"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(s=pm;):a"); - fail("error not detected: s=p;"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(S=pm;):a"); - fail("error not detected: S=p;"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(a=pm;):a"); - fail("error not detected: a=p;"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(d=pm;):a"); - fail("error not detected: d=p;"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(q=pm;):a"); - fail("error not detected: q=p;"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(r=pm;):a"); - fail("error not detected: q=p;"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format('x'=pm;n):x1"); - fail("error not detected: 'x'=p;"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(.=pm;n):x1"); - fail("error not detected: .=p;"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(p=pm;n):x1"); - fail("error not detected: p=p;"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows("error detected: n=p;", IllegalArgumentException.class, + () ->Version.parseVersion("format(n=pm;):1")); + assertThrows("error detected: n=p;", IllegalArgumentException.class, + () ->Version.parseVersion("format(N=pm;):1")); + + assertThrows("error detected: s=p;", IllegalArgumentException.class, + () -> Version.parseVersion("format(s=pm;):a")); + + assertThrows("error detected: S=p;", IllegalArgumentException.class, + () ->Version.parseVersion("format(S=pm;):a")); + + assertThrows("error detected: a=p;", IllegalArgumentException.class, + () ->Version.parseVersion("format(a=pm;):a")); + + assertThrows("error detected: d=p;", IllegalArgumentException.class, + () ->Version.parseVersion("format(d=pm;):a")); + + assertThrows("error detected: q=p;", IllegalArgumentException.class, + () ->Version.parseVersion("format(q=pm;):a")); + + assertThrows("error detected: q=p;", IllegalArgumentException.class, + () ->Version.parseVersion("format(r=pm;):a")); + + assertThrows("error detected: 'x'=p;", IllegalArgumentException.class, + () ->Version.parseVersion("format('x'=pm;n):x1")); + + assertThrows("error detected: .=p;", IllegalArgumentException.class, + () -> Version.parseVersion("format(.=pm;n):x1")); + assertThrows("error detected: p=p;", IllegalArgumentException.class, + () -> Version.parseVersion("format(p=pm;n):x1")); } } diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatQTest.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatQTest.java index 6b4d46554..4c4f4e039 100644 --- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatQTest.java +++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/omniVersion/FormatQTest.java @@ -14,19 +14,25 @@ package org.eclipse.equinox.p2.tests.omniVersion; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThrows; + import org.eclipse.equinox.p2.metadata.Version; +import org.junit.Test; /** - * Tests format(q) - * smart quoted string - matches a quoted alphanumeric string where the quote is determined by the first - * character of the string segment. The quote must be a non alphanumeric character, and the string - * must be delimited by the same character except brackets and parenthesises (i.e. (), {}, [], <>) which are - * handled as pairs, thus 'q' matches "<andrea-doria>" and produces a single string segment with the text 'andrea-doria'. - * A non-quoted sequence of characters are not matched by 'q'. - * + * Tests format(q) smart quoted string - matches a quoted alphanumeric string + * where the quote is determined by the first character of the string segment. + * The quote must be a non alphanumeric character, and the string must be + * delimited by the same character except brackets and parenthesises (i.e. (), + * {}, [], <>) which are handled as pairs, thus 'q' matches "<andrea-doria>" and + * produces a single string segment with the text 'andrea-doria'. A non-quoted + * sequence of characters are not matched by 'q'. + * */ -public class FormatQTest extends TestCase { +public class FormatQTest { + @Test public void testQuoteFormatParsing() { Version aVer = Version.parseVersion("raw:'a'"); assertNotNull(aVer); @@ -47,24 +53,17 @@ public class FormatQTest extends TestCase { } + @Test public void testQUnbalancedQuoteR() { - try { - Version.parseVersion("format(q):'a"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(q):'a")); } + @Test public void testQUnbalancedQuoteL() { - try { - Version.parseVersion("format(q):a'"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(q):a'")); } + @Test public void testQuotedFormatPairsParsing() { Version aVer = Version.parseVersion("raw:'a'"); assertNotNull(aVer); @@ -79,143 +78,50 @@ public class FormatQTest extends TestCase { assertEquals(aVer, v); } + @Test public void testQUnbalancedPair1() { - try { - Version.parseVersion("format(q):(a"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(q):a)"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(q):(a("); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(q):)a)"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(q):(a")); + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(q):a)")); + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(q):(a(")); + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(q):)a)")); } + @Test public void testQUnbalancedPair2() { - try { - Version.parseVersion("format(q):[a"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(q):a]"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(q):[a["); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(q):]a]"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(q):[a")); + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(q):a]")); + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(q):[a[")); + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(q):]a]")); } + @Test public void testQUnbalancedPair3() { - try { - Version.parseVersion("format(q):<a"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(q):a>"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(q):<a<"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(q):>a>"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(q):<a")); + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(q):a>")); + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(q):<a<")); + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(q):>a>")); } + @Test public void testQUnbalancedPair4() { - try { - Version.parseVersion("format(q):{a"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(q):a}"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(q):{a{"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(q):}a}"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(q):{a")); + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(q):a}")); + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(q):{a{")); + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(q):}a}")); } + @Test public void testQUnbalancedPair5() { - // not all erroneous permutations tested - only principle that open and close must be from "matching pair" + // not all erroneous permutations tested - only principle that open and close + // must be from "matching pair" // it should be enough to cover a faulty implementation - try { - Version.parseVersion("format(q):(a}"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(q):[a}"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(q):{a]"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(q):<a)"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(q):(a}")); + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(q):[a}")); + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(q):{a]")); + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(q):<a)")); } + @Test public void testExact() { Version v = Version.parseVersion("format(q={4};q):<123a>\"bc456'def'\""); assertNotNull(v); @@ -233,20 +139,13 @@ public class FormatQTest extends TestCase { assertNotNull(v = Version.parseVersion("format(q={2};.q={1};qq={3};):<12>.<3>'456'<abc>")); assertEquals(Version.parseVersion("raw:'12'.'3'.'456'.'abc'"), v); - try { - Version.parseVersion("format(q={4};.q):123.(abc456)'def'"); - fail("Uncaught error: quoted string is longer than 4"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(q={4};q):<123>(abc456'def')"); - fail("Uncaught error: quoted string is shorter than 4"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows("Error: quoted string is longer than 4", IllegalArgumentException.class, + () -> Version.parseVersion("format(q={4};.q):123.(abc456)'def'")); + assertThrows("Error: quoted string is shorter than 4", IllegalArgumentException.class, + () -> Version.parseVersion("format(q={4};q):<123>(abc456'def')")); } + @Test public void testAtLeast() { Version v = Version.parseVersion("format(q={2,};):(123abc456'def')"); assertNotNull(v); @@ -261,32 +160,17 @@ public class FormatQTest extends TestCase { assertNotNull(v = Version.parseVersion("format(q={2,};q):<123a>(bc456'def')")); assertEquals(Version.parseVersion("raw:'123a'.\"bc456'def'\""), v); - try { - Version.parseVersion("format(q={2,};.q):1.abc456'def'"); - fail("Uncaught error: first segment is shorter than 2"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(q={2,};q):<1>(abc456'def')"); - fail("Uncaught error: firt segment is shorter than 2"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(q={2,};.q={10,};):(12).(abc456'd')"); - fail("Uncaught error: last segment is shorter than 10"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - Version.parseVersion("format(q={2,};.q={10,};):<12>.abc456'd'"); - fail("Uncaught error: second segment is not quoted"); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + assertThrows("Eror: first segment is shorter than 2", IllegalArgumentException.class, + () -> Version.parseVersion("format(q={2,};.q):1.abc456'def'")); + assertThrows("Eror: firt segment is shorter than 2", IllegalArgumentException.class, + () -> Version.parseVersion("format(q={2,};q):<1>(abc456'def')")); + assertThrows("Eror: last segment is shorter than 10", IllegalArgumentException.class, + () -> Version.parseVersion("format(q={2,};.q={10,};):(12).(abc456'd')")); + assertThrows("Eror: fsecond segment is not quoted", IllegalArgumentException.class, + () -> Version.parseVersion("format(q={2,};.q={10,};):<12>.abc456'd'")); } + @Test public void testAtMost() { // exact request Version v = Version.parseVersion("format(q={1,3};q={1,2};q):<123><ab><c456'def'>"); @@ -297,20 +181,11 @@ public class FormatQTest extends TestCase { assertNotNull(v = Version.parseVersion("format(q={1,4};q={1,4};q):<123><abc4><56'def'>")); assertEquals(Version.parseVersion("raw:'123'.'abc4'.\"56'def'\""), v); - try { - // fails because first segment is shorter - Version.parseVersion("format(q={2,3};q):<1><abc456'def'>"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - try { - // fails because there are trailing characters after 'c' - Version.parseVersion("format(q={2,3};q={2,3};):<12><abc456'd'>"); - fail(); - } catch (IllegalArgumentException e) { - assertTrue(true); - } + // fails because first segment is shorter + assertThrows(IllegalArgumentException.class, () -> Version.parseVersion("format(q={2,3};q):<1><abc456'def'>")); + // fails because there are trailing characters after 'c' + assertThrows(IllegalArgumentException.class, + () -> Version.parseVersion("format(q={2,3};q={2,3};):<12><abc456'd'>")); } } |