public void Route_POST_log_without_data_returns_Error400() { IRequest Request = new Request("POST", "/log", " "); IResponse Response = HttpActions.Route(Request, repo).Invoke(Request); Assert.AreEqual(400, Response.Statuscode); Assert.AreEqual("no data", Response.Status); }
public void Route_POST_query_with_invalid_data_returns_OK200() { IRequest Request = new Request("POST", "/log", "[{\"Message\":\"Test\"}]"); IResponse Response = HttpActions.Route(Request, repo).Invoke(Request); Assert.AreEqual(400, Response.Statuscode); Assert.AreEqual("invalid input", Response.Status); }
public void Route_Request_with_unknown_URI_returns_Error404() { IRequest Request = new Request("GET", "/uri/unknown"); IResponse Response = HttpActions.Route(Request, repo).Invoke(Request); Assert.AreEqual(404, Response.Statuscode); Assert.AreEqual("page not found", Response.Status); }
public void Route_POST_log_with_JSONentry_returns_OK200() { IRequest Request = new Request("POST", "/log", "{\"Message\":\"Test\"}"); IResponse Response = HttpActions.Route(Request, repo).Invoke(Request); Assert.AreEqual(200, Response.Statuscode); Assert.AreEqual("OK", Response.Status); Assert.AreEqual(1, repo.Count()); }
static void Main(string[] args) { Log.Logger = new LoggerConfiguration() .MinimumLevel.Debug() .WriteTo.Console() .WriteTo.File("logs\\OpenCacheServer.txt", rollingInterval: RollingInterval.Day) .CreateLogger(); HttpListener http = new HttpListener(); //http.Prefixes.Add("http://publichost:2021/"); http.Prefixes.Add("http://localhost:2021/"); http.Start(); while (true) { Console.WriteLine("Clients waiting"); HttpContext = http.GetContext(); Console.WriteLine("Client connected"); Request = HttpContext.Request; Response = HttpContext.Response; HttpActions actions = new HttpActions() { Request = Request, Response = Response }; switch (Request.HttpMethod) { case "GET": actions.Get(); break; case "POST": actions.Post(); break; case "PUT": actions.Put(); break; case "DELETE": actions.Delete(); break; } Response.Close(); } }
public APIActionNameAttribute(string name, HttpActions httpAction) { this.Name = name; this.HttpAction = httpAction; }