TEST(RouteTest, MatchingWithRouteParams) {
	const Route r("/user/:id/");
	RouteParams rp;
	QueryParams qp;

	EXPECT_TRUE(r.isMatch("/user/A12345/", rp, qp));
	//TODO - paths should match regardless of the precense of a trailing forward slash
	//EXPECT_TRUE(r.isMatch("/user/A12345", rp, qp));

	EXPECT_FALSE(r.isMatch("/user/", rp, qp));
}
TEST(RouteTest, MatchingWithQueryParams) {
	const Route r("/user/");
	RouteParams rp;
	QueryParams qp;

	EXPECT_TRUE(r.isMatch("/user/?id=A12345", rp, qp));

	EXPECT_TRUE(r.isMatch("/user/?id=A12345&category=student", rp, qp));
	EXPECT_TRUE(r.isMatch("/user/??id=A12345", rp, qp));
	EXPECT_TRUE(r.isMatch("/user/?id", rp, qp));

	EXPECT_FALSE(r.isMatch("/students/user/?id=A12345", rp, qp));

	//TODO - test encoded characters

}
TEST(RouteTest, MatchingWithRouteAndQueryParams) {
	const Route r("/user/:id/");
	RouteParams rp;
	QueryParams qp;

	EXPECT_TRUE(r.isMatch("/user/A12345/?category=student", rp, qp));
	EXPECT_EQ("A12345", rp.getValue("id"));
	EXPECT_EQ("student", qp.getValue("category"));
}