|
22 | 22 | import static org.junit.jupiter.api.Assertions.assertTrue; |
23 | 23 | import static org.junit.jupiter.api.Assertions.fail; |
24 | 24 |
|
25 | | -import java.io.IOException; |
26 | 25 | import java.util.ArrayList; |
27 | 26 | import java.util.Collection; |
28 | 27 | import java.util.HashMap; |
|
64 | 63 | import org.junit.jupiter.api.BeforeEach; |
65 | 64 | import org.junit.jupiter.api.Test; |
66 | 65 | import org.junit.jupiter.api.Timeout; |
| 66 | +import org.junit.jupiter.params.ParameterizedTest; |
| 67 | +import org.junit.jupiter.params.provider.ValueSource; |
67 | 68 |
|
68 | 69 | @Timeout(value = 10, unit = TimeUnit.MINUTES) |
69 | 70 | public abstract class AbstractLuceneSailTest { |
@@ -111,7 +112,7 @@ public abstract class AbstractLuceneSailTest { |
111 | 112 |
|
112 | 113 | protected abstract void configure(LuceneSail sail); |
113 | 114 |
|
114 | | - private void createTestSail(Consumer<LuceneSail> config) throws IOException { |
| 115 | + private void createTestSail(Consumer<LuceneSail> config) { |
115 | 116 | if (repository != null) { |
116 | 117 | repository.shutDown(); |
117 | 118 | repository = null; |
@@ -1096,65 +1097,59 @@ public void run() { |
1096 | 1097 | assertEquals(0, exceptions.size(), "Exceptions occurred during testMultithreadedAdd, see stacktraces above"); |
1097 | 1098 | } |
1098 | 1099 |
|
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(); |
1124 | 1115 | } |
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 | + }); |
1128 | 1126 | } |
1129 | 1127 |
|
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(); |
1154 | 1142 | } |
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 | + }); |
1158 | 1153 | } |
1159 | 1154 |
|
1160 | 1155 | protected void assertQueryResult(String literal, IRI predicate, Resource resultUri) { |
|
0 commit comments