code: public static <T> Matcher<Iterable<T>> hasItems(Iterable<T> items) {
          List<Matcher<? super Iterable<T>>> all = new LinkedList<Matcher<? super Iterable<T>>>();
          for (T element : items) {
              all.add(hasItem(element));
          }
  
          return allOf(all);
      }
docs: Equivalent of {@code allOf(hasItem(T), ...)} matcher combination
  @param items the items to match against
  @param <T> the matcher type
  @return the matcher