protected final <T> void convertAndProcessManyJobs(Function<List<T>, List<T>> itemSupplier, Function<T, Job> toJobFunction, Consumer<Integer> amountOfProcessedJobsConsumer) {
        int amountOfProcessedJobs = 0;
        List<T> items = getItemsToProcess(itemSupplier, null);
        while (!items.isEmpty()) {
            convertAndProcessJobs(items, toJobFunction);
            amountOfProcessedJobs += items.size();
            items = getItemsToProcess(itemSupplier, items);
        }
        amountOfProcessedJobsConsumer.accept(amountOfProcessedJobs);
    }
@Test
    void convertAndProcessManyJobsDoesNotSaveNullItems() {
        // GIVEN
        List<Object> items = asList(null, null);
        Function<Object, List<Job>> toJobFunction = x -> asList(null, null);

        // WHEN
        task.convertAndProcessManyJobs(items, toJobFunction, System.out::println);

        // THEN
        verify(storageProvider, never()).save(anyList());
    }