I am attempting to mock a call to an indexed property. I.e. I would like to moq the following:
object result = myDictionaryCollection["SomeKeyValue"];
and also the setter value
myDictionaryCollection["SomeKeyValue"] = myNewValue;
I am doing this because I need to mock the functionality of a class my app uses.
Does anyone know how to do this with MOQ? I've tried variations on the following:
Dictionary<string, object> MyContainer = new Dictionary<string, object>();
mock.ExpectGet<object>( p => p[It.IsAny<string>()]).Returns(MyContainer[(string s)]);
But that doesn't compile.
Is what I am trying to achieve possible with MOQ, does anyone have any examples of how I can do this?
It's not clear what you're trying to do because you don't show the declaration of the mock. Are you trying to mock a dictionary?
MyContainer[(string s)]
isn't valid C#.
This compiles:
var mock = new Mock<IDictionary>();
mock.SetupGet( p => p[It.IsAny<string>()]).Returns("foo");