private <T> void assertQueryable( QueryGranularity granularity, String dataSource, Interval interval, List<Pair<String, Interval>> expected) { Iterator<Pair<String, Interval>> expectedIter = expected.iterator(); final List<Interval> intervals = Arrays.asList(interval); final SearchQuery query = Druids.newSearchQueryBuilder() .dataSource(dataSource) .intervals(intervals) .granularity(granularity) .limit(10000) .query("wow") .build(); QueryRunner<Result<SearchResultValue>> runner = serverManager.getQueryRunnerForIntervals(query, intervals); final Sequence<Result<SearchResultValue>> seq = runner.run(query); Sequences.toList(seq, Lists.<Result<SearchResultValue>>newArrayList()); Iterator<SegmentForTesting> adaptersIter = factory.getAdapters().iterator(); while (expectedIter.hasNext() && adaptersIter.hasNext()) { Pair<String, Interval> expectedVals = expectedIter.next(); SegmentForTesting value = adaptersIter.next(); Assert.assertEquals(expectedVals.lhs, value.getVersion()); Assert.assertEquals(expectedVals.rhs, value.getInterval()); } Assert.assertFalse(expectedIter.hasNext()); Assert.assertFalse(adaptersIter.hasNext()); factory.clearAdapters(); }
private void waitForTestVerificationAndCleanup(Future future) { try { queryNotifyLatch.await(25, TimeUnit.MILLISECONDS); queryWaitYieldLatch.countDown(); queryWaitLatch.countDown(); future.get(); factory.clearAdapters(); } catch (Exception e) { throw Throwables.propagate(e); } }