示例#1
0
        public void parameters_still_work()
        {
            var context = StubHttpContext.Empty();

            route.SetValues(context, new string[] { "folder", "folder2", "somebody" });

            context.GetRouteData("name").ShouldBe("somebody");
        }
示例#2
0
        public void TheSelectionShouldBe(string Url, out string Selected, [Default("NONE")] out ArgumentExpectation Arguments)
        {
            var env  = StubHttpContext.Empty();
            var leaf = _tree.Select(Url);

            Selected = leaf.Pattern;

            Arguments = new ArgumentExpectation(env);
        }
示例#3
0
        public void set_spread_values_from_0()
        {
            var parameter = new Spread(0);

            var env = StubHttpContext.Empty();

            parameter.SetValues(env, "a/b/c/d/e".Split('/'));

            env.GetSpreadData().ShouldBe(new[] { "a", "b", "c", "d", "e" });
        }
示例#4
0
        public void get_empty_spread_values_from_root()
        {
            var parameter = new Spread(0);

            var env = StubHttpContext.Empty();

            parameter.SetValues(env, new string[0]);

            env.GetSpreadData().Count().ShouldBe(0);
        }
示例#5
0
        public void get_empty_spread_values_from_nested()
        {
            var parameter = new Spread(4);

            var env = StubHttpContext.Empty();

            parameter.SetValues(env, "a/b/c/d".Split('/'));

            env.GetSpreadData().Count().ShouldBe(0);
        }
示例#6
0
        public void TheResultShouldBe([SelectionValues("GET", "POST", "DELETE", "PUT", "HEAD")] string HttpMethod, string Url, out int Status, out string Body, [Default("NONE")] out ArgumentExpectation Arguments)
        {
            var context = StubHttpContext.Empty();

            context.RelativeUrl(Url);
            context.HttpMethod(HttpMethod);

            _router.Invoke(context).Wait();

            Status = context.Response.StatusCode;

            context.Response.Body.Position = 0;
            Body      = context.Response.Body.ReadAllText();
            Arguments = new ArgumentExpectation(context);
        }
示例#7
0
        public void round_trip_writing_and_parsing()
        {
            var form1 = new Dictionary <string, string>
            {
                ["a"] = "what?",
                ["b"] = "now?",
                ["c"] = "really?"
            };

            var context = StubHttpContext.Empty();

            context.WriteFormData(form1);

            context.Request.Body.ReadAllText()
            .ShouldBe("a=what?&b=now?&c=really?");
        }
示例#8
0
        public void can_write_xml_to_request()
        {
            var context = StubHttpContext.Empty();

            new HttpRequestBody(null, context).XmlInputIs(new MyMessage {
                Age = 3, Name = "Declan"
            });


            context.Request.Body.Position = 0;

            var xml = context.Request.Body.ReadAllText();
            var doc = new XmlDocument();

            doc.LoadXml(xml);

            doc.DocumentElement["Name"].InnerText.ShouldBe("Declan");
        }
示例#9
0
        public void can_get_raw_xml_document()
        {
            var context = StubHttpContext.Empty();

            var serializer = new XmlSerializer(typeof(MyMessage));

            serializer.Serialize(context.Response.Body, new MyMessage {
                Age = 3, Name = "Declan"
            });

            context.Response.Body.Position = 0;

            var body = new HttpResponseBody(null, context);

            var root = body.ReadAsXml();

            root.DocumentElement["Name"].InnerText.ShouldBe("Declan");
        }
示例#10
0
        public void can_parse_xml()
        {
            var context = StubHttpContext.Empty();

            var serializer = new XmlSerializer(typeof(MyMessage));

            serializer.Serialize(context.Response.Body, new MyMessage {
                Age = 3, Name = "Declan"
            });

            context.Response.Body.Position = 0;

            var body = new HttpResponseBody(null, context);

            var message = body.ReadAsXml <MyMessage>();

            message.Name.ShouldBe("Declan");
        }
示例#11
0
        public static ScenarioAssertionException Run(IScenarioAssertion assertion,
                                                     Action <HttpContext> configuration)
        {
            var ex = new ScenarioAssertionException();

            var context = StubHttpContext.Empty();


            configuration(context);

            var stream = context.Response.Body;

            stream.Position = 0;

            assertion.Assert(null, context, ex);

            return(ex);
        }
        public void can_write_xml_to_request()
        {
            var context = StubHttpContext.Empty();

            using (var system = SystemUnderTest.For(b => b.Configure(app => app.Run(c => c.Response.WriteAsync("Hello")))))
            {
                var scenario = new Scenario(system);
                new HttpRequestBody(null, scenario).XmlInputIs(new MyMessage {
                    Age = 3, Name = "Declan"
                });

                scenario.SetupHttpContext(context);

                context.Request.Body.Position = 0;

                var xml = context.Request.Body.ReadAllText();
                var doc = new XmlDocument();
                doc.LoadXml(xml);

                doc.DocumentElement["Name"].InnerText.ShouldBe("Declan");
            }
        }