public SearchFilterVisibilityCheckStatus checkSearchFilterVisibility(final Predicate<String> readPermissionPredicate,
                                                                         final Collection<String> referencedSearchFiltersIds) {
        final List<String> hiddenSearchFiltersIDs = referencedSearchFiltersIds
                .stream()
                .filter(id -> !readPermissionPredicate.test(id))
                .collect(Collectors.toList());

        return new SearchFilterVisibilityCheckStatus(hiddenSearchFiltersIDs);
    }
@Test
    void testSingleInvisibleFilterMakesCheckFail() {
        final Predicate<String> readPermissionPredicate = filterId -> !"hidden".equals(filterId);
        final SearchFilterVisibilityCheckStatus result = toTest.checkSearchFilterVisibility(readPermissionPredicate, ImmutableSet.of("id1", "id2", "id3", "hidden"));
        assertFalse(result.allSearchFiltersVisible());
        assertEquals(Collections.singletonList("hidden"), result.getHiddenSearchFiltersIDs());
    }