Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/CompoundQueryableTest.java')
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/core/CompoundQueryableTest.java240
1 files changed, 84 insertions, 156 deletions
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 16783c3f7..c05dd804a 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
@@ -9,11 +9,13 @@
******************************************************************************/
package org.eclipse.equinox.p2.tests.core;
-import java.util.*;
+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.internal.provisional.p2.metadata.query.*;
+import org.eclipse.equinox.p2.query.*;
+import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
/**
* Tests the compound queryable
@@ -56,10 +58,11 @@ public class CompoundQueryableTest extends TestCase {
IQueryable queryable1 = new IQueryable() {
Integer[] elements = new Integer[] {1, 2, 3, 4, 5};
- public Collector query(Query query, Collector collector, IProgressMonitor monitor) {
+ public IQueryResult query(IQuery query, IProgressMonitor monitor) {
+ IQueryResult collector;
try {
monitor.beginTask("", 10);
- collector = query.perform(createIterator(elements), collector);
+ collector = query.perform(createIterator(elements));
monitor.worked(10);
} finally {
monitor.done();
@@ -71,10 +74,11 @@ public class CompoundQueryableTest extends TestCase {
IQueryable queryable2 = new IQueryable() {
Integer[] elements = new Integer[] {4, 6, 8, 10, 12};
- public Collector query(Query query, Collector collector, IProgressMonitor monitor) {
+ public IQueryResult query(IQuery query, IProgressMonitor monitor) {
+ IQueryResult collector;
try {
monitor.beginTask("", 10);
- collector = query.perform(createIterator(elements), collector);
+ collector = query.perform(createIterator(elements));
monitor.worked(10);
} finally {
monitor.done();
@@ -86,10 +90,11 @@ public class CompoundQueryableTest extends TestCase {
IQueryable queryable3 = new IQueryable() {
Integer[] elements = new Integer[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
- public Collector query(Query query, Collector collector, IProgressMonitor monitor) {
+ public IQueryResult query(IQuery query, IProgressMonitor monitor) {
+ IQueryResult collector;
try {
monitor.beginTask("", 10);
- collector = query.perform(createIterator(elements), collector);
+ collector = query.perform(createIterator(elements));
monitor.worked(10);
} finally {
monitor.done();
@@ -98,7 +103,7 @@ public class CompoundQueryableTest extends TestCase {
}
};
- Query matchQuery = new MatchQuery() {
+ IQuery matchQuery = new MatchQuery() {
public boolean isMatch(Object candidate) {
if (candidate instanceof Integer) {
@@ -110,7 +115,7 @@ public class CompoundQueryableTest extends TestCase {
}
};
- Query matchMod4query = new MatchQuery() {
+ IQuery matchMod4query = new MatchQuery() {
public boolean isMatch(Object candidate) {
if (candidate instanceof Integer) {
int x = ((Integer) candidate).intValue();
@@ -121,9 +126,10 @@ public class CompoundQueryableTest extends TestCase {
}
};
- Query contextQuery = new ContextQuery() {
+ IQuery contextQuery = new ContextQuery() {
- public Collector perform(Iterator iterator, Collector result) {
+ public Collector perform(Iterator iterator) {
+ Collector result = new Collector();
while (iterator.hasNext()) {
Object o = iterator.next();
if (o instanceof Integer && ((Integer) o).intValue() % 2 == 0) {
@@ -135,8 +141,9 @@ public class CompoundQueryableTest extends TestCase {
};
- Query greatestNumberQuery = new ContextQuery() {
- public Collector perform(Iterator iterator, Collector result) {
+ IQuery greatestNumberQuery = new ContextQuery() {
+ public Collector perform(Iterator iterator) {
+ Collector result = new Collector();
int greatest = Integer.MIN_VALUE;
while (iterator.hasNext()) {
int item = ((Integer) iterator.next()).intValue();
@@ -151,208 +158,129 @@ public class CompoundQueryableTest extends TestCase {
};
public void testMatchQuery() {
- CompoundQueryable cQueryable = new CompoundQueryable(new IQueryable[] {queryable1, queryable2});
+ CompoundQueryable cQueryable = new CompoundQueryable(queryable1, queryable2);
CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor();
- Collector collector = cQueryable.query(matchQuery, new Collector(), monitor);
- assertEquals("1.0", 6, collector.size());
- Collection collection = collector.toCollection();
- assertTrue("1.1", collection.contains(2));
- assertTrue("1.2", collection.contains(4));
- assertTrue("1.3", collection.contains(6));
- assertTrue("1.4", collection.contains(8));
- assertTrue("1.5", collection.contains(10));
- assertTrue("1.6", collection.contains(12));
+ IQueryResult queryResult = cQueryable.query(matchQuery, monitor);
+ assertEquals("1.0", 6, AbstractProvisioningTest.queryResultSize(queryResult));
+ AbstractProvisioningTest.assertContains("1.1", queryResult, 2);
+ AbstractProvisioningTest.assertContains("1.2", queryResult, 4);
+ AbstractProvisioningTest.assertContains("1.3", queryResult, 6);
+ AbstractProvisioningTest.assertContains("1.4", queryResult, 8);
+ AbstractProvisioningTest.assertContains("1.5", queryResult, 10);
+ AbstractProvisioningTest.assertContains("1.6", queryResult, 12);
}
public void testSingleQueryable() {
- CompoundQueryable cQueryable = new CompoundQueryable(new IQueryable[] {queryable1});
+ CompoundQueryable cQueryable = new CompoundQueryable(queryable1);
CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor();
- Collector collector = cQueryable.query(matchQuery, new Collector(), monitor);
- assertEquals("1.0", 2, collector.size());
- Collection collection = collector.toCollection();
- assertTrue("1.1", collection.contains(2));
- assertTrue("1.2", collection.contains(4));
+ IQueryResult queryResult = cQueryable.query(matchQuery, monitor);
+ assertEquals("1.0", 2, AbstractProvisioningTest.queryResultSize(queryResult));
+ AbstractProvisioningTest.assertContains("1.1", queryResult, 2);
+ AbstractProvisioningTest.assertContains("1.2", queryResult, 4);
}
public void testSingleContextQuery() {
- CompoundQueryable cQueryable = new CompoundQueryable(new IQueryable[] {queryable1});
+ CompoundQueryable cQueryable = new CompoundQueryable(queryable1);
CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor();
- Collector collector = cQueryable.query(greatestNumberQuery, new Collector(), monitor);
- assertEquals("1.0", 1, collector.size());
- Collection collection = collector.toCollection();
- assertTrue("1.1", collection.contains(5));
+ IQueryResult queryResult = cQueryable.query(greatestNumberQuery, monitor);
+ assertEquals("1.0", 1, AbstractProvisioningTest.queryResultSize(queryResult));
+ AbstractProvisioningTest.assertContains("1.1", queryResult, 5);
}
public void testMultipleContextQueries() {
- CompoundQueryable cQueryable = new CompoundQueryable(new IQueryable[] {queryable1, queryable2});
+ CompoundQueryable cQueryable = new CompoundQueryable(queryable1, queryable2);
CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor();
- Collector collector = cQueryable.query(greatestNumberQuery, new Collector(), monitor);
- assertEquals("1.0", 1, collector.size());
- Collection collection = collector.toCollection();
- assertTrue("1.1", collection.contains(12));
- }
-
- public void testListCollector1() {
- CompoundQueryable cQueryable = new CompoundQueryable(new IQueryable[] {queryable1, queryable2});
- CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor();
- Collector collector = cQueryable.query(contextQuery, cQueryable.new ListCollector(), monitor);
-
- // We use a list so there should be 7 elements (4 is there twice)
- assertEquals("1.0", 7, collector.size());
- Collection collection = collector.toCollection();
- assertTrue("1.1", collection.contains(2));
- assertTrue("1.2", collection.contains(4));
- assertTrue("1.3", collection.contains(6));
- assertTrue("1.4", collection.contains(8));
- assertTrue("1.5", collection.contains(10));
- assertTrue("1.6", collection.contains(12));
- }
-
- public void testListCollector_isEmpty() {
- CompoundQueryable cQueryable = new CompoundQueryable(new IQueryable[] {queryable1, queryable2});
- CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor();
- Collector collector = cQueryable.new ListCollector();
- assertTrue("1.0", collector.isEmpty());
- collector = cQueryable.query(contextQuery, cQueryable.new ListCollector(), monitor);
- assertFalse("1.0", collector.isEmpty());
- }
-
- public void testListCollector_getCollection() {
- CompoundQueryable cQueryable = new CompoundQueryable(new IQueryable[] {queryable1, queryable2});
- CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor();
-
- Collector collector = cQueryable.query(contextQuery, cQueryable.new ListCollector(), monitor);
-
- // We use a list so there should be 7 elements (4 is there twice)
- assertEquals("1.0", 7, collector.size());
- Integer[] array = (Integer[]) collector.toArray(Integer.class);
- Collection collection = Arrays.asList(array);
- assertTrue("1.1", collection.contains(2));
- assertTrue("1.2", collection.contains(4));
- assertTrue("1.3", collection.contains(6));
- assertTrue("1.4", collection.contains(8));
- assertTrue("1.5", collection.contains(10));
- assertTrue("1.6", collection.contains(12));
- }
-
- public void testListCollector_toArray() {
- final CompoundQueryable cQueryable = new CompoundQueryable(new IQueryable[] {queryable1, queryable2});
- CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor();
-
- class CustomListCollector extends CompoundQueryable.ListCollector {
-
- public CustomListCollector() {
- cQueryable.super();
- }
-
- public Collection getCollection() {
- return super.getCollection();
- }
- }
-
- CustomListCollector collector = (CustomListCollector) cQueryable.query(contextQuery, new CustomListCollector(), monitor);
-
- // We use a list so there should be 7 elements (4 is there twice)
- assertEquals("1.0", 7, collector.size());
- Collection collection = collector.getCollection();
- assertTrue("1.1", collection.contains(2));
- assertTrue("1.2", collection.contains(4));
- assertTrue("1.3", collection.contains(6));
- assertTrue("1.4", collection.contains(8));
- assertTrue("1.5", collection.contains(10));
- assertTrue("1.6", collection.contains(12));
+ IQueryResult queryResult = cQueryable.query(greatestNumberQuery, monitor);
+ assertEquals("1.0", 1, AbstractProvisioningTest.queryResultSize(queryResult));
+ AbstractProvisioningTest.assertContains("1.1", queryResult, 12);
}
public void testCompoundMatchAndQuery() {
- CompoundQueryable cQueryable = new CompoundQueryable(new IQueryable[] {queryable1, queryable2});
+ CompoundQueryable cQueryable = new CompoundQueryable(queryable1, queryable2);
CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor();
- Collector collector = cQueryable.query(CompoundQuery.createCompoundQuery(new Query[] {matchQuery, matchMod4query}, true), new Collector(), monitor);
- assertEquals("1.0", 3, collector.size());
- Collection collection = collector.toCollection();
- assertTrue("1.2", collection.contains(4));
- assertTrue("1.4", collection.contains(8));
- assertTrue("1.6", collection.contains(12));
+ IQueryResult queryResult = cQueryable.query(CompoundQuery.createCompoundQuery(new IQuery[] {matchQuery, matchMod4query}, true), monitor);
+ assertEquals("1.0", 3, AbstractProvisioningTest.queryResultSize(queryResult));
+ AbstractProvisioningTest.assertContains("1.2", queryResult, 4);
+ AbstractProvisioningTest.assertContains("1.4", queryResult, 8);
+ AbstractProvisioningTest.assertContains("1.6", queryResult, 12);
}
public void testCompoundMatchOrQuery() {
- CompoundQueryable cQueryable = new CompoundQueryable(new IQueryable[] {queryable1, queryable2});
+ CompoundQueryable cQueryable = new CompoundQueryable(queryable1, queryable2);
CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor();
- Collector collector = cQueryable.query(CompoundQuery.createCompoundQuery(new Query[] {matchQuery, matchMod4query}, false), new Collector(), monitor);
- assertEquals("1.0", 6, collector.size());
- Collection collection = collector.toCollection();
- assertTrue("1.2", collection.contains(2));
- assertTrue("1.2", collection.contains(4));
- assertTrue("1.2", collection.contains(6));
- assertTrue("1.4", collection.contains(8));
- assertTrue("1.2", collection.contains(10));
- assertTrue("1.6", collection.contains(12));
+ IQueryResult queryResult = cQueryable.query(CompoundQuery.createCompoundQuery(new IQuery[] {matchQuery, matchMod4query}, false), monitor);
+ assertEquals("1.0", 6, AbstractProvisioningTest.queryResultSize(queryResult));
+ AbstractProvisioningTest.assertContains("1.2", queryResult, 2);
+ AbstractProvisioningTest.assertContains("1.2", queryResult, 4);
+ AbstractProvisioningTest.assertContains("1.2", queryResult, 6);
+ AbstractProvisioningTest.assertContains("1.4", queryResult, 8);
+ AbstractProvisioningTest.assertContains("1.2", queryResult, 10);
+ AbstractProvisioningTest.assertContains("1.6", queryResult, 12);
}
public void testMatchQueryProgressMonitor() {
- CompoundQueryable cQueryable = new CompoundQueryable(new IQueryable[] {queryable1, queryable2});
+ CompoundQueryable cQueryable = new CompoundQueryable(queryable1, queryable2);
CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor();
- cQueryable.query(matchQuery, new Collector(), monitor);
+ cQueryable.query(matchQuery, monitor);
assertTrue("1.0", monitor.isDone());
assertTrue("1.1", monitor.isWorkDone());
}
public void testSingleQueryableProgressMonitor() {
- CompoundQueryable cQueryable = new CompoundQueryable(new IQueryable[] {queryable1});
+ CompoundQueryable cQueryable = new CompoundQueryable(queryable1);
CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor();
- cQueryable.query(matchQuery, new Collector(), monitor);
+ cQueryable.query(matchQuery, monitor);
assertTrue("1.0", monitor.isDone());
assertTrue("1.1", monitor.isWorkDone());
}
public void testSingleContextQueryProgressMonitor() {
- CompoundQueryable cQueryable = new CompoundQueryable(new IQueryable[] {queryable1});
+ CompoundQueryable cQueryable = new CompoundQueryable(queryable1);
CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor();
- cQueryable.query(greatestNumberQuery, new Collector(), monitor);
+ cQueryable.query(greatestNumberQuery, monitor);
assertTrue("1.0", monitor.isDone());
assertTrue("1.1", monitor.isWorkDone());
}
public void testMultipleContextQueriesProgressMonitor() {
- CompoundQueryable cQueryable = new CompoundQueryable(new IQueryable[] {queryable1, queryable2});
+ CompoundQueryable cQueryable = new CompoundQueryable(queryable1, queryable2);
CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor();
- cQueryable.query(greatestNumberQuery, new Collector(), monitor);
+ cQueryable.query(greatestNumberQuery, monitor);
assertTrue("1.0", monitor.isDone());
assertTrue("1.1", monitor.isWorkDone());
}
public void testNullProgressMonitor() {
- CompoundQueryable cQueryable = new CompoundQueryable(new IQueryable[] {queryable1, queryable2});
- cQueryable.query(greatestNumberQuery, new Collector(), null);
+ CompoundQueryable cQueryable = new CompoundQueryable(queryable1, queryable2);
+ cQueryable.query(greatestNumberQuery, null);
// this is the same as above will null passed in, this should not throw any exceptions
}
public void testDoubleCompoundContextOrQuery() {
- CompoundQueryable cQueryable1 = new CompoundQueryable(new IQueryable[] {queryable3, queryable2});
- CompoundQueryable cQueryable = new CompoundQueryable(new IQueryable[] {cQueryable1, queryable1});
+ CompoundQueryable cQueryable1 = new CompoundQueryable(queryable3, queryable2);
+ CompoundQueryable cQueryable = new CompoundQueryable(cQueryable1, queryable1);
CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor();
- Collector collector = cQueryable.query(CompoundQuery.createCompoundQuery(new Query[] {contextQuery, greatestNumberQuery}, false), new Collector(), monitor);
- assertEquals("1.0", 7, collector.size());
- Collection collection = collector.toCollection();
- assertTrue("1.2", collection.contains(2));
- assertTrue("1.2", collection.contains(4));
- assertTrue("1.2", collection.contains(6));
- assertTrue("1.4", collection.contains(8));
- assertTrue("1.2", collection.contains(10));
- assertTrue("1.6", collection.contains(12));
- assertTrue("1.6", collection.contains(13));
+ IQueryResult queryResult = cQueryable.query(CompoundQuery.createCompoundQuery(new IQuery[] {contextQuery, greatestNumberQuery}, false), monitor);
+ assertEquals("1.0", 7, AbstractProvisioningTest.queryResultSize(queryResult));
+ AbstractProvisioningTest.assertContains("1.2", queryResult, 2);
+ AbstractProvisioningTest.assertContains("1.2", queryResult, 4);
+ AbstractProvisioningTest.assertContains("1.2", queryResult, 6);
+ AbstractProvisioningTest.assertContains("1.4", queryResult, 8);
+ AbstractProvisioningTest.assertContains("1.2", queryResult, 10);
+ AbstractProvisioningTest.assertContains("1.6", queryResult, 12);
+ AbstractProvisioningTest.assertContains("1.6", queryResult, 13);
assertTrue("1.0", monitor.isDone());
assertTrue("1.1", monitor.isWorkDone());
}
public void testDoubleCompositeQuery() {
- CompoundQueryable cQueryable1 = new CompoundQueryable(new IQueryable[] {queryable3, queryable2});
- CompoundQueryable cQueryable = new CompoundQueryable(new IQueryable[] {cQueryable1, queryable1});
+ CompoundQueryable cQueryable1 = new CompoundQueryable(queryable3, queryable2);
+ CompoundQueryable cQueryable = new CompoundQueryable(cQueryable1, queryable1);
CompoundQueryTestProgressMonitor monitor = new CompoundQueryTestProgressMonitor();
- Collector collector = cQueryable.query(new CompositeQuery(new Query[] {contextQuery, greatestNumberQuery}), new Collector(), monitor);
- assertEquals("1.0", 1, collector.size());
- Collection collection = collector.toCollection();
- assertTrue("1.2", collection.contains(12));
+ IQueryResult queryResult = cQueryable.query(new PipedQuery(contextQuery, greatestNumberQuery), monitor);
+ assertEquals("1.0", 1, AbstractProvisioningTest.queryResultSize(queryResult));
+ AbstractProvisioningTest.assertContains("1.2", queryResult, 12);
assertTrue("1.0", monitor.isDone());
assertTrue("1.1", monitor.isWorkDone());
}

Back to the top