Home | History | Annotate | Download | only in support
      1 /*
      2  * Licensed to the Apache Software Foundation (ASF) under one or more
      3  * contributor license agreements.  See the NOTICE file distributed with
      4  * this work for additional information regarding copyright ownership.
      5  * The ASF licenses this file to You under the Apache License, Version 2.0
      6  * (the "License"); you may not use this file except in compliance with
      7  * the License.  You may obtain a copy of the License at
      8  *
      9  *     http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  * Unless required by applicable law or agreed to in writing, software
     12  * distributed under the License is distributed on an "AS IS" BASIS,
     13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  * See the License for the specific language governing permissions and
     15  * limitations under the License.
     16  */
     17 
     18 package tests.support;
     19 
     20 import java.util.Collection;
     21 import java.util.HashSet;
     22 import java.util.Iterator;
     23 import java.util.SortedSet;
     24 import java.util.TreeSet;
     25 import junit.framework.TestCase;
     26 
     27 public class Support_UnmodifiableCollectionTest extends TestCase {
     28 
     29     Collection<Integer> col;
     30 
     31     // must be a collection containing the Integers 0 to 99 (which will iterate
     32     // in order)
     33 
     34     public Support_UnmodifiableCollectionTest(String p1) {
     35         super(p1);
     36     }
     37 
     38     public Support_UnmodifiableCollectionTest(String p1, Collection<Integer> c) {
     39         super(p1);
     40         col = c;
     41     }
     42 
     43     @Override
     44     public void runTest() {
     45 
     46         // contains
     47         assertTrue("UnmodifiableCollectionTest - should contain 0", col
     48                 .contains(new Integer(0)));
     49         assertTrue("UnmodifiableCollectionTest - should contain 50", col
     50                 .contains(new Integer(50)));
     51         assertTrue("UnmodifiableCollectionTest - should not contain 100", !col
     52                 .contains(new Integer(100)));
     53 
     54         // containsAll
     55         HashSet<Integer> hs = new HashSet<Integer>();
     56         hs.add(new Integer(0));
     57         hs.add(new Integer(25));
     58         hs.add(new Integer(99));
     59         assertTrue(
     60                 "UnmodifiableCollectionTest - should contain set of 0, 25, and 99",
     61                 col.containsAll(hs));
     62         hs.add(new Integer(100));
     63         assertTrue(
     64                 "UnmodifiableCollectionTest - should not contain set of 0, 25, 99 and 100",
     65                 !col.containsAll(hs));
     66 
     67         // isEmpty
     68         assertTrue("UnmodifiableCollectionTest - should not be empty", !col
     69                 .isEmpty());
     70 
     71         // iterator
     72         Iterator<Integer> it = col.iterator();
     73         SortedSet<Integer> ss = new TreeSet<Integer>();
     74         while (it.hasNext()) {
     75             ss.add(it.next());
     76         }
     77         it = ss.iterator();
     78         for (int counter = 0; it.hasNext(); counter++) {
     79             int nextValue = it.next().intValue();
     80             assertTrue(
     81                     "UnmodifiableCollectionTest - Iterator returned wrong value.  Wanted: "
     82                             + counter + " got: " + nextValue,
     83                     nextValue == counter);
     84         }
     85 
     86         // size
     87         assertTrue(
     88                 "UnmodifiableCollectionTest - returned wrong size.  Wanted 100, got: "
     89                         + col.size(), col.size() == 100);
     90 
     91         // toArray
     92         Object[] objArray;
     93         objArray = col.toArray();
     94         for (int counter = 0; it.hasNext(); counter++) {
     95             assertTrue(
     96                     "UnmodifiableCollectionTest - toArray returned incorrect array",
     97                     objArray[counter] == it.next());
     98         }
     99 
    100         // toArray (Object[])
    101         objArray = new Object[100];
    102         col.toArray(objArray);
    103         for (int counter = 0; it.hasNext(); counter++) {
    104             assertTrue(
    105                     "UnmodifiableCollectionTest - toArray(Object) filled array incorrectly",
    106                     objArray[counter] == it.next());
    107         }
    108 
    109     }
    110 
    111 }
    112