carbidecpp22devenv/plugins/org.eclipse.test.source_3.5.0.r20080925/src/org.junit4_4.5.0.v20090423/junitsrc/org/junit/experimental/theories/internal/ParameterizedAssertionError.java
changeset 636 3ef299ba838f
equal deleted inserted replaced
635:8d56403172bc 636:3ef299ba838f
       
     1 /**
       
     2  * 
       
     3  */
       
     4 package org.junit.experimental.theories.internal;
       
     5 
       
     6 import java.util.Arrays;
       
     7 import java.util.Collection;
       
     8 import java.util.Iterator;
       
     9 
       
    10 
       
    11 public class ParameterizedAssertionError extends RuntimeException {
       
    12 	private static final long serialVersionUID = 1L;
       
    13 
       
    14 	public ParameterizedAssertionError(Throwable targetException,
       
    15 			String methodName, Object... params) {
       
    16 		super(String.format("%s(%s)", methodName, join(", ", params)),
       
    17 				targetException);
       
    18 	}
       
    19 
       
    20 	@Override public boolean equals(Object obj) {
       
    21 		return toString().equals(obj.toString());
       
    22 	}
       
    23 
       
    24 	public static String join(String delimiter, Object... params) {
       
    25 		return join(delimiter, Arrays.asList(params));
       
    26 	}
       
    27 
       
    28 	public static String join(String delimiter,
       
    29 			Collection<Object> values) {
       
    30 		StringBuffer buffer = new StringBuffer();
       
    31 		Iterator<Object> iter = values.iterator();
       
    32 		while (iter.hasNext()) {
       
    33 			Object next = iter.next();
       
    34 			buffer.append(stringValueOf(next));
       
    35 			if (iter.hasNext()) {
       
    36 				buffer.append(delimiter);
       
    37 			}
       
    38 		}
       
    39 		return buffer.toString();
       
    40 	}
       
    41 
       
    42 	private static String stringValueOf(Object next) {
       
    43 		try {
       
    44 			return String.valueOf(next);
       
    45 		} catch (Throwable e) {
       
    46 			return "[toString failed]";
       
    47 		}
       
    48 	}
       
    49 }