It sounds like the "Add" method may not actually return anything --
but you've set an expectation that the Add will return an Int:

collection.Expect(c => c.Add(null)).IgnoreArguments().Return(0);

Have you tried removed the "Return(0)" clause?

--
Patrick Steele
http://weblogs.asp.net/psteele



On Mon, Mar 8, 2010 at 6:15 PM, BaRuSa <[email protected]> wrote:
> The Rad components are third party controls that I do not have control
> of changing the way they work.  I have a helper method extension that
> provides steps for frequently repeated code.
>
> public static void AddItems(this RadComboBox comboBox,
> Dictionary<string, string> items)
> {
>    RadItemCollection collection;
>    RadComboBoxItem item;
>
>    comboBox.SuspendLayout();
>    collection = comboBox.Items;
>    collection.Clear();
>
>    foreach (KeyValuePair<string, string> pair in items)
>    {
>        item = new RadComboBoxItem(pair.Key, pair.Value);
>        item.Name = pair.Key;
>        collection.Add(item);
>    }
>
>    comboBox.ResumeLayout();
> }
>
> Due the order of SuspendLayout, clearing items, adding items, and
> ResumeLayout being important I want to create an ordered test.
>
> [TestMethod]
> public void AddItems_call_in_specific_order()
> {
>    RadItemCollection collection;
>    RadComboBox comboBox;
>    MockRepository repository;
>
>    repository = new MockRepository();
>    collection = repository.StrictMock<RadItemCollection>();
>    comboBox = repository.StrictMock<RadComboBox>();
>
>    using (repository.Ordered())
>    {
>        comboBox.Expect(c => c.SuspendLayout());
>        comboBox.Expect(c => c.Items).Return(collection);
>        collection.Expect(c => c.Clear());
>        collection.Expect(c =>
> c.Add(null)).IgnoreArguments().Return(0);
>        comboBox.Expect(c => c.ResumeLayout());
>    }
>
>    using (repository.Playback())
>    {
>        comboBox.AddItems(testItems);
>    }
> }
>
> I receive an error at the collection.Expect for the c.Add as follows:
>
> System.InvalidOperationException: Type 'System.Int32' doesn't match
> the return type 'System.Void' for method
> 'RadItemCollection.OnInsertComplete(missing parameter, missing
> parameter);'.
>
> As I am new to using the Rhino Mock framework I don’t understand this
> error.  My function AddItems doesn’t call OnInsertComplete.  The test
> function doen’t call OnInsertComplete.   I thought the purpose of
> using a mock framework it that the framework emits code to stand in
> place of the real code.  I don’t understand why I am getting this
> error because OnInsertComplete is not being tested and should not even
> exist.
>
> I am assuming OnInsertComplete is a private function because I don’t
> have access to the function to do an Expect.  The most important
> question is how do I fix my test?  I tried changing StrickMock to all
> the different variations including Stub.  Is there a way to emulate
> the OnInsertComplete command?

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