示例#1
0
        public void GetById()
        {
            // Arrange
            var httpConfiguration = new HttpConfiguration();

            WebApiConfig.Register(httpConfiguration);
            var httpRouteData = new System.Web.Http.Routing.HttpRouteData(httpConfiguration.Routes["DefaultApi"],
                                                                          new System.Web.Http.Routing.HttpRouteValueDictionary {
                { "controller", "Expense" }
            });
            ExpenseController controller = new ExpenseController()
            {
                Request = new HttpRequestMessage(HttpMethod.Get, "http://localhost:53852/api/Expense/")
                {
                    Properties =
                    {
                        { System.Web.Http.Hosting.HttpPropertyKeys.HttpConfigurationKey, httpConfiguration },
                        { System.Web.Http.Hosting.HttpPropertyKeys.HttpRouteDataKey,     httpRouteData     }
                    }
                }
            };

            LoadTestData(controller);
            // Act
            var result = controller.Get(0);

            // Assert
            Assert.AreEqual(System.Net.HttpStatusCode.OK, result.StatusCode);
        }
示例#2
0
        public void Post()
        {
            // Arrange

            var httpConfiguration = new HttpConfiguration();

            WebApiConfig.Register(httpConfiguration);
            var httpRouteData = new System.Web.Http.Routing.HttpRouteData(httpConfiguration.Routes["DefaultApi"],
                                                                          new System.Web.Http.Routing.HttpRouteValueDictionary {
                { "controller", "Expense" }
            });
            ExpenseController controller = new ExpenseController()
            {
                Request = new HttpRequestMessage(HttpMethod.Post, "http://localhost:53852/api/Expense/")
                {
                    Properties =
                    {
                        { System.Web.Http.Hosting.HttpPropertyKeys.HttpConfigurationKey, httpConfiguration },
                        { System.Web.Http.Hosting.HttpPropertyKeys.HttpRouteDataKey,     httpRouteData     }
                    }
                }
            };

            // Act
            var response = controller.Post("<expense><cost_centre>DEV002</cost_centre><total>890.55</total><payment_method>personalcard</payment_method><date>23/07/2018</date><description>test expense record</description></expense>");

            // Assert
            Assert.AreEqual(System.Net.HttpStatusCode.Created, response.StatusCode);
        }
示例#3
0
        //
        //You can use the following additional attributes as you write your tests:
        //
        //Use ClassInitialize to run code before running the first test in the class
        //[ClassInitialize()]
        //public static void MyClassInitialize(TestContext testContext)
        //{
        //}
        //
        //Use ClassCleanup to run code after all tests in a class have run
        //[ClassCleanup()]
        //public static void MyClassCleanup()
        //{
        //}
        //
        //Use TestInitialize to run code before running each test
        //[TestInitialize()]
        //public void MyTestInitialize()
        //{
        //}
        //
        //Use TestCleanup to run code after each test has run
        //[TestCleanup()]
        //public void MyTestCleanup()
        //{
        //}
        //
        #endregion

        private static void SetupControllerForTests(ApiController controller, string requestUri, string routeName, string routeTemplate)
        {
            var config    = new HttpConfiguration();
            var request   = new HttpRequestMessage(HttpMethod.Get, requestUri);
            var route     = config.Routes.MapHttpRoute(routeName, routeTemplate);
            var routeData = new System.Web.Http.Routing.HttpRouteData(route, new System.Web.Http.Routing.HttpRouteValueDictionary {
                { "controller", "resolve" }
            });

            request.Properties[System.Web.Http.Hosting.HttpPropertyKeys.HttpConfigurationKey] = config;
            controller.ControllerContext = new System.Web.Http.Controllers.HttpControllerContext(config, routeData, request);
        }
        private System.Web.Http.Controllers.HttpControllerContext CreateControllerContext()
        {
            System.Web.Http.HttpConfiguration      config = new System.Web.Http.HttpConfiguration();
            System.Web.Http.Routing.IHttpRouteData route  = new System.Web.Http.Routing.HttpRouteData(new System.Web.Http.Routing.HttpRoute());
            System.Net.Http.HttpRequestMessage     req    = new System.Net.Http.HttpRequestMessage();
            req.Properties[System.Web.Http.Hosting.HttpPropertyKeys.HttpConfigurationKey] = config;
            req.Properties[System.Web.Http.Hosting.HttpPropertyKeys.HttpRouteDataKey]     = route;

            System.Web.Http.Controllers.HttpControllerContext context = new System.Web.Http.Controllers.HttpControllerContext(config, route, req);
            context.ControllerDescriptor = new System.Web.Http.Controllers.HttpControllerDescriptor(config, "MockController", typeof(System.Web.Http.ApiController));

            return(context);
        }