Использование Moq для установки индексаторов в C #

У меня проблемы с выяснением, как установитьиндексаторах в C # с Мок. Документация Moq слабая, и я много занимался поиском ... что я хотел бы сделать, это похоже на решениеКак Moq Установка индексированного свойства:

var someClass = new Mock<ISomeClass>();
someClass.SetupSet(o => o.SomeIndexedProperty[3] = 25);

Я хочу изменить вышеупомянутое, чтобы работать для любого индекса и любого значения, чтобы я мог просто сделать что-то вроде этого:

someClass.Object.SomeIndexedProperty[1] = 5;

В настоящее время у меня есть следующее, которое прекрасно работает для индексированного свойства get, но если я когда-либо установить значение, Moq игнорирует его:

var someValues = new int[] { 10, 20, 30, 40 };
var someClass = new Mock<ISomeClass>();
someClass.Setup(o => o.SomeIndexedProperty[It.IsAny<int>()])
    .Returns<int>(index => someValues[index]);

// Moq doesn't set the value below, so the Assert fails!
someClass.Object.SomeIndexedProperty[3] = 25;
Assert.AreEqual(25, someClass.Object.SomeIndexedProperty[3]);