code: public void assertContainsOnly(Description description, List<?> actual, Object[] values) {
      checkIsNotNullAndNotEmpty(values);
      assertNotNull(description, actual);
      Set<Object> notExpected = new LinkedHashSet<Object>(actual);
      Set<Object> notFound = containsOnly(notExpected, values);
      if (notExpected.isEmpty() && notFound.isEmpty()) {
        return;
      }
      throw failures.failure(description, shouldContainOnly(actual, values, notFound, notExpected));
    }
docs: Asserts that the given {@code List} contains only the given values and nothing else, in any order. Duplicates are
  allowed.
  
  @param description contains information about the assertion.
  @param actual      the given {@code List}.
  @param values      the values that are expected to be in the given {@code List}.
  @throws NullPointerException     if the array of values is {@code null}.
  @throws IllegalArgumentException if the array of values is empty.
  @throws AssertionError           if the given {@code List} is {@code null}.
  @throws AssertionError           if the given {@code List} does not contain the given values or if the given {@code List}
  contains values that are not in the given array.