//System Includes #include #include //Project Includes #include #include #include //External Includes #include //System Namespaces using std::string; using std::multimap; //Project Namespaces using restbed::Uri; using restbed::Bytes; using restbed::Request; //External Namespaces TEST_CASE( "validate setters modify default values", "[request]" ) { Bytes expectation = { 'a', 'b', 'c' }; Request request; request.set_body( expectation ); REQUIRE( request.get_body( ) == expectation ); REQUIRE( request.has_query_parameter( "q" ) == false ); REQUIRE( request.has_path_parameter( "id" ) == false ); } TEST_CASE( "validate URI constructor", "[request]" ) { Request request( Uri( "https://localhost:1985/messages?a=1&b=2&c=9#1234" ) ); REQUIRE( request.get_port( ) == 1985 ); REQUIRE( request.get_protocol( ) == "HTTPS" ); REQUIRE( request.get_path( ) == "/messages" ); REQUIRE( request.get_host( ) == "localhost" ); multimap< string, string > parameters { { "a", "1" }, { "b", "2" }, { "c", "9" } }; REQUIRE( request.get_query_parameters( ) == parameters ); } TEST_CASE( "validate HTTPS URI constructor", "[request]" ) { Request request( Uri( "https://localhost/?abc=456&efg=123" ) ); REQUIRE( request.get_port( ) == 443 ); REQUIRE( request.get_protocol( ) == "HTTPS" ); REQUIRE( request.get_path( ) == "/" ); REQUIRE( request.get_host( ) == "localhost" ); multimap< string, string > parameters { { "abc", "456" }, { "efg", "123" } }; REQUIRE( request.get_query_parameters( ) == parameters ); } TEST_CASE( "validate HTTP URI constructor", "[request]" ) { Request request( Uri( "http://localhost/?abc=456&efg=123" ) ); REQUIRE( request.get_port( ) == 80 ); REQUIRE( request.get_protocol( ) == "HTTP" ); REQUIRE( request.get_path( ) == "/" ); REQUIRE( request.get_host( ) == "localhost" ); multimap< string, string > parameters { { "abc", "456" }, { "efg", "123" } }; REQUIRE( request.get_query_parameters( ) == parameters ); } TEST_CASE( "validate URI constructor with no path", "[request]" ) { Request request( Uri( "http://localhost?abc=456&efg=123" ) ); REQUIRE( request.get_port( ) == 80 ); REQUIRE( request.get_protocol( ) == "HTTP" ); REQUIRE( request.get_path( ) == "/" ); REQUIRE( request.get_host( ) == "localhost" ); multimap< string, string > parameters { { "abc", "456" }, { "efg", "123" } }; REQUIRE( request.get_query_parameters( ) == parameters ); }