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