private dynamic SetupController(IProjectRepository mockRepository, string userName, HttpMethod method, string version) { dynamic projectsController = null; if (version == "V1") { projectsController = new ResearchLinks.Controllers.Version1.ProjectsController(mockRepository); } else if (version == "V2") { projectsController = new ResearchLinks.Controllers.Version2.ProjectsController(mockRepository); } var user = new Mock <IPrincipal>(); var identity = new Mock <IIdentity>(); user.Setup(x => x.Identity).Returns(identity.Object); identity.Setup(x => x.Name).Returns(userName); Thread.CurrentPrincipal = user.Object; var config = new HttpConfiguration(); var request = new HttpRequestMessage(method, "http://localhost/api/projects"); var route = config.Routes.MapHttpRoute("DefaultApi", "api/{controller}/{id}"); var routeData = new HttpRouteData(route, new HttpRouteValueDictionary { { "controller", "projects" } }); projectsController.ControllerContext = new HttpControllerContext(config, routeData, request); projectsController.Request = request; projectsController.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config; projectsController.Request.Properties[HttpPropertyKeys.HttpRouteDataKey] = routeData; return(projectsController); }
private dynamic SetupController(IProjectRepository mockRepository, string userName, HttpMethod method, string version) { dynamic projectsController = null; if (version == "V1") { projectsController = new ResearchLinks.Controllers.Version1.ProjectsController(mockRepository); } else if (version == "V2") { projectsController = new ResearchLinks.Controllers.Version2.ProjectsController(mockRepository); } var user = new Mock<IPrincipal>(); var identity = new Mock<IIdentity>(); user.Setup(x => x.Identity).Returns(identity.Object); identity.Setup(x => x.Name).Returns(userName); Thread.CurrentPrincipal = user.Object; var config = new HttpConfiguration(); var request = new HttpRequestMessage(method, "http://localhost/api/projects"); var route = config.Routes.MapHttpRoute("DefaultApi", "api/{controller}/{id}"); var routeData = new HttpRouteData(route, new HttpRouteValueDictionary { { "controller", "projects" } }); projectsController.ControllerContext = new HttpControllerContext(config, routeData, request); projectsController.Request = request; projectsController.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config; projectsController.Request.Properties[HttpPropertyKeys.HttpRouteDataKey] = routeData; return projectsController; }