private void assertThatAuthIndexHasSize(int expectedSize) { IndexType authIndexType = underTest.getIndexTypes().iterator().next(); assertThat(es.countDocuments(authIndexType)).isEqualTo(expectedSize); }
public long countDocuments(String index, String type) { return countDocuments(new IndexType(index, type)); }
@Test public void index_nothing() { underTest.index(dbSession, emptyList()); assertThat(es.countDocuments(RuleIndexDefinition.INDEX_TYPE_RULE)).isEqualTo(0L); }
@Test public void index_nothing() { underTest.indexOnStartup(emptySet()); assertThat(es.countDocuments(ViewIndexDefinition.INDEX_TYPE_VIEW)).isEqualTo(0L); }
@Test public void index_nothing_on_startup() { underTest.indexOnStartup(new HashSet<>()); assertThat(es.countDocuments(UserIndexDefinition.INDEX_TYPE_USER)).isEqualTo(0L); }
@Test public void commitDeletionOfProfiles_does_nothing_if_profiles_are_not_indexed() { db.qualityProfiles().activateRule(profile1, rule1); indexAll(); assertThat(es.countDocuments(INDEX_TYPE_ACTIVE_RULE)).isEqualTo(1); underTest.commitDeletionOfProfiles(db.getSession(), singletonList(profile2)); assertThat(es.countDocuments(INDEX_TYPE_ACTIVE_RULE)).isEqualTo(1); }
@Test public void indexOnStartup_does_nothing_if_no_data() { underTest.indexOnStartup(emptySet()); assertThat(es.countDocuments(INDEX_TYPE_ACTIVE_RULE)).isZero(); }
@Test public void index_nothing() { underTest.indexOnStartup(emptySet()); assertThat(es.countDocuments(INDEX_TYPE_PROJECT_MEASURES)).isZero(); }
@Test public void clear_indexes() { es.putDocuments(IssueIndexDefinition.INDEX_TYPE_ISSUE, IssueDocTesting.newDoc()); es.putDocuments(RuleIndexDefinition.INDEX_TYPE_RULE, newRuleDoc()); es.putDocuments(ComponentIndexDefinition.INDEX_TYPE_COMPONENT, newComponentDoc()); underTest.clearIndexes(); assertThat(es.countDocuments(IssueIndexDefinition.INDEX_TYPE_ISSUE)).isEqualTo(0); assertThat(es.countDocuments(ComponentIndexDefinition.INDEX_TYPE_COMPONENT)).isEqualTo(0); }
@Test public void do_nothing_if_no_projects_to_index() { // this project should not be indexed db.components().insertPrivateProject(); underTest.index(db.getSession(), emptyList()); assertThat(es.countDocuments(INDEX_TYPE_PROJECT_MEASURES)).isEqualTo(0); }
@Test public void index_long_rule_description() { String description = IntStream.range(0, 100000).map(i -> i % 100).mapToObj(Integer::toString).collect(Collectors.joining(" ")); RuleDefinitionDto rule = dbTester.rules().insert(r -> r.setDescription(description)); underTest.commitAndIndex(dbTester.getSession(), rule.getId()); assertThat(es.countDocuments(RuleIndexDefinition.INDEX_TYPE_RULE)).isEqualTo(1); } }
@Test public void commitAndIndex_empty_list() { ActiveRuleDto ar = db.qualityProfiles().activateRule(profile1, rule1); underTest.commitAndIndex(db.getSession(), Collections.emptyList()); assertThat(es.countDocuments(INDEX_TYPE_ACTIVE_RULE)).isEqualTo(0); assertThatEsQueueTableIsEmpty(); }
@Test public void index() { dbClient.ruleDao().insert(dbSession, rule); underTest.commitAndIndex(dbSession, rule.getId()); assertThat(es.countDocuments(RuleIndexDefinition.INDEX_TYPE_RULE)).isEqualTo(1); }
@Test public void commitAndIndex_deletes_the_documents_that_dont_exist_in_database() { ActiveRuleDto ar = db.qualityProfiles().activateRule(profile1, rule1); indexAll(); assertThat(es.countDocuments(INDEX_TYPE_ACTIVE_RULE)).isEqualTo(1); db.getDbClient().activeRuleDao().delete(db.getSession(), ar.getKey()); commitAndIndex(rule1, ar); assertThat(es.countDocuments(INDEX_TYPE_ACTIVE_RULE)).isEqualTo(0); assertThatEsQueueTableIsEmpty(); }
@Test public void delete_doc_from_index_when_project_is_deleted() { ComponentDto project = db.components().insertPrivateProject(); indexProject(project, PROJECT_CREATION); assertThatIndexContainsOnly(project); db.getDbClient().componentDao().delete(db.getSession(), project.getId()); IndexingResult result = indexProject(project, PROJECT_DELETION); assertThat(es.countDocuments(INDEX_TYPE_PROJECT_MEASURES)).isEqualTo(0); assertThat(result.getTotal()).isEqualTo(1L); assertThat(result.getSuccess()).isEqualTo(1L); }
/** * This is a technical constraint, to ensure, that the indexers can be called in any order, during startup. */ @Test public void parent_child_relationship_does_not_require_ordering_of_index_requests() { IssueDoc issueDoc = new IssueDoc(); issueDoc.setKey("key"); issueDoc.setProjectUuid("parent-does-not-exist"); new IssueIndexer(es.client(), db.getDbClient(), new IssueIteratorFactory(db.getDbClient())) .index(asList(issueDoc).iterator()); assertThat(es.countDocuments(INDEX_TYPE_ISSUE)).isEqualTo(1L); }
@Test public void non_main_branches_are_not_indexed_during_analysis() { ComponentDto project = db.components().insertPrivateProject(); ComponentDto branch = db.components().insertProjectBranch(project, b -> b.setKey("feature/foo")); underTest.indexOnAnalysis(branch.uuid()); assertThat(es.countDocuments(INDEX_TYPE_PROJECT_MEASURES)).isEqualTo(0); }
@Test public void index_fails_and_deletes_doc_if_docIdType_is_unsupported() { EsQueueDto item = EsQueueDto.create(INDEX_TYPE_ACTIVE_RULE.format(), "the_id", "unsupported", "the_routing"); db.getDbClient().esQueueDao().insert(db.getSession(), item); underTest.index(db.getSession(), asList(item)); assertThatEsQueueTableIsEmpty(); assertThat(es.countDocuments(INDEX_TYPE_ACTIVE_RULE)).isEqualTo(0); }
@Test public void removed_rule_is_not_removed_from_index() { // Create and Index rule dbClient.ruleDao().insert(dbSession, rule.setStatus(RuleStatus.READY)); dbSession.commit(); underTest.commitAndIndex(dbTester.getSession(), rule.getId()); assertThat(es.countDocuments(RuleIndexDefinition.INDEX_TYPE_RULE)).isEqualTo(1); // Remove rule dbTester.getDbClient().ruleDao().update(dbTester.getSession(), rule.setStatus(RuleStatus.READY).setUpdatedAt(2000000000000L)); underTest.commitAndIndex(dbTester.getSession(), rule.getId()); assertThat(es.countDocuments(RuleIndexDefinition.INDEX_TYPE_RULE)).isEqualTo(1); }
@Test public void do_not_persist_existing_external_rules() { RuleKey ruleKey = RuleKey.of("eslint", "no-cond-assign"); db.rules().insert(ruleKey, r -> r.setIsExternal(true)); ruleRepository.addOrUpdateAddHocRuleIfNeeded(ruleKey, () -> new NewAdHocRule(ScannerReport.ExternalIssue.newBuilder().setEngineId("eslint").setRuleId("no-cond-assign").build())); underTest.execute(new TestComputationStepContext()); RuleDao ruleDao = dbClient.ruleDao(); assertThat(ruleDao.selectAllDefinitions(dbClient.openSession(false))).hasSize(1); assertThat(es.countDocuments(RuleIndexDefinition.INDEX_TYPE_RULE)).isZero(); }