-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Description
As discussed, route matching appears to be ignoring the HTTP method. In the test below the GET route is always hit, even when making a POST.
namespace Superscribe.Tests.Owin
{
class RoutingTests
{
static TestServer owinTestServer;
static HttpClient client;
static HttpResponseMessage response;
Establish context = () =>
{
owinTestServer = TestServer.Create(app =>
{
var define = OwinRouteEngineFactory.Create();
define.Get("products", ctx => "Hello");
define.Post("products", ctx =>
{
ctx.StatusCode = (int)HttpStatusCode.Created;
return "Created";
});
app.UseSuperscribeRouter(define)
.UseSuperscribeHandler(define);
});
client = owinTestServer.HttpClient;
client.DefaultRequestHeaders.Add("accept", "text/html");
};
class When_requesting_a_valid_route_with_matching_verb
{
Because of = () => response = client.GetAsync("http://localhost/products").Await();
It Should_return_200 = () =>
{
response.StatusCode.ShouldEqual(HttpStatusCode.OK);
};
}
class When_requesting_a_valid_route_different_verb
{
Because of = () => response = client.PostAsync("http://localhost/products", new StringContent("test")).Await();
It Should_not_match_the_route = () =>
{
response.StatusCode.ShouldEqual(HttpStatusCode.Created);
};
}
}
}
Also I noticed that a template of products would also match products/add.
Metadata
Metadata
Assignees
Labels
No labels