i have an abstract class and im trying to mock out events being
attached to it using Rhino Mocks. Here a bit of the abstract class
public abstract class Download
{
public virtual event EventHandler<DownloadProgressEventArgs>
DownloadProgress_Changed;
protected virtual void OnDownloadProgressChanged
(DownloadProgressEventargs e)
{
if(DownloadProgress_Changed != null)
{
DownloadProgress_Changed(this, e);
}
}
// abstract method declarations etc
}
ive marked the event as virtual so that it can be mocked.
In my app a Download is passed into the constructor of a
DownloadEntity, within the constructore the download has its events
hooked up, as follows
public class DownloadEntity
{
private Download _download;
public DownloadEntity(Download download)
{
_download = download;
_download.DownloadProgressChanged += new
EventHandler<DownloadProgressEventArgs>
(download_DownloadProgressChanged);
}
public virtual void download_DownloadProgressChanged(object
sender, DownloadProgressEventArgs e)
{
// stuff done here
}
// other code and stuff in the class
}
so, this is pretty straightforwards, i want to Mock out the Download
and using a DownloadEntity Verify that the event is attached, for this
i have used the fluent Rhino Mocks Syntax as follows
[Test]
public void DownloadAttachesEventsWhenCreated()
{
MockRepository mocks = new MockRepository();
Download dl = mocks.DynamicMock<Download>();
DownloadEntity dle;
With.Mocks(mocks).Expecting(delegate
{
dl.DownloadProgressChanged += new
EventHandler<DownloadProgressEventArgs>(DummyHandler);
})
.Verify(delegate
{
// verify it is called by creating a new
DownloadEntity and injecting the mock
dle = new DownloadEntity(dl);
});
}
void DummyHandler(object sender, DownloadProgressEventArgs e)
{
throw new NotImplementedException();
}
i get an expected = #1 actual #0 even though when i walk through the
code i can see that the handler is attached to Mocked Download. This
has got me really stuck and i cant help but think im missing something
really obvious here.
Thanks!
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Rhino.Mocks" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/rhinomocks?hl=en
-~----------~----~----~----~------~----~------~--~---