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
-~----------~----~----~----~------~----~------~--~---

Reply via email to