From: Tim M. <ma...@us...> - 2003-04-15 22:23:04
|
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( ">" ); } |