1e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes/* 2e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * Licensed to the Apache Software Foundation (ASF) under one or more 3e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * contributor license agreements. See the NOTICE file distributed with 4e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * this work for additional information regarding copyright ownership. 5e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 6e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * (the "License"); you may not use this file except in compliance with 7e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * the License. You may obtain a copy of the License at 8e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * 9e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 10e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * 11e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * Unless required by applicable law or agreed to in writing, software 12e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 13e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * See the License for the specific language governing permissions and 15e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes * limitations under the License. 16e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes */ 17e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes 18e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughespackage tests.support; 19e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes 20e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughesimport java.util.Collection; 21e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughesimport java.util.HashSet; 22e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughesimport java.util.Iterator; 23e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughesimport java.util.SortedSet; 24e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughesimport java.util.TreeSet; 25e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughesimport junit.framework.TestCase; 26e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes 27e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughespublic class Support_UnmodifiableCollectionTest extends TestCase { 28e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes 298d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath Collection<Integer> col; 30e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes 318d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // must be a collection containing the Integers 0 to 99 (which will iterate 328d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // in order) 33e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes 348d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public Support_UnmodifiableCollectionTest(String p1) { 358d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath super(p1); 368d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 37e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes 388d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath public Support_UnmodifiableCollectionTest(String p1, Collection<Integer> c) { 398d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath super(p1); 408d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath col = c; 418d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 42e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes 438d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath @Override 44e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes public void runTest() { 45e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes 468d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // contains 478d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue("UnmodifiableCollectionTest - should contain 0", col 488d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath .contains(new Integer(0))); 498d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue("UnmodifiableCollectionTest - should contain 50", col 508d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath .contains(new Integer(50))); 518d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue("UnmodifiableCollectionTest - should not contain 100", !col 528d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath .contains(new Integer(100))); 538d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 548d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // containsAll 558d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath HashSet<Integer> hs = new HashSet<Integer>(); 568d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath hs.add(new Integer(0)); 578d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath hs.add(new Integer(25)); 588d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath hs.add(new Integer(99)); 598d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue( 608d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath "UnmodifiableCollectionTest - should contain set of 0, 25, and 99", 618d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath col.containsAll(hs)); 628d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath hs.add(new Integer(100)); 638d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue( 648d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath "UnmodifiableCollectionTest - should not contain set of 0, 25, 99 and 100", 658d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath !col.containsAll(hs)); 668d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 678d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // isEmpty 688d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue("UnmodifiableCollectionTest - should not be empty", !col 698d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath .isEmpty()); 708d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 718d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // iterator 728d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath Iterator<Integer> it = col.iterator(); 738d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath SortedSet<Integer> ss = new TreeSet<Integer>(); 748d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath while (it.hasNext()) { 758d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath ss.add(it.next()); 768d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 778d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath it = ss.iterator(); 788d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath for (int counter = 0; it.hasNext(); counter++) { 798d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath int nextValue = it.next().intValue(); 808d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue( 818d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath "UnmodifiableCollectionTest - Iterator returned wrong value. Wanted: " 828d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + counter + " got: " + nextValue, 838d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath nextValue == counter); 848d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 858d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 868d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // size 878d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue( 888d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath "UnmodifiableCollectionTest - returned wrong size. Wanted 100, got: " 898d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath + col.size(), col.size() == 100); 908d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 918d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // toArray 928d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath Object[] objArray; 938d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath objArray = col.toArray(); 948d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath for (int counter = 0; it.hasNext(); counter++) { 958d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue( 968d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath "UnmodifiableCollectionTest - toArray returned incorrect array", 978d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath objArray[counter] == it.next()); 988d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 998d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1008d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath // toArray (Object[]) 1018d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath objArray = new Object[100]; 1028d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath col.toArray(objArray); 1038d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath for (int counter = 0; it.hasNext(); counter++) { 1048d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath assertTrue( 1058d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath "UnmodifiableCollectionTest - toArray(Object) filled array incorrectly", 1068d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath objArray[counter] == it.next()); 1078d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 1088d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath 1098d8858e39800de641b50f6e8e864af9cf68bedeaNarayan Kamath } 110e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes 111e98fbf8686c5289bf03fe5c3de7ff82d3a77104dElliott Hughes} 112