@Test public void paging() { dao.insert(dbSession, RuleTesting.newDto(RuleKey.of("java", "S001"))); dao.insert(dbSession, RuleTesting.newDto(RuleKey.of("java", "S002"))); dao.insert(dbSession, RuleTesting.newDto(RuleKey.of("java", "S003"))); dbSession.commit(); // from 0 to 1 included QueryOptions options = new QueryOptions(); options.setOffset(0).setLimit(2); Result results = index.search(new RuleQuery(), options); assertThat(results.getTotal()).isEqualTo(3); assertThat(results.getHits()).hasSize(2); // from 0 to 9 included options.setOffset(0).setLimit(10); results = index.search(new RuleQuery(), options); assertThat(results.getTotal()).isEqualTo(3); assertThat(results.getHits()).hasSize(3); // from 2 to 11 included options.setOffset(2).setLimit(10); results = index.search(new RuleQuery(), options); assertThat(results.getTotal()).isEqualTo(3); assertThat(results.getHits()).hasSize(1); }
@Test public void select_doc_fields_to_return() { dao.insert(dbSession, RuleTesting.newDto(RuleKey.of("javascript", "S001"))); dbSession.commit(); QueryOptions options = new QueryOptions(); options.addFieldsToReturn( RuleNormalizer.RuleField.LANGUAGE.field(), RuleNormalizer.RuleField.STATUS.field()); Result<Rule> results = index.search(new RuleQuery(), options); assertThat(results.getHits()).hasSize(1); Rule hit = Iterables.getFirst(results.getHits(), null); assertThat(hit.language()).isEqualTo("js"); assertThat(hit.status()).isEqualTo(RuleStatus.READY); try { hit.htmlDescription(); fail(); } catch (IllegalStateException e) { assertThat(e).hasMessage("Field htmlDesc not specified in query options"); } }