Try to run this test, it seems that TypeMock is not able to see the event defined in IView.
using System;
using MbUnit.Framework;
using TypeMock;
namespace EventBugTypeMock
{
[TestFixture]
public class PresenterTest
{
[TearDown]
public void TearDown()
{
MockManager.Verify();
}
[Test]
public void EventBugTest()
{
IViewDerived mockView = (IViewDerived) RecorderManager.CreateMockedObject(typeof(IViewDerived));
MockedEvent okEvent;
using (RecordExpectations recorder = RecorderManager.StartRecording())
{
mockView.Ok += null;
okEvent = RecorderManager.LastMockedEvent;
}
Presenter presenter = new Presenter(mockView);
okEvent.Fire(this, EventArgs.Empty);
}
}
public interface IView
{
event EventHandler Ok;
}
public interface IViewDerived : IView
{
}
public class Presenter
{
IViewDerived m_view;
public Presenter(IViewDerived view)
{
m_view = view;
m_view.Ok += new EventHandler(m_view_Ok);
}
private void m_view_Ok(object sender, EventArgs e)
{
}
}
}