public void GetAllAs()
        {
            // json
            using (HttpManager.OverrideContext("", "POST")) {
                var request = (HttpRequestMock)HttpManager.CurrentContext.Request;
                request.contentType = "application/json";
                request.body        = new MemoryStream(Encoding.UTF8.GetBytes("{ a: 'xxx', b: 1 }"));
                var result = request.GetAllAs <TestData>();
                Assert.Equals(result.a, "xxx");
                Assert.Equals(result.b, 1);
                Assert.Equals(result.c, null);
            }

            // query dictionary
            using (HttpManager.OverrideContext("/?a=xxx&b=1", "GET")) {
                var request  = HttpManager.CurrentContext.Request;
                var result_a = request.GetAllAs <IDictionary <string, object> >();
                var result_b = request.GetAllAs <IDictionary <string, string> >();
                Assert.Equals(result_a.GetOrDefault("a"), "xxx");
                Assert.Equals(result_a.GetOrDefault <int>("b"), 1);
                Assert.Equals(result_b.GetOrDefault("a"), "xxx");
                Assert.Equals(result_b.GetOrDefault("b"), "1");
            }

            // query
            using (HttpManager.OverrideContext("/?a=xxx&b=1", "GET")) {
                var file    = new HttpPostFileMock();
                var request = (HttpRequestMock)HttpManager.CurrentContext.Request;
                request.postedFiles["c"] = file;
                var result = request.GetAllAs <TestData>();
                Assert.Equals(result.a, "xxx");
                Assert.Equals(result.b, 1);
                Assert.Equals(result.c, file);
            }
        }
        public void Get()
        {
            // CustomParameters
            using (HttpManager.OverrideContext("/?a=1&b=2", "POST"))
            {
                var request = HttpManager.CurrentContext.Request;
                Assert.Equals(request.Get <string>("a"), "1");
                request.CustomParameters["a"] = "123";
                Assert.Equals(request.Get <string>("a"), "123");
                request.CustomParameters["x"] = 0.1M;
                Assert.Equals(request.Get <decimal>("x"), 0.1M);
            }

            // QueryString
            using (HttpManager.OverrideContext("/?a=1&b=2", "GET"))
            {
                var request = HttpManager.CurrentContext.Request;
                Assert.Equals(request.Get <string>("a"), "1");
                Assert.Equals(request.Get <int>("b"), 2);
                Assert.Equals(request.Get <object>("c"), null);
            }

            // Form
            using (HttpManager.OverrideContext("/?a=1&b=2", "POST"))
            {
                var request = HttpManager.CurrentContext.Request;
                Assert.Equals(request.Get <string>("a"), "1");
                Assert.Equals(request.Get <int>("b"), 2);
                Assert.Equals(request.Get <object>("c"), null);
            }

            // Json
            using (HttpManager.OverrideContext("", "POST"))
            {
                var request = (HttpRequestMock)HttpManager.CurrentContext.Request;
                request.contentType = "application/json";
                request.body        = new MemoryStream(Encoding.UTF8.GetBytes("{ a: 1, b: 2 }"));
                Assert.Equals(request.Get <string>("a"), "1");
                Assert.Equals(request.Get <int>("b"), 2);
                Assert.Equals(request.Get <object>("c"), null);
            }

            // PostedFile
            using (HttpManager.OverrideContext("/?a=1&b=2", "POST"))
            {
                var file    = new HttpPostFileMock();
                var request = (HttpRequestMock)HttpManager.CurrentContext.Request;
                request.postedFiles["c"] = file;
                Assert.Equals(request.Get <string>("a"), "1");
                Assert.Equals(request.Get <int>("b"), 2);
                Assert.Equals(request.Get <object>("c"), file);
                Assert.Equals(request.Get <IHttpPostedFile>("c"), file);
            }
        }
Ejemplo n.º 3
0
		public void OnRequestTest_F() {
			OnRequestTest(() => {
				// test get parameter from posted file
				var controllerManager = Application.Ioc.Resolve<ControllerManager>();
				using (HttpManager.OverrideContext("__test_action_f", HttpMethods.POST)) {
					var file = new HttpPostFileMock() { filename = "abc.txt" };
					var request = (HttpRequestMock)HttpManager.CurrentContext.Request;
					var response = (HttpResponseMock)HttpManager.CurrentContext.Response;
					request.postedFiles["file"] = file;
					controllerManager.OnRequest();
					Assert.Equals(response.ContentType, "application/json; charset=utf-8");
					var json = response.GetContentsFromBody();
					var obj = JsonConvert.DeserializeObject<IDictionary<string, object>>(json);
					Assert.Equals(obj.GetOrDefault<string>("filename"), "abc.txt");
				}
			});
		}