|
From: <joe...@us...> - 2002-11-11 20:00:24
|
Update of /cvsroot/nmock/nmock/src/NMock/Dynamic
In directory usw-pr-cvs1:/tmp/cvs-serv30478/src/NMock/Dynamic
Modified Files:
ClassGenerator.cs
Log Message:
Integrated some changes that have been lingering around for a while:
- mocking of self methods.
- descriptive error messages.
Index: ClassGenerator.cs
===================================================================
RCS file: /cvsroot/nmock/nmock/src/NMock/Dynamic/ClassGenerator.cs,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** ClassGenerator.cs 10 Nov 2002 16:32:27 -0000 1.1.1.1
--- ClassGenerator.cs 11 Nov 2002 20:00:20 -0000 1.2
***************
*** 11,22 ****
private static IDictionary boxingOpCodes;
! public object Generate(Type type, IMock mock)
{
TypeBuilder typeBuilder = getTypeBuilder("Mock" + type.Name, type);
FieldBuilder mockFieldBuilder = typeBuilder.DefineField("underlyingMock", typeof(IMock), FieldAttributes.Public);
! MethodInfo[] methods = type.GetMethods();
foreach ( MethodInfo m in methods )
{
! implementMethod(type, typeBuilder, m, mockFieldBuilder);
}
Type proxyType = typeBuilder.CreateType();
--- 11,30 ----
private static IDictionary boxingOpCodes;
! public virtual object Generate(Type type, IMock mock)
! {
! return Generate(type, mock, new ArrayList());
! }
!
! public virtual object Generate(Type type, IMock mock, IList methodsToIgnore)
{
TypeBuilder typeBuilder = getTypeBuilder("Mock" + type.Name, type);
FieldBuilder mockFieldBuilder = typeBuilder.DefineField("underlyingMock", typeof(IMock), FieldAttributes.Public);
! MethodInfo[] methods = type.GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
foreach ( MethodInfo m in methods )
{
! if(!methodsToIgnore.Contains(m.Name))
! {
! implementMethod(type, typeBuilder, m, mockFieldBuilder);
! }
}
Type proxyType = typeBuilder.CreateType();
|