Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (C) 2007 The Guava Authors
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   * http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package com.google.common.collect.testing.testers;
 
 import static com.google.common.collect.testing.features.CollectionFeature.KNOWN_ORDER;
 import static com.google.common.collect.testing.features.CollectionSize.ZERO;
 
 
 import java.util.List;

A generic JUnit test which tests toArray() operations on a collection. Can't be invoked directly; please see com.google.common.collect.testing.CollectionTestSuiteBuilder.

Author(s):
Kevin Bourrillion
Chris Povirk
 
 @GwtCompatible(emulated = true)
 public class CollectionToArrayTester<E> extends AbstractCollectionTester<E> {
   public void testToArray_noArgs() {
     Object[] array = .toArray();
   }

  
java.util.Collection.toArray(java.lang.Object[]) says: "Note that toArray(new Object[0]) is identical in function to toArray()."

For maximum effect, the collection under test should be created from an element array of a type other than Object[].

 
   public void testToArray_isPlainObjectArray() {
     Object[] array = .toArray();
     assertEquals(Object[].classarray.getClass());
   }
 
   public void testToArray_emptyArray() {
     E[] empty = getSubjectGenerator().createArray(0);
     E[] array = .toArray(empty);
     assertEquals("toArray(emptyT[]) should return an array of type T",
         empty.getClass(), array.getClass());
     assertEquals("toArray(emptyT[]).length:"getNumElements(), array.length);
   }
 
   public void testToArray_emptyArray_ordered() {
     E[] empty = getSubjectGenerator().createArray(0);
     E[] array = .toArray(empty);
     assertEquals("toArray(emptyT[]) should return an array of type T",
         empty.getClass(), array.getClass());
     assertEquals("toArray(emptyT[]).length:"getNumElements(), array.length);
   }
 
   public void testToArray_emptyArrayOfObject() {
     Object[] in = new Object[0];
     Object[] array = .toArray(in);
     assertEquals("toArray(emptyObject[]) should return an array of type Object",
         Object[].classarray.getClass());
     assertEquals("toArray(emptyObject[]).length",
         getNumElements(), array.length);
   }
 
   public void testToArray_rightSizedArray() {
     E[] array = getSubjectGenerator().createArray(getNumElements());
     assertSame("toArray(sameSizeE[]) should return the given array",
         array.toArray(array));
   }
 
    assertSame("toArray(sameSizeE[]) should return the given array",
        array.toArray(array));
  }
    Object[] array = new Object[getNumElements()];
    assertSame("toArray(sameSizeObject[]) should return the given array",
        array.toArray(array));
  }
    Object[] array = new Object[getNumElements()];
    assertSame("toArray(sameSizeObject[]) should return the given array",
        array.toArray(array));
  }
  public void testToArray_oversizedArray() {
    E[] array = getSubjectGenerator().createArray(getNumElements() + 2);
    array[getNumElements()] = .;
    array[getNumElements() + 1] = .;
    assertSame("toArray(overSizedE[]) should return the given array",
        array.toArray(array));
    List<E> subArray = Arrays.asList(array).subList(0, getNumElements());
    E[] expectedSubArray = createSamplesArray();
    for (int i = 0; i < getNumElements(); i++) {
      assertTrue(
          "toArray(overSizedE[]) should contain element " + expectedSubArray[i],
          subArray.contains(expectedSubArray[i]));
    }
    assertNull("The array element "
        + "immediately following the end of the collection should be nulled",
        array[getNumElements()]);
    // array[getNumElements() + 1] might or might not have been nulled
  }
    E[] array = getSubjectGenerator().createArray(getNumElements() + 2);
    array[getNumElements()] = .;
    array[getNumElements() + 1] = .;
    assertSame("toArray(overSizedE[]) should return the given array",
        array.toArray(array));
    List<E> expected = getOrderedElements();
    for (int i = 0; i < getNumElements(); i++) {
      assertEquals(expected.get(i), array[i]);
    }
    assertNull("The array element "
        + "immediately following the end of the collection should be nulled",
        array[getNumElements()]);
    // array[getNumElements() + 1] might or might not have been nulled
  }
  @CollectionSize.Require(absent = )
    try {
      WrongType[] array = new WrongType[0];
      .toArray(array);
      fail("toArray(notAssignableTo[]) should throw");
    } catch (ArrayStoreException expected) {
    }
  }
    WrongType[] array = new WrongType[0];
    assertSame(
        "toArray(sameSizeNotAssignableTo[]) should return the given array",
        array.toArray(array));
  }
  private void expectArrayContentsAnyOrder(Object[] expectedObject[] actual) {
        Arrays.asList(expected), Arrays.asList(actual));
  }
  private void expectArrayContentsInOrder(List<E> expectedObject[] actual) {
    assertEquals("toArray() ordered contents: ",
        expected, Arrays.asList(actual));
  }

  
Returns the java.lang.reflect.Method instance for testToArray_isPlainObjectArray() so that tests of java.util.Arrays.asList(java.lang.Object[]) can suppress it with FeatureSpecificTestSuiteBuilder.suppressing() until Sun bug 6260652 is fixed.
  @GwtIncompatible("reflection")
    return Helpers.getMethod(CollectionToArrayTester.class"testToArray_isPlainObjectArray");
  }
New to GrepCode? Check out our FAQ X