Estoy intentando probar alguna lógica de aplicación que depende de la propiedad Values en ControllerContext.RouteData.Burlarse de la clase RouteData en System.Web.Routing para aplicaciones MVC
Hasta ahora he
// Arrange
var httpContextMock = new Mock<HttpContextBase>(MockBehavior.Loose);
var controllerMock = new Mock<ControllerBase>(MockBehavior.Loose);
var routeDataMock = new Mock<RouteData>();
var wantedRouteValues = new Dictionary<string, string>();
wantedRouteValues.Add("key1", "value1");
var routeValues = new RouteValueDictionary(wantedRouteValues);
routeDataMock.SetupGet(r => r.Values).Returns(routeValues); <=== Fails here
var controllerContext = new ControllerContext(httpContextMock.Object, routeDataMock.Object, controllerMock.Object);
La unidad de prueba falla con: System.ArgumentException: Configuración no válida en un miembro no reemplazable: r => r.Values
Creación de un RouteData falsos tampoco funciona ya que el constructor es RouteData (RouteBase, IRouteHandler).
La clase importante aquí es la clase abstracta RouteBase que tiene el método GetRouteData (HttpContextBase) que devuelve una instancia de RouteData, la clase que intento falsificar. ¡Me lleva en círculos!
Cualquier ayuda sobre esto sería muy bienvenida.
Lol, gracias. Este fue un caso de pensar demasiado sobre el problema de mi parte. Muy simple. Aclamaciones. – Magpie