Clover coverage report - jMock - 1.0-beta1
Coverage timestamp: Sat Nov 29 2003 19:35:59 GMT
file stats: LOC: 129   Methods: 4
NCLOC: 104   Classes: 1
30 day Evaluation Version distributed via the Maven Jar Repository. Clover is not free. You have 30 days to evaluate it. Please visit http://www.thecortex.net/clover to obtain a licensed version of Clover
 
 Source file Conditionals Statements Methods TOTAL
DynamicUtil.java 45.7% 56.5% 100% 53.8%
coverage coverage
 1   
 /* Copyright (c) 2000-2003, jMock.org. See bundled LICENSE.txt */
 2   
 package org.jmock.dynamic;
 3   
 
 4   
 import java.lang.reflect.Method;
 5   
 import java.lang.reflect.Proxy;
 6   
 import java.util.ArrayList;
 7   
 import java.util.List;
 8   
 
 9   
 public class DynamicUtil {
 10  4
     public static Object[] asObjectArray(Object primitiveArray) {
 11   
 
 12  4
         if (primitiveArray instanceof Object[]) {
 13  2
             return (Object[]) primitiveArray;
 14   
         }
 15   
 
 16  2
         List result = new ArrayList();
 17   
 
 18  2
         if (primitiveArray instanceof boolean[]) {
 19  0
             boolean[] booleanArray = (boolean[]) primitiveArray;
 20   
 
 21  0
             for (int i = 0; i < booleanArray.length; i++) {
 22  0
                 result.add(new Boolean(booleanArray[i]));
 23   
             }
 24  2
         } else if (primitiveArray instanceof char[]) {
 25  0
             char[] charArray = (char[]) primitiveArray;
 26   
 
 27  0
             for (int i = 0; i < charArray.length; i++) {
 28  0
                 result.add(new Character(charArray[i]));
 29   
             }
 30  2
         } else if (primitiveArray instanceof byte[]) {
 31  0
             byte[] byteArray = (byte[]) primitiveArray;
 32   
 
 33  0
             for (int i = 0; i < byteArray.length; i++) {
 34  0
                 result.add(new Byte(byteArray[i]));
 35   
             }
 36   
 
 37  2
         } else if (primitiveArray instanceof short[]) {
 38  0
             short[] shortArray = (short[]) primitiveArray;
 39   
 
 40  0
             for (int i = 0; i < shortArray.length; i++) {
 41  0
                 result.add(new Short(shortArray[i]));
 42   
             }
 43  2
         } else if (primitiveArray instanceof int[]) {
 44  0
             int[] intArray = (int[]) primitiveArray;
 45   
 
 46  0
             for (int i = 0; i < intArray.length; i++) {
 47  0
                 result.add(new Integer(intArray[i]));
 48   
             }
 49  2
         } else if (primitiveArray instanceof long[]) {
 50  2
             long[] longArray = (long[]) primitiveArray;
 51   
 
 52  2
             for (int i = 0; i < longArray.length; i++) {
 53  4
                 result.add(new Long(longArray[i]));
 54   
             }
 55  0
         } else if (primitiveArray instanceof float[]) {
 56  0
             float[] floatArray = (float[]) primitiveArray;
 57   
 
 58  0
             for (int i = 0; i < floatArray.length; i++) {
 59  0
                 result.add(new Float(floatArray[i]));
 60   
             }
 61  0
         } else if (primitiveArray instanceof double[]) {
 62  0
             double[] doulbeArray = (double[]) primitiveArray;
 63   
 
 64  0
             for (int i = 0; i < doulbeArray.length; i++) {
 65  0
                 result.add(new Float(doulbeArray[i]));
 66   
             }
 67   
         } else {
 68  0
             throw new RuntimeException("Unknown primitive data type for Object[] conversion " + primitiveArray.toString());
 69   
         }
 70   
 
 71  2
         return result.toArray();
 72   
     }
 73   
 
 74  24
     public static String proxyToString(Object element) {
 75  24
         if (Proxy.isProxyClass(element.getClass())) {
 76  6
             try {
 77  6
                 Method mockNameMethod = CoreMock.class.getDeclaredMethod("getMockName", new Class[0]);
 78  6
                 Object debugableResult = Proxy.getInvocationHandler(element).invoke(element, mockNameMethod, new Object[0]);
 79  6
                 return debugableResult.toString();
 80   
             } catch (Throwable e) {
 81  0
                 return element.getClass().getName();
 82   
             }
 83   
         }
 84   
 
 85  18
         if (element.getClass().isArray()) {
 86  0
             StringBuffer buf = new StringBuffer();
 87  0
             buf.append("[");
 88  0
             join(asObjectArray(element), buf);
 89  0
             buf.append("]");
 90  0
             return buf.toString();
 91   
         } else {
 92  18
             return element.toString();
 93   
         }
 94   
     }
 95   
 
 96  10
     public static String methodToString(String name, Object[] args) {
 97  10
         StringBuffer buf = new StringBuffer();
 98   
 
 99  10
         buf.append(name);
 100  10
         buf.append("(");
 101  10
         join(args, buf);
 102  10
         buf.append(")");
 103   
 
 104  10
         return buf.toString();
 105   
     }
 106   
 
 107  14
     public static void join(Object[] elements, StringBuffer buf) {
 108  14
         for (int i = 0; i < elements.length; i++) {
 109  22
             if (i > 0) {
 110  8
                 buf.append(", ");
 111   
             }
 112   
 
 113  22
             Object element = elements[i];
 114   
 
 115  22
             if (null == element) {
 116  2
                 buf.append("<null>");
 117  20
             } else if (element.getClass().isArray()) {
 118  4
                 buf.append("[");
 119  4
                 join(asObjectArray(element), buf);
 120  4
                 buf.append("]");
 121   
             } else {
 122  16
                 buf.append("<");
 123  16
                 buf.append(proxyToString(element));
 124  16
                 buf.append(">");
 125   
             }
 126   
         }
 127   
     }
 128   
 }
 129