jdyer1 commented on code in PR #2374:
URL: https://github.com/apache/solr/pull/2374#discussion_r1548587323
##########
solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientTestBase.java:
##########
@@ -532,4 +538,67 @@ protected void
testUseOptionalCredentialsWithNull(HttpSolrClientBase client) {
assertNull(
"No authorization headers expected. Headers: " + DebugServlet.headers,
authorizationHeader);
}
+
+ protected void testQueryAsync(SolrRequest.METHOD method) throws Exception {
+ ResponseParser rp = new XMLResponseParser();
+ DebugServlet.clear();
+ DebugServlet.addResponseHeader("Content-Type", "application/xml;
charset=UTF-8");
+ String url = getBaseUrl() + DEBUG_SERVLET_PATH;
+ HttpSolrClientBuilderBase<?, ?> b =
+ builder(url, DEFAULT_CONNECTION_TIMEOUT,
DEFAULT_CONNECTION_TIMEOUT).withResponseParser(rp);
+ int limit = 10;
+ CountDownLatch cdl = new CountDownLatch(limit);
+ DebugAsyncListener[] listeners = new DebugAsyncListener[limit];
+ Cancellable[] cancellables = new Cancellable[limit];
+ try (HttpSolrClientBase client = b.build()) {
+ for (int i = 0; i < limit; i++) {
+ DebugServlet.responseBodyByQueryFragment.put(
+ ("id=KEY-" + i),
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<response><result
name=\"response\" numFound=\"2\" start=\"1\" numFoundExact=\"true\"><doc><str
name=\"id\">KEY-"
+ + i
+ + "</str></doc></result></response>");
+ QueryRequest query =
+ new QueryRequest(new MapSolrParams(Collections.singletonMap("id",
"KEY-" + i)));
+ query.setMethod(method);
+ listeners[i] = new DebugAsyncListener(cdl);
+ client.asyncRequest(query, null, listeners[i]);
+ }
+ cdl.await(1, TimeUnit.MINUTES);
+ }
+
+ for (int i = 0; i < limit; i++) {
+ NamedList<Object> result = listeners[i].onSuccessResult;
+ SolrDocumentList sdl = (SolrDocumentList) result.get("response");
+ assertEquals(2, sdl.getNumFound());
+ assertEquals(1, sdl.getStart());
+ assertTrue(sdl.getNumFoundExact());
+ assertEquals(1, sdl.size());
+ assertEquals(1, sdl.iterator().next().size());
+ assertEquals("KEY-" + i, sdl.iterator().next().get("id"));
+
+ assertNull(listeners[i].onFailureResult);
+ assertTrue(listeners[i].onStartCalled);
+ }
+ }
+
+ protected DebugAsyncListener testAsyncExceptionBase() throws Exception {
Review Comment:
Let me clarify why I have been overriding these shared tests. You are right
it does work generally on IntelliJ, however, if you want to run only 1 test
method and not the whole class, this doesn't seem to work. Even if you run all
the tests, then right click to re-run just the individual test method, I am
getting an error. This makes it very difficult to debug, which is why I have
been using all those 1-line test override methods.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]