Skip to content

Commit 3e6454e

Browse files
committed
GH-5149 Use ParameterizedTest and Objects.requireNonNull
1 parent 41d4869 commit 3e6454e

5 files changed

Lines changed: 69 additions & 90 deletions

File tree

core/sail/elasticsearch/src/main/java/org/eclipse/rdf4j/sail/elasticsearch/ElasticsearchIndex.java

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.util.HashMap;
1919
import java.util.HashSet;
2020
import java.util.Map;
21+
import java.util.Objects;
2122
import java.util.Properties;
2223
import java.util.Set;
2324

@@ -577,19 +578,11 @@ protected Iterable<? extends DocumentScore> query(Resource subject, QuerySpec sp
577578
}
578579

579580
SearchHits hits;
580-
Integer numDocs = spec.getNumDocs();
581+
int numDocs = Objects.requireNonNullElse(spec.getNumDocs(), -1);
581582
if (subject != null) {
582-
if (numDocs != null) {
583-
hits = search(subject, request, qb, numDocs);
584-
} else {
585-
hits = search(subject, request, qb);
586-
}
583+
hits = search(subject, request, qb, numDocs);
587584
} else {
588-
if (numDocs != null) {
589-
hits = search(request, qb, numDocs);
590-
} else {
591-
hits = search(request, qb);
592-
}
585+
hits = search(request, qb, numDocs);
593586
}
594587
return Iterables.transform(hits, new Function<>() {
595588

core/sail/lucene/src/main/java/org/eclipse/rdf4j/sail/lucene/impl/LuceneIndex.java

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import java.util.Iterator;
2626
import java.util.List;
2727
import java.util.Map;
28+
import java.util.Objects;
2829
import java.util.Properties;
2930
import java.util.Set;
3031
import java.util.concurrent.atomic.AtomicBoolean;
@@ -751,21 +752,13 @@ protected Iterable<? extends DocumentScore> query(Resource subject, QuerySpec sp
751752
highlighter = null;
752753
}
753754

754-
Integer numDocs = spec.getNumDocs();
755+
int numDocs = Objects.requireNonNullElse(spec.getNumDocs(), -1);
755756

756757
TopDocs docs;
757758
if (subject != null) {
758-
if (numDocs != null) {
759-
docs = search(subject, q, numDocs);
760-
} else {
761-
docs = search(subject, q);
762-
}
759+
docs = search(subject, q, numDocs);
763760
} else {
764-
if (numDocs != null) {
765-
docs = search(q, numDocs);
766-
} else {
767-
docs = search(q);
768-
}
761+
docs = search(q, numDocs);
769762
}
770763
return Iterables.transform(Arrays.asList(docs.scoreDocs),
771764
(ScoreDoc doc) -> new LuceneDocumentScore(doc, highlighter, LuceneIndex.this));

core/sail/solr/src/main/java/org/eclipse/rdf4j/sail/solr/SolrIndex.java

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import java.util.HashSet;
1717
import java.util.List;
1818
import java.util.Map;
19+
import java.util.Objects;
1920
import java.util.Properties;
2021
import java.util.Set;
2122

@@ -317,20 +318,12 @@ protected Iterable<? extends DocumentScore> query(Resource subject, QuerySpec sp
317318
q.addField(SearchFields.URI_FIELD_NAME);
318319
}
319320
q.addField("score");
320-
Integer numDocs = spec.getNumDocs();
321+
int numDocs = Objects.requireNonNullElse(spec.getNumDocs(), -1);
321322
try {
322323
if (subject != null) {
323-
if (numDocs != null) {
324-
response = search(subject, q, numDocs);
325-
} else {
326-
response = search(subject, q);
327-
}
324+
response = search(subject, q, numDocs);
328325
} else {
329-
if (numDocs != null) {
330-
response = search(q, numDocs);
331-
} else {
332-
response = search(q);
333-
}
326+
response = search(q, numDocs);
334327
}
335328
} catch (SolrServerException e) {
336329
throw new IOException(e);

testsuites/lucene/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,10 @@
3535
<artifactId>junit-vintage-engine</artifactId>
3636
<scope>compile</scope>
3737
</dependency>
38+
<dependency>
39+
<groupId>org.junit.jupiter</groupId>
40+
<artifactId>junit-jupiter-params</artifactId>
41+
<scope>compile</scope>
42+
</dependency>
3843
</dependencies>
3944
</project>

testsuites/lucene/src/main/java/org/eclipse/testsuite/rdf4j/sail/lucene/AbstractLuceneSailTest.java

Lines changed: 52 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import static org.junit.jupiter.api.Assertions.assertTrue;
2323
import static org.junit.jupiter.api.Assertions.fail;
2424

25-
import java.io.IOException;
2625
import java.util.ArrayList;
2726
import java.util.Collection;
2827
import java.util.HashMap;
@@ -64,6 +63,8 @@
6463
import org.junit.jupiter.api.BeforeEach;
6564
import org.junit.jupiter.api.Test;
6665
import org.junit.jupiter.api.Timeout;
66+
import org.junit.jupiter.params.ParameterizedTest;
67+
import org.junit.jupiter.params.provider.ValueSource;
6768

6869
@Timeout(value = 10, unit = TimeUnit.MINUTES)
6970
public abstract class AbstractLuceneSailTest {
@@ -111,7 +112,7 @@ public abstract class AbstractLuceneSailTest {
111112

112113
protected abstract void configure(LuceneSail sail);
113114

114-
private void createTestSail(Consumer<LuceneSail> config) throws IOException {
115+
private void createTestSail(Consumer<LuceneSail> config) {
115116
if (repository != null) {
116117
repository.shutDown();
117118
repository = null;
@@ -1096,65 +1097,59 @@ public void run() {
10961097
assertEquals(0, exceptions.size(), "Exceptions occurred during testMultithreadedAdd, see stacktraces above");
10971098
}
10981099

1099-
@Test
1100-
public void testMaxNumDocsResult() throws IOException {
1101-
for (int i = 1; i <= 3; i++) {
1102-
final int j = i;
1103-
createTestSail(lc -> lc.setParameter(LuceneSail.MAX_QUERY_DOCUMENTS_KEY, String.valueOf(j)));
1104-
Repositories.consumeNoTransaction(repository, conn -> {
1105-
try (TupleQueryResult res = conn.prepareTupleQuery(
1106-
"SELECT ?Resource {\n"
1107-
+ " ?Resource <" + MATCHES + "> [\n "
1108-
+ " <" + QUERY + "> \"one\";\n "
1109-
+ " <" + NUM_DOCS + "> 3;\n "
1110-
+ " ]. } "
1111-
).evaluate()) {
1112-
for (int k = 0; k < j; k++) {
1113-
assertTrue(res.hasNext(), "missing result #" + k);
1114-
res.next();
1115-
}
1116-
if (res.hasNext()) {
1117-
StringBuilder b = new StringBuilder();
1118-
int r = 0;
1119-
do {
1120-
b.append("\n#").append(r++).append(res.next());
1121-
} while (res.hasNext());
1122-
fail("can't have more than " + j + " result(s)" + b);
1123-
}
1100+
@ParameterizedTest
1101+
@ValueSource(ints = { 1, 2, 3 })
1102+
public void testMaxNumDocsResult(int numDoc) {
1103+
createTestSail(lc -> lc.setParameter(LuceneSail.MAX_QUERY_DOCUMENTS_KEY, String.valueOf(numDoc)));
1104+
Repositories.consumeNoTransaction(repository, conn -> {
1105+
try (TupleQueryResult res = conn.prepareTupleQuery(
1106+
"SELECT ?Resource {\n"
1107+
+ " ?Resource <" + MATCHES + "> [\n "
1108+
+ " <" + QUERY + "> \"one\";\n "
1109+
+ " <" + NUM_DOCS + "> 3;\n "
1110+
+ " ]. } "
1111+
).evaluate()) {
1112+
for (int k = 0; k < numDoc; k++) {
1113+
assertTrue(res.hasNext(), "missing result #" + k);
1114+
res.next();
11241115
}
1125-
;
1126-
});
1127-
}
1116+
if (res.hasNext()) {
1117+
StringBuilder b = new StringBuilder();
1118+
int r = 0;
1119+
do {
1120+
b.append("\n#").append(r++).append(res.next());
1121+
} while (res.hasNext());
1122+
fail("can't have more than " + numDoc + " result(s)" + b);
1123+
}
1124+
}
1125+
});
11281126
}
11291127

1130-
@Test
1131-
public void testNumDocsResult() {
1132-
for (int i = 1; i <= 3; i++) {
1133-
final int j = i;
1134-
Repositories.consumeNoTransaction(repository, conn -> {
1135-
try (TupleQueryResult res = conn.prepareTupleQuery(
1136-
"SELECT ?Resource {\n"
1137-
+ " ?Resource <" + MATCHES + "> [\n "
1138-
+ " <" + QUERY + "> \"one\";\n "
1139-
+ " <" + NUM_DOCS + "> " + j + ";\n "
1140-
+ " ]. } "
1141-
).evaluate()) {
1142-
for (int k = 0; k < j; k++) {
1143-
assertTrue(res.hasNext(), "missing result #" + k);
1144-
res.next();
1145-
}
1146-
if (res.hasNext()) {
1147-
StringBuilder b = new StringBuilder();
1148-
int r = 0;
1149-
do {
1150-
b.append("\n#").append(r++).append(res.next());
1151-
} while (res.hasNext());
1152-
fail("can't have more than " + j + " result(s)" + b);
1153-
}
1128+
@ParameterizedTest
1129+
@ValueSource(ints = { 1, 2, 3 })
1130+
public void testNumDocsResult(int numDoc) {
1131+
Repositories.consumeNoTransaction(repository, conn -> {
1132+
try (TupleQueryResult res = conn.prepareTupleQuery(
1133+
"SELECT ?Resource {\n"
1134+
+ " ?Resource <" + MATCHES + "> [\n "
1135+
+ " <" + QUERY + "> \"one\";\n "
1136+
+ " <" + NUM_DOCS + "> " + numDoc + ";\n "
1137+
+ " ]. } "
1138+
).evaluate()) {
1139+
for (int k = 0; k < numDoc; k++) {
1140+
assertTrue(res.hasNext(), "missing result #" + k);
1141+
res.next();
11541142
}
1155-
;
1156-
});
1157-
}
1143+
if (res.hasNext()) {
1144+
StringBuilder b = new StringBuilder();
1145+
int r = 0;
1146+
do {
1147+
b.append("\n#").append(r++).append(res.next());
1148+
} while (res.hasNext());
1149+
fail("can't have more than " + numDoc + " result(s)" + b);
1150+
}
1151+
}
1152+
});
11581153
}
11591154

11601155
protected void assertQueryResult(String literal, IRI predicate, Resource resultUri) {

0 commit comments

Comments
 (0)