You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by mb...@apache.org on 2009/09/11 20:27:18 UTC

svn commit: r813971 [3/3] - in /commons/proper/lang/trunk/src: java/org/apache/commons/lang/ArrayUtils.java test/org/apache/commons/lang/ArrayUtilsAddTest.java

Modified: commons/proper/lang/trunk/src/test/org/apache/commons/lang/ArrayUtilsAddTest.java
URL: http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/test/org/apache/commons/lang/ArrayUtilsAddTest.java?rev=813971&r1=813970&r2=813971&view=diff
==============================================================================
--- commons/proper/lang/trunk/src/test/org/apache/commons/lang/ArrayUtilsAddTest.java (original)
+++ commons/proper/lang/trunk/src/test/org/apache/commons/lang/ArrayUtilsAddTest.java Fri Sep 11 18:27:18 2009
@@ -5,9 +5,9 @@
  * The ASF licenses this file to You 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.
@@ -26,7 +26,7 @@
 
 /**
  * Tests ArrayUtils add methods.
- * 
+ *
  * @author Gary D. Gregory
  * @version $Id$
  */
@@ -54,7 +54,7 @@
         assertTrue(Arrays.equals(new boolean[]{true, false, true, false}, newArray));
         assertEquals(Boolean.TYPE, newArray.getClass().getComponentType());
     }
-    
+
     public void testAddObjectArrayByte() {
         byte[] newArray;
         newArray = ArrayUtils.add((byte[])null, (byte)0);
@@ -69,9 +69,9 @@
         assertEquals(Byte.TYPE, newArray.getClass().getComponentType());
         newArray = ArrayUtils.add(array1, (byte)4);
         assertTrue(Arrays.equals(new byte[]{1, 2, 3, 4}, newArray));
-        assertEquals(Byte.TYPE, newArray.getClass().getComponentType());        
+        assertEquals(Byte.TYPE, newArray.getClass().getComponentType());
     }
-    
+
     public void testAddObjectArrayChar() {
         char[] newArray;
         newArray = ArrayUtils.add((char[])null, (char)0);
@@ -86,9 +86,9 @@
         assertEquals(Character.TYPE, newArray.getClass().getComponentType());
         newArray = ArrayUtils.add(array1, (char)4);
         assertTrue(Arrays.equals(new char[]{1, 2, 3, 4}, newArray));
-        assertEquals(Character.TYPE, newArray.getClass().getComponentType());        
+        assertEquals(Character.TYPE, newArray.getClass().getComponentType());
     }
-    
+
     public void testAddObjectArrayDouble() {
         double[] newArray;
         newArray = ArrayUtils.add((double[])null, 0);
@@ -103,9 +103,9 @@
         assertEquals(Double.TYPE, newArray.getClass().getComponentType());
         newArray = ArrayUtils.add(array1, 4);
         assertTrue(Arrays.equals(new double[]{1, 2, 3, 4}, newArray));
-        assertEquals(Double.TYPE, newArray.getClass().getComponentType());        
+        assertEquals(Double.TYPE, newArray.getClass().getComponentType());
     }
-    
+
     public void testAddObjectArrayFloat() {
         float[] newArray;
         newArray = ArrayUtils.add((float[])null, 0);
@@ -120,9 +120,9 @@
         assertEquals(Float.TYPE, newArray.getClass().getComponentType());
         newArray = ArrayUtils.add(array1, 4);
         assertTrue(Arrays.equals(new float[]{1, 2, 3, 4}, newArray));
-        assertEquals(Float.TYPE, newArray.getClass().getComponentType());        
+        assertEquals(Float.TYPE, newArray.getClass().getComponentType());
     }
-    
+
     public void testAddObjectArrayInt() {
         int[] newArray;
         newArray = ArrayUtils.add((int[])null, 0);
@@ -137,9 +137,9 @@
         assertEquals(Integer.TYPE, newArray.getClass().getComponentType());
         newArray = ArrayUtils.add(array1, 4);
         assertTrue(Arrays.equals(new int[]{1, 2, 3, 4}, newArray));
-        assertEquals(Integer.TYPE, newArray.getClass().getComponentType());        
+        assertEquals(Integer.TYPE, newArray.getClass().getComponentType());
     }
-    
+
     public void testAddObjectArrayLong() {
         long[] newArray;
         newArray = ArrayUtils.add((long[])null, 0);
@@ -154,9 +154,9 @@
         assertEquals(Long.TYPE, newArray.getClass().getComponentType());
         newArray = ArrayUtils.add(array1, 4);
         assertTrue(Arrays.equals(new long[]{1, 2, 3, 4}, newArray));
-        assertEquals(Long.TYPE, newArray.getClass().getComponentType());        
+        assertEquals(Long.TYPE, newArray.getClass().getComponentType());
     }
-    
+
     public void testAddObjectArrayShort() {
         short[] newArray;
         newArray = ArrayUtils.add((short[])null, (short)0);
@@ -171,45 +171,56 @@
         assertEquals(Short.TYPE, newArray.getClass().getComponentType());
         newArray = ArrayUtils.add(array1, (short)4);
         assertTrue(Arrays.equals(new short[]{1, 2, 3, 4}, newArray));
-        assertEquals(Short.TYPE, newArray.getClass().getComponentType());        
+        assertEquals(Short.TYPE, newArray.getClass().getComponentType());
     }
-    
+
     public void testAddObjectArrayObject() {
         Object[] newArray;
         newArray = ArrayUtils.add((Object[])null, null);
         assertTrue(Arrays.equals((new Object[]{null}), newArray));
         assertEquals(Object.class, newArray.getClass().getComponentType());
-        
+
+        //show that not casting is okay
+        newArray = ArrayUtils.add(null, null);
+        assertTrue(Arrays.equals((new Object[]{null}), newArray));
+        assertEquals(Object.class, newArray.getClass().getComponentType());
+
         newArray = ArrayUtils.add((Object[])null, "a");
         assertTrue(Arrays.equals((new String[]{"a"}), newArray));
         assertTrue(Arrays.equals((new Object[]{"a"}), newArray));
         assertEquals(String.class, newArray.getClass().getComponentType());
-        
+
+        //show that not casting to Object[] is okay and will assume String based on "a"
+        String[] newStringArray = ArrayUtils.add(null, "a");
+        assertTrue(Arrays.equals((new String[]{"a"}), newStringArray));
+        assertTrue(Arrays.equals((new Object[]{"a"}), newStringArray));
+        assertEquals(String.class, newStringArray.getClass().getComponentType());
+
         String[] stringArray1 = new String[]{"a", "b", "c"};
         newArray = ArrayUtils.add(stringArray1, null);
         assertTrue(Arrays.equals((new String[]{"a", "b", "c", null}), newArray));
         assertEquals(String.class, newArray.getClass().getComponentType());
-        
+
         newArray = ArrayUtils.add(stringArray1, "d");
         assertTrue(Arrays.equals((new String[]{"a", "b", "c", "d"}), newArray));
         assertEquals(String.class, newArray.getClass().getComponentType());
-        
+
         Number[] numberArray1 = new Number[]{new Integer(1), new Double(2)};
         newArray = ArrayUtils.add(numberArray1, new Float(3));
         assertTrue(Arrays.equals((new Number[]{new Integer(1), new Double(2), new Float(3)}), newArray));
         assertEquals(Number.class, newArray.getClass().getComponentType());
-        
+
         numberArray1 = null;
         newArray = ArrayUtils.add(numberArray1, new Float(3));
         assertTrue(Arrays.equals((new Float[]{new Float(3)}), newArray));
         assertEquals(Float.class, newArray.getClass().getComponentType());
-        
+
         numberArray1 = null;
         newArray = ArrayUtils.add(numberArray1, null);
         assertTrue(Arrays.equals((new Object[]{null}), newArray));
         assertEquals(Object.class, newArray.getClass().getComponentType());
     }
-    
+
     public void testAddObjectArrayToObjectArray() {
         assertNull(ArrayUtils.addAll((Object[]) null, (Object[]) null));
         Object[] newArray;
@@ -241,92 +252,92 @@
         assertTrue(Arrays.equals((new String[]{}), newArray));
         assertEquals(String.class, newArray.getClass().getComponentType());
         String[] stringArrayNull = new String []{null};
-        newArray = ArrayUtils.addAll(stringArrayNull, stringArrayNull);        
+        newArray = ArrayUtils.addAll(stringArrayNull, stringArrayNull);
         assertTrue(Arrays.equals((new String[]{null, null}), newArray));
         assertEquals(String.class, newArray.getClass().getComponentType());
 
         // boolean
-        assertTrue( Arrays.equals( new boolean[] { true, false, false, true }, 
+        assertTrue( Arrays.equals( new boolean[] { true, false, false, true },
             ArrayUtils.addAll( new boolean[] { true, false }, new boolean[] { false, true } ) ) );
 
-        assertTrue( Arrays.equals( new boolean[] { false, true }, 
+        assertTrue( Arrays.equals( new boolean[] { false, true },
             ArrayUtils.addAll( null, new boolean[] { false, true } ) ) );
 
-        assertTrue( Arrays.equals( new boolean[] { true, false }, 
+        assertTrue( Arrays.equals( new boolean[] { true, false },
             ArrayUtils.addAll( new boolean[] { true, false }, null ) ) );
 
         // char
-        assertTrue( Arrays.equals( new char[] { 'a', 'b', 'c', 'd' }, 
+        assertTrue( Arrays.equals( new char[] { 'a', 'b', 'c', 'd' },
             ArrayUtils.addAll( new char[] { 'a', 'b' }, new char[] { 'c', 'd' } ) ) );
 
-        assertTrue( Arrays.equals( new char[] { 'c', 'd' }, 
+        assertTrue( Arrays.equals( new char[] { 'c', 'd' },
             ArrayUtils.addAll( null, new char[] { 'c', 'd' } ) ) );
 
-        assertTrue( Arrays.equals( new char[] { 'a', 'b' }, 
+        assertTrue( Arrays.equals( new char[] { 'a', 'b' },
             ArrayUtils.addAll( new char[] { 'a', 'b' }, null ) ) );
 
         // byte
-        assertTrue( Arrays.equals( new byte[] { (byte) 0, (byte) 1, (byte) 2, (byte) 3 }, 
+        assertTrue( Arrays.equals( new byte[] { (byte) 0, (byte) 1, (byte) 2, (byte) 3 },
             ArrayUtils.addAll( new byte[] { (byte) 0, (byte) 1 }, new byte[] { (byte) 2, (byte) 3 } ) ) );
 
-        assertTrue( Arrays.equals( new byte[] { (byte) 2, (byte) 3 }, 
+        assertTrue( Arrays.equals( new byte[] { (byte) 2, (byte) 3 },
             ArrayUtils.addAll( null, new byte[] { (byte) 2, (byte) 3 } ) ) );
 
-        assertTrue( Arrays.equals( new byte[] { (byte) 0, (byte) 1 }, 
+        assertTrue( Arrays.equals( new byte[] { (byte) 0, (byte) 1 },
             ArrayUtils.addAll( new byte[] { (byte) 0, (byte) 1 }, null ) ) );
 
         // short
-        assertTrue( Arrays.equals( new short[] { (short) 10, (short) 20, (short) 30, (short) 40 }, 
+        assertTrue( Arrays.equals( new short[] { (short) 10, (short) 20, (short) 30, (short) 40 },
             ArrayUtils.addAll( new short[] { (short) 10, (short) 20 }, new short[] { (short) 30, (short) 40 } ) ) );
 
-        assertTrue( Arrays.equals( new short[] { (short) 30, (short) 40 }, 
+        assertTrue( Arrays.equals( new short[] { (short) 30, (short) 40 },
             ArrayUtils.addAll( null, new short[] { (short) 30, (short) 40 } ) ) );
 
-        assertTrue( Arrays.equals( new short[] { (short) 10, (short) 20 }, 
+        assertTrue( Arrays.equals( new short[] { (short) 10, (short) 20 },
             ArrayUtils.addAll( new short[] { (short) 10, (short) 20 }, null ) ) );
 
         // int
-        assertTrue( Arrays.equals( new int[] { 1, 1000, -1000, -1 }, 
+        assertTrue( Arrays.equals( new int[] { 1, 1000, -1000, -1 },
             ArrayUtils.addAll( new int[] { 1, 1000 }, new int[] { -1000, -1 } ) ) );
 
-        assertTrue( Arrays.equals( new int[] { -1000, -1 }, 
+        assertTrue( Arrays.equals( new int[] { -1000, -1 },
             ArrayUtils.addAll( null, new int[] { -1000, -1 } ) ) );
 
-        assertTrue( Arrays.equals( new int[] { 1, 1000 }, 
+        assertTrue( Arrays.equals( new int[] { 1, 1000 },
             ArrayUtils.addAll( new int[] { 1, 1000 }, null ) ) );
 
         // long
-        assertTrue( Arrays.equals( new long[] { 1L, -1L, 1000L, -1000L }, 
+        assertTrue( Arrays.equals( new long[] { 1L, -1L, 1000L, -1000L },
             ArrayUtils.addAll( new long[] { 1L, -1L }, new long[] { 1000L, -1000L } ) ) );
 
-        assertTrue( Arrays.equals( new long[] { 1000L, -1000L }, 
+        assertTrue( Arrays.equals( new long[] { 1000L, -1000L },
             ArrayUtils.addAll( null, new long[] { 1000L, -1000L } ) ) );
-        
-        assertTrue( Arrays.equals( new long[] { 1L, -1L }, 
+
+        assertTrue( Arrays.equals( new long[] { 1L, -1L },
             ArrayUtils.addAll( new long[] { 1L, -1L }, null ) ) );
 
         // float
-        assertTrue( Arrays.equals( new float[] { 10.5f, 10.1f, 1.6f, 0.01f }, 
+        assertTrue( Arrays.equals( new float[] { 10.5f, 10.1f, 1.6f, 0.01f },
             ArrayUtils.addAll( new float[] { 10.5f, 10.1f }, new float[] { 1.6f, 0.01f } ) ) );
 
-        assertTrue( Arrays.equals( new float[] { 1.6f, 0.01f }, 
+        assertTrue( Arrays.equals( new float[] { 1.6f, 0.01f },
             ArrayUtils.addAll( null, new float[] { 1.6f, 0.01f } ) ) );
 
-        assertTrue( Arrays.equals( new float[] { 10.5f, 10.1f }, 
+        assertTrue( Arrays.equals( new float[] { 10.5f, 10.1f },
             ArrayUtils.addAll( new float[] { 10.5f, 10.1f }, null ) ) );
 
         // double
-        assertTrue( Arrays.equals( new double[] { Math.PI, -Math.PI, 0, 9.99 }, 
+        assertTrue( Arrays.equals( new double[] { Math.PI, -Math.PI, 0, 9.99 },
             ArrayUtils.addAll( new double[] { Math.PI, -Math.PI }, new double[] { 0, 9.99 } ) ) );
 
-        assertTrue( Arrays.equals( new double[] { 0, 9.99 }, 
+        assertTrue( Arrays.equals( new double[] { 0, 9.99 },
             ArrayUtils.addAll( null, new double[] { 0, 9.99 } ) ) );
 
-        assertTrue( Arrays.equals( new double[] { Math.PI, -Math.PI }, 
+        assertTrue( Arrays.equals( new double[] { Math.PI, -Math.PI },
             ArrayUtils.addAll( new double[] { Math.PI, -Math.PI }, null ) ) );
 
-    }    
-    
+    }
+
     public void testAddObjectAtIndex() {
         Object[] newArray;
         newArray = ArrayUtils.add((Object[])null, 0, null);
@@ -348,13 +359,13 @@
         assertEquals(String.class, newArray.getClass().getComponentType());
         newArray = ArrayUtils.add(stringArray1, 3, "d");
         assertTrue(Arrays.equals((new String[]{"a", "b", "c", "d"}), newArray));
-        assertEquals(String.class, newArray.getClass().getComponentType());        
+        assertEquals(String.class, newArray.getClass().getComponentType());
         assertEquals(String.class, newArray.getClass().getComponentType());
 
         Object[] o = new Object[] {"1", "2", "4"};
         Object[] result = ArrayUtils.add(o, 2, "3");
         Object[] result2 = ArrayUtils.add(o, 3, "5");
-        
+
         assertNotNull(result);
         assertEquals(4, result.length);
         assertEquals("1", result[0]);
@@ -570,5 +581,5 @@
             assertEquals("Index: -1, Length: 2", e.getMessage());
         }
     }
-    
+
 }