001/*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements.  See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License.  You may obtain a copy of the License at
008 *
009 *     http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017package org.apache.commons.collections.primitives.adapters;
018
019import java.util.ArrayList;
020import java.util.Collection;
021import java.util.Iterator;
022import java.util.List;
023import java.util.ListIterator;
024
025import junit.framework.Test;
026import junit.framework.TestCase;
027import junit.framework.TestSuite;
028
029import org.apache.commons.collections.primitives.ArrayByteList;
030import org.apache.commons.collections.primitives.ArrayCharList;
031import org.apache.commons.collections.primitives.ArrayDoubleList;
032import org.apache.commons.collections.primitives.ArrayFloatList;
033import org.apache.commons.collections.primitives.ArrayIntList;
034import org.apache.commons.collections.primitives.ArrayLongList;
035import org.apache.commons.collections.primitives.ArrayShortList;
036import org.apache.commons.collections.primitives.ByteCollection;
037import org.apache.commons.collections.primitives.ByteIterator;
038import org.apache.commons.collections.primitives.ByteList;
039import org.apache.commons.collections.primitives.ByteListIterator;
040import org.apache.commons.collections.primitives.CharCollection;
041import org.apache.commons.collections.primitives.CharIterator;
042import org.apache.commons.collections.primitives.CharList;
043import org.apache.commons.collections.primitives.CharListIterator;
044import org.apache.commons.collections.primitives.DoubleCollection;
045import org.apache.commons.collections.primitives.DoubleIterator;
046import org.apache.commons.collections.primitives.DoubleList;
047import org.apache.commons.collections.primitives.DoubleListIterator;
048import org.apache.commons.collections.primitives.FloatCollection;
049import org.apache.commons.collections.primitives.FloatIterator;
050import org.apache.commons.collections.primitives.FloatList;
051import org.apache.commons.collections.primitives.FloatListIterator;
052import org.apache.commons.collections.primitives.IntCollection;
053import org.apache.commons.collections.primitives.IntIterator;
054import org.apache.commons.collections.primitives.IntList;
055import org.apache.commons.collections.primitives.IntListIterator;
056import org.apache.commons.collections.primitives.LongCollection;
057import org.apache.commons.collections.primitives.LongIterator;
058import org.apache.commons.collections.primitives.LongList;
059import org.apache.commons.collections.primitives.LongListIterator;
060import org.apache.commons.collections.primitives.ShortCollection;
061import org.apache.commons.collections.primitives.ShortIterator;
062import org.apache.commons.collections.primitives.ShortList;
063import org.apache.commons.collections.primitives.ShortListIterator;
064
065/**
066 * @version $Revision: 480451 $ $Date: 2006-11-29 02:45:08 -0500 (Wed, 29 Nov 2006) $
067 * @author Rodney Waldhoff
068 */
069public class TestAdapt extends TestCase {
070
071    // conventional
072    // ------------------------------------------------------------------------
073
074    public TestAdapt(String testName) {
075        super(testName);
076    }
077
078    public static Test suite() {
079        return new TestSuite(TestAdapt.class);
080    }
081
082    // tests
083    // ------------------------------------------------------------------------
084
085    public void testHasPublicConstructorForReflectionBasedAPIs() {
086        assertNotNull(new Adapt());
087    }
088    
089    // to object based
090    //---------------------------------------------------------------
091    
092    public void testToCollection() {
093        assertNull(Adapt.toCollection((ArrayByteList)null));
094        assertTrue(Adapt.toCollection(new ArrayByteList()) instanceof Collection);
095        assertNull(Adapt.toCollection((ArrayCharList)null));
096        assertTrue(Adapt.toCollection(new ArrayCharList()) instanceof Collection);
097        assertNull(Adapt.toCollection((ArrayDoubleList)null));
098        assertTrue(Adapt.toCollection(new ArrayDoubleList()) instanceof Collection);
099        assertNull(Adapt.toCollection((ArrayFloatList)null));
100        assertTrue(Adapt.toCollection(new ArrayFloatList()) instanceof Collection);
101        assertNull(Adapt.toCollection((ArrayIntList)null));
102        assertTrue(Adapt.toCollection(new ArrayIntList()) instanceof Collection);
103        assertNull(Adapt.toCollection((ArrayLongList)null));
104        assertTrue(Adapt.toCollection(new ArrayLongList()) instanceof Collection);
105        assertNull(Adapt.toCollection((ArrayShortList)null));
106        assertTrue(Adapt.toCollection(new ArrayShortList()) instanceof Collection);
107    }
108    
109    public void testToList() {
110        assertNull(Adapt.toList((ArrayByteList)null));
111        assertTrue(Adapt.toList(new ArrayByteList()) instanceof List);
112        assertNull(Adapt.toList((ArrayCharList)null));
113        assertTrue(Adapt.toList(new ArrayCharList()) instanceof List);
114        assertNull(Adapt.toList((ArrayDoubleList)null));
115        assertTrue(Adapt.toList(new ArrayDoubleList()) instanceof List);
116        assertNull(Adapt.toList((ArrayFloatList)null));
117        assertTrue(Adapt.toList(new ArrayFloatList()) instanceof List);
118        assertNull(Adapt.toList((ArrayIntList)null));
119        assertTrue(Adapt.toList(new ArrayIntList()) instanceof List);
120        assertNull(Adapt.toList((ArrayLongList)null));
121        assertTrue(Adapt.toList(new ArrayLongList()) instanceof List);
122        assertNull(Adapt.toList((ArrayShortList)null));
123        assertTrue(Adapt.toList(new ArrayShortList()) instanceof List);
124    }
125    
126    public void testToIterator() {
127        assertNull(Adapt.toIterator((ByteIterator)null));
128        assertTrue(Adapt.toIterator(new ArrayByteList().iterator()) instanceof Iterator);
129        assertNull(Adapt.toIterator((CharIterator)null));
130        assertTrue(Adapt.toIterator(new ArrayCharList().iterator()) instanceof Iterator);
131        assertNull(Adapt.toIterator((DoubleIterator)null));
132        assertTrue(Adapt.toIterator(new ArrayDoubleList().iterator()) instanceof Iterator);
133        assertNull(Adapt.toIterator((FloatIterator)null));
134        assertTrue(Adapt.toIterator(new ArrayFloatList().iterator()) instanceof Iterator);
135        assertNull(Adapt.toIterator((IntIterator)null));
136        assertTrue(Adapt.toIterator(new ArrayIntList().iterator()) instanceof Iterator);
137        assertNull(Adapt.toIterator((LongIterator)null));
138        assertTrue(Adapt.toIterator(new ArrayLongList().iterator()) instanceof Iterator);
139        assertNull(Adapt.toIterator((ShortIterator)null));
140        assertTrue(Adapt.toIterator(new ArrayShortList().iterator()) instanceof Iterator);
141    }
142
143    public void testToListIterator() {
144        assertNull(Adapt.toListIterator((ByteListIterator)null));
145        assertTrue(Adapt.toListIterator(new ArrayByteList().listIterator()) instanceof ListIterator);
146        assertNull(Adapt.toListIterator((CharListIterator)null));
147        assertTrue(Adapt.toListIterator(new ArrayCharList().listIterator()) instanceof ListIterator);
148        assertNull(Adapt.toListIterator((DoubleListIterator)null));
149        assertTrue(Adapt.toListIterator(new ArrayDoubleList().listIterator()) instanceof ListIterator);
150        assertNull(Adapt.toListIterator((FloatListIterator)null));
151        assertTrue(Adapt.toListIterator(new ArrayFloatList().listIterator()) instanceof ListIterator);
152        assertNull(Adapt.toListIterator((IntListIterator)null));
153        assertTrue(Adapt.toListIterator(new ArrayIntList().listIterator()) instanceof ListIterator);
154        assertNull(Adapt.toListIterator((LongListIterator)null));
155        assertTrue(Adapt.toListIterator(new ArrayLongList().listIterator()) instanceof ListIterator);
156        assertNull(Adapt.toListIterator((ShortListIterator)null));
157        assertTrue(Adapt.toListIterator(new ArrayShortList().listIterator()) instanceof ListIterator);
158    }
159
160    // to byte based
161    //---------------------------------------------------------------
162    
163    public void testToByteType() {
164        assertTrue(Adapt.toByteCollection(new ArrayList()) instanceof ByteCollection);
165        assertTrue(Adapt.toByteList(new ArrayList()) instanceof ByteList);
166        assertTrue(Adapt.toByteIterator(new ArrayList().iterator()) instanceof ByteIterator);
167        assertTrue(Adapt.toByteListIterator(new ArrayList().listIterator()) instanceof ByteListIterator);
168    }
169
170    public void testToByteTypeFromNull() {
171        assertNull(Adapt.toByteCollection(null));
172        assertNull(Adapt.toByteList(null));
173        assertNull(Adapt.toByteIterator(null));
174        assertNull(Adapt.toByteListIterator(null));
175    }
176
177    // to char based
178    //---------------------------------------------------------------
179    
180    public void testToCharType() {
181        assertTrue(Adapt.toCharCollection(new ArrayList()) instanceof CharCollection);
182        assertTrue(Adapt.toCharList(new ArrayList()) instanceof CharList);
183        assertTrue(Adapt.toCharIterator(new ArrayList().iterator()) instanceof CharIterator);
184        assertTrue(Adapt.toCharListIterator(new ArrayList().listIterator()) instanceof CharListIterator);
185    }
186
187    public void testToCharTypeFromNull() {
188        assertNull(Adapt.toCharCollection(null));
189        assertNull(Adapt.toCharList(null));
190        assertNull(Adapt.toCharIterator(null));
191        assertNull(Adapt.toCharListIterator(null));
192    }
193
194    // to double based
195    //---------------------------------------------------------------
196    
197    public void testToDoubleType() {
198        assertTrue(Adapt.toDoubleCollection(new ArrayList()) instanceof DoubleCollection);
199        assertTrue(Adapt.toDoubleList(new ArrayList()) instanceof DoubleList);
200        assertTrue(Adapt.toDoubleIterator(new ArrayList().iterator()) instanceof DoubleIterator);
201        assertTrue(Adapt.toDoubleListIterator(new ArrayList().listIterator()) instanceof DoubleListIterator);
202    }
203
204    public void testToDoubleTypeFromNull() {
205        assertNull(Adapt.toDoubleCollection(null));
206        assertNull(Adapt.toDoubleList(null));
207        assertNull(Adapt.toDoubleIterator(null));
208        assertNull(Adapt.toDoubleListIterator(null));
209    }
210
211    // to float based
212    //---------------------------------------------------------------
213    
214    public void testToFloatType() {
215        assertTrue(Adapt.toFloatCollection(new ArrayList()) instanceof FloatCollection);
216        assertTrue(Adapt.toFloatList(new ArrayList()) instanceof FloatList);
217        assertTrue(Adapt.toFloatIterator(new ArrayList().iterator()) instanceof FloatIterator);
218        assertTrue(Adapt.toFloatListIterator(new ArrayList().listIterator()) instanceof FloatListIterator);
219    }
220
221    public void testToFloatTypeFromNull() {
222        assertNull(Adapt.toFloatCollection(null));
223        assertNull(Adapt.toFloatList(null));
224        assertNull(Adapt.toFloatIterator(null));
225        assertNull(Adapt.toFloatListIterator(null));
226    }
227
228    // to int based
229    //---------------------------------------------------------------
230    
231    public void testToIntType() {
232        assertTrue(Adapt.toIntCollection(new ArrayList()) instanceof IntCollection);
233        assertTrue(Adapt.toIntList(new ArrayList()) instanceof IntList);
234        assertTrue(Adapt.toIntIterator(new ArrayList().iterator()) instanceof IntIterator);
235        assertTrue(Adapt.toIntListIterator(new ArrayList().listIterator()) instanceof IntListIterator);
236    }
237
238    public void testToIntTypeFromNull() {
239        assertNull(Adapt.toIntCollection(null));
240        assertNull(Adapt.toIntList(null));
241        assertNull(Adapt.toIntIterator(null));
242        assertNull(Adapt.toIntListIterator(null));
243    }
244
245    // to long based
246    //---------------------------------------------------------------
247    
248    public void testToLongType() {
249        assertTrue(Adapt.toLongCollection(new ArrayList()) instanceof LongCollection);
250        assertTrue(Adapt.toLongList(new ArrayList()) instanceof LongList);
251        assertTrue(Adapt.toLongIterator(new ArrayList().iterator()) instanceof LongIterator);
252        assertTrue(Adapt.toLongListIterator(new ArrayList().listIterator()) instanceof LongListIterator);
253    }
254
255    public void testToLongTypeFromNull() {
256        assertNull(Adapt.toLongCollection(null));
257        assertNull(Adapt.toLongList(null));
258        assertNull(Adapt.toLongIterator(null));
259        assertNull(Adapt.toLongListIterator(null));
260    }
261
262    // to short based
263    //---------------------------------------------------------------
264    
265    public void testToShortType() {
266        assertTrue(Adapt.toShortCollection(new ArrayList()) instanceof ShortCollection);
267        assertTrue(Adapt.toShortList(new ArrayList()) instanceof ShortList);
268        assertTrue(Adapt.toShortIterator(new ArrayList().iterator()) instanceof ShortIterator);
269        assertTrue(Adapt.toShortListIterator(new ArrayList().listIterator()) instanceof ShortListIterator);
270    }
271
272    public void testToShortTypeFromNull() {
273        assertNull(Adapt.toShortCollection(null));
274        assertNull(Adapt.toShortList(null));
275        assertNull(Adapt.toShortIterator(null));
276        assertNull(Adapt.toShortListIterator(null));
277    }
278}