/** * componentUuid is not null but is set to empty * --> no results */ @Test public void short_circuited_if_empty_component_uuid_filter() { underTest.setMainComponentUuids(Collections.emptyList()); assertThat(underTest.getMainComponentUuids()).isEmpty(); assertThat(underTest.isShortCircuitedByMainComponentUuids()).isTrue(); }
/** * too many componentUuids for SQL request. Waiting for ES to improve this use-case * --> no results */ @Test public void short_circuited_if_too_many_component_uuid_filters() { List<String> uuids = new ArrayList<>(); for (int i = 0; i < CeTaskQuery.MAX_COMPONENT_UUIDS + 2; i++) { uuids.add(String.valueOf(i)); } underTest.setMainComponentUuids(uuids); assertThat(underTest.getMainComponentUuids()).hasSize(CeTaskQuery.MAX_COMPONENT_UUIDS + 2); assertThat(underTest.isShortCircuitedByMainComponentUuids()).isTrue(); }
private CeTaskQuery buildQuery(DbSession dbSession, Request request, @Nullable ComponentDto component) { CeTaskQuery query = new CeTaskQuery(); query.setType(request.getType()); query.setOnlyCurrents(parseBoolean(request.getOnlyCurrents())); Date minSubmittedAt = parseStartingDateOrDateTime(request.getMinSubmittedAt()); query.setMinSubmittedAt(minSubmittedAt == null ? null : minSubmittedAt.getTime()); Date maxExecutedAt = parseEndingDateOrDateTime(request.getMaxExecutedAt()); query.setMaxExecutedAt(maxExecutedAt == null ? null : maxExecutedAt.getTime()); List<String> statuses = request.getStatus(); if (statuses != null && !statuses.isEmpty()) { query.setStatuses(request.getStatus()); } String componentQuery = request.getQ(); if (component != null) { query.setMainComponentUuid(component.uuid()); } else if (componentQuery != null) { query.setMainComponentUuids(loadComponents(dbSession, componentQuery).stream() .map(ComponentDto::uuid) .collect(toList())); } return query; }
@Test public void filter_on_multiple_component_uuids() { underTest.setMainComponentUuids(asList("UUID1", "UUID2")); assertThat(underTest.getMainComponentUuids()).containsOnly("UUID1", "UUID2"); assertThat(underTest.isShortCircuitedByMainComponentUuids()).isFalse(); }
@Test public void selectByQuery_no_results_if_shortcircuited_by_component_uuids() { insert("TASK_1", REPORT, MAINCOMPONENT_1, SUCCESS); CeTaskQuery query = new CeTaskQuery(); query.setMainComponentUuids(Collections.emptyList()); assertThat(underTest.selectByQuery(db.getSession(), query, forPage(1).andSize(1))).isEmpty(); }