diff --git a/src/Moq/Extensions.cs b/src/Moq/Extensions.cs index 077fb67ec..5b53a0824 100644 --- a/src/Moq/Extensions.cs +++ b/src/Moq/Extensions.cs @@ -50,12 +50,12 @@ public static bool IsPropertyGetter(this MethodInfo method) public static bool IsPropertyIndexerGetter(this MethodInfo method) { - return method.IsSpecialName && method.Name.Equals("get_Item", StringComparison.Ordinal); + return method.IsSpecialName && method.Name.StartsWith("get_", StringComparison.Ordinal) && method.GetParameters().Length > 0; } public static bool IsPropertyIndexerSetter(this MethodInfo method) { - return method.IsSpecialName && method.Name.Equals("set_Item", StringComparison.Ordinal); + return method.IsSpecialName && method.Name.StartsWith("set_", StringComparison.Ordinal) && method.GetParameters().Length > 1; } public static bool IsPropertySetter(this MethodInfo method) diff --git a/tests/Moq.Tests/Regressions/IssueReportsFixture.cs b/tests/Moq.Tests/Regressions/IssueReportsFixture.cs index 54c416db8..b136c8177 100644 --- a/tests/Moq.Tests/Regressions/IssueReportsFixture.cs +++ b/tests/Moq.Tests/Regressions/IssueReportsFixture.cs @@ -2705,10 +2705,24 @@ public void SetupAllProperties_can_process_Items_property_3() Assert.NotNull(httpContext.Object.Items); } + [Fact] + public void SetupAllProperties_can_process_Item_property() + { + var mock = new Mock(); + mock.SetupAllProperties(); + mock.Object.Item = "value"; + Assert.Equal("value", mock.Object.Item); + } + public abstract partial class HttpContext { public abstract IDictionary Items { get; set; } } + + public interface IFoo + { + string Item { get; set; } + } } #endregion