Usando Moq para establecer indexadores en C #

Tengo problemas para descubrir cómo configurarindexadores en C # con Moq. La documentación de Moq es débil, y he buscado mucho ... lo que me gustaría hacer es similar en la solución aCómo Moq Establecer una propiedad indexada:

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

Quiero modificar lo anterior para que funcione para cualquier índice y cualquier valor, así que puedo hacer algo como esto:

someClass.Object.SomeIndexedProperty[1] = 5;

Actualmente tengo lo siguiente, que funciona muy bien para el generador de propiedades indexadas, pero si alguna vez configuro el valor, Moq lo ignora:

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]);

Respuestas a la pregunta(3)

Su respuesta a la pregunta