Update of /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/util
In directory sc8-pr-cvs1:/tmp/cvs-serv6206/core/com/mockobjects/util
Modified Files:
Tag: DynamicMockExperiment
AssertMo.java
Log Message:
Improved error reporting for Proxy's as expectation values
Added additional conveniance methods for primitive types
Added deprecated expect methods to make library conversion easy
Got distracted and have missed XtC completely...
Index: AssertMo.java
===================================================================
RCS file: /cvsroot/mockobjects/mockobjects-java/src/core/com/mockobjects/util/AssertMo.java,v
retrieving revision 1.2.4.2
retrieving revision 1.2.4.3
diff -u -r1.2.4.2 -r1.2.4.3
--- AssertMo.java 7 Apr 2003 14:27:02 -0000 1.2.4.2
+++ AssertMo.java 15 Apr 2003 22:23:00 -0000 1.2.4.3
@@ -1,8 +1,12 @@
package com.mockobjects.util;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+
import junit.framework.Assert;
import junit.framework.AssertionFailedError;
import com.mockobjects.Verifiable;
+import com.mockobjects.dynamic.Mock;
public class AssertMo extends Assert {
@@ -106,7 +110,18 @@
for (int i = 0; i < elements.length; i++) {
if( i > 0 ) buf.append(", ");
buf.append( "<" );
- buf.append( elements[i].toString() );
+ Object element = elements[i];
+ if(Proxy.isProxyClass(element.getClass())) {
+ try {
+ Method mockNameMethod = Mock.class.getDeclaredMethod("getMockName", new Class[0]);
+ Object result = Proxy.getInvocationHandler(element).invoke(element, mockNameMethod, new Object[0]);
+ buf.append(result);
+ } catch (Throwable e) {
+ buf.append(element.getClass());
+ }
+ } else {
+ buf.append( elements[i].toString() );
+ }
buf.append( ">" );
}
|