code: public void assertContainsSequence(Description description, Collection<?> actual, Object[] sequence) {
      checkIsNotNullAndNotEmpty(sequence);
      assertNotNull(description, actual);
      boolean firstAlreadyFound = false;
      int i = 0;
      int sequenceSize = sequence.length;
      for (Object o : actual) {
        if (i >= sequenceSize) {
          break;
        }
        if (!firstAlreadyFound) {
          if (!areEqual(o, sequence[i])) {
            continue;
          }
          firstAlreadyFound = true;
          i++;
          continue;
        }
        if (areEqual(o, sequence[i++])) {
          continue;
        }
        throw actualDoesNotContainSequence(description, actual, sequence);
      }
      if (!firstAlreadyFound || i < sequenceSize) {
        throw actualDoesNotContainSequence(description, actual, sequence);
      }
    }
docs: Verifies that the given <code>{@link Collection}</code> contains the given sequence of objects, without any other
  objects between them.
  
  @param description contains information about the assertion.
  @param actual      the given {@code Collection}.
  @param sequence    the sequence of objects to look for.
  @throws AssertionError           if the given {@code Collection} is {@code null}.
  @throws NullPointerException     if the given sequence is {@code null}.
  @throws IllegalArgumentException if the given sequence is empty.
  @throws AssertionError           if the given {@code Collection} does not contain the given sequence of objects.