private static MockServerRouteOptions MergeRouteOptions(MockServerRouteOptions target,
                                                         MockServerRouteOptions source)
 {
     return(new MockServerRouteOptions
     {
         Path = target.Path,
         Method = target.Method,
         Handler = target.Handler ?? source.Handler,
         Config = target.Config ?? source.Config
     });
 }
Ejemplo n.º 2
0
 public RouteContext(
     MockServerRouteOptions config,
     RouteSpec spec,
     RequestContext request,
     IRequestHandler handler,
     ILogger logger)
 {
     Config  = config;
     Spec    = spec;
     Request = request;
     Handler = handler;
     Logger  = logger;
 }
Ejemplo n.º 3
0
        public void ReturnDefaultsIfNoRoutesConfigured()
        {
            var config = GetConfig(new Dictionary <string, string>());
            var route  = new RouteId("/", HttpMethod.Get);

            var expected = new MockServerRouteOptions
            {
                Path    = "/",
                Method  = MockServerOptionsHttpMethod.Get,
                Handler = "default"
            };

            var actual = RouteOptionsBuilder.Build(route, config);

            AssertEqual(expected, actual);
        }
Ejemplo n.º 4
0
        public void ReturnDefaultOptionsIfRouteIsNotConfigured()
        {
            var config = GetConfig("/", "get", "test");
            var route  = new RouteId("/test", HttpMethod.Get);

            var expected = new MockServerRouteOptions
            {
                Path    = "/test",
                Method  = MockServerOptionsHttpMethod.Get,
                Handler = "default"
            };

            var actual = RouteOptionsBuilder.Build(route, config);

            AssertEqual(expected, actual);
        }
Ejemplo n.º 5
0
        public void CanBuildRouteOptions(string glob, string configMethod)
        {
            var config = GetConfig(glob, configMethod, "test");
            var route  = new RouteId("/foo/bar", HttpMethod.Get);

            var expected = new MockServerRouteOptions
            {
                Path    = "/foo/bar",
                Method  = MockServerOptionsHttpMethod.Get,
                Handler = "test"
            };

            var actual = RouteOptionsBuilder.Build(route, config);

            AssertEqual(expected, actual);
        }
Ejemplo n.º 6
0
        public RouteContext Build()
        {
            var config = new MockServerRouteOptions();

            var callCtx = new RequestContext
            {
                Route        = Route,
                Method       = Method,
                Query        = Query,
                Body         = Body == null ? null : JToken.Parse(Body),
                Headers      = Headers,
                ContentType  = Form == null ? "application/json" : "multipart/form-data",
                PathAndQuery = Path,
            };

            var handler = new MockHandler(new MockDataProvider());

            return(new RouteContext(config, Spec, callCtx, handler, NullLogger.Instance));
        }
Ejemplo n.º 7
0
        private static void AssertEqual(MockServerRouteOptions expected, MockServerRouteOptions actual)
        {
            var comparison = StringComparison.OrdinalIgnoreCase;

            if (!string.Equals(expected.Path, actual.Path, comparison))
            {
                throw new XunitException(GetErrorMessage("path", expected.Path, actual.Path));
            }
            if (expected.Method != actual.Method)
            {
                throw new XunitException(GetErrorMessage("method", expected.Method, actual.Method));
            }
            if (!string.Equals(expected.Handler, actual.Handler, comparison))
            {
                throw new XunitException(GetErrorMessage("handler", expected.Handler, actual.Handler));
            }

            string GetErrorMessage(string name, object expectedValue, object actualValue) =>
            $"Expected {name} is not equal to actual {name}.\r\nExpected: {expectedValue}\r\nActual: {actualValue}";
        }