public void assertContains(Description description, List<?> actual, Object[] values) {
    checkIsNotNullAndNotEmpty(values);
    assertNotNull(description, actual);
    Set<Object> copyOfActual = new LinkedHashSet<Object>(actual);
    Set<Object> notFound = containsOnly(copyOfActual, values);
    if (!notFound.isEmpty()) {
      throw failures.failure(description, shouldContain(actual, values, notFound));
    }
  }
public void assertContains(Description description, List<?> actual, Object[] values) {
    checkIsNotNullAndNotEmpty(values);
    assertNotNull(description, actual);
    Set<Object> copyOfActual = new LinkedHashSet<Object>(actual);
    Set<Object> notFound = containsOnly(copyOfActual, values);
    if (!notFound.isEmpty()) {
      throw failures.failure(description, shouldContain(actual, values, notFound));
    }
  }
public void assertContains ( Description description , List < ? > actual , Object [ ] values ) { checkIsNotNullAndNotEmpty ( values ) ; assertNotNull ( description , actual ) ; Set < Object > copyOfActual = new LinkedHashSet < Object > ( actual ) ; Set < Object > notFound = containsOnly ( copyOfActual , values ) ; if ( ! notFound . isEmpty ( ) ) { throw failures . failure ( description , shouldContain ( actual , values , notFound ) ) ; } }
Asserts that the given {@code List} contains all of the given values, 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 all the given values.
Asserts that the given { @code List } contains all of the given values in any order . Duplicates are allowed .