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 }); }
public RouteContext( MockServerRouteOptions config, RouteSpec spec, RequestContext request, IRequestHandler handler, ILogger logger) { Config = config; Spec = spec; Request = request; Handler = handler; Logger = logger; }
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); }
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); }
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); }
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)); }
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}"; }