1 #include <boost/test/included/unit_test.hpp>
2 #include <boost/asio.hpp>
3 #include "../../include/l7vs_command.h"
5 using namespace boost::unit_test;
9 // using string to endpoint template function
11 template< typename InternetProtocol >
12 boost::asio::ip::basic_endpoint< InternetProtocol > string_to_endpoint( std::string str ){
13 std::string::size_type pos = str.find( ":" );
14 std::string hostname = str.substr( 0, pos );
15 std::string portname = str.substr( pos+1, str.length() );
16 boost::asio::io_service io_service;
17 typename InternetProtocol::resolver resolver(io_service);
18 typename InternetProtocol::resolver::query query( hostname, portname );
19 typename InternetProtocol::resolver::iterator end;
20 typename InternetProtocol::resolver::iterator itr = resolver.resolve( query );
21 if( itr == end ) return typename InternetProtocol::endpoint();
27 void realserver_element_test(){
28 realserver_element rs;
29 boost::asio::ip::tcp::endpoint tcp_default_endpoint;
30 boost::asio::ip::udp::endpoint udp_default_endpoint;
31 // unit_test[1] default constractor tcp endpoint test
32 BOOST_CHECK( rs.tcp_endpoint == tcp_default_endpoint );
33 // unit_test[2] default constractor udp endpoint test
34 BOOST_CHECK( rs.udp_endpoint == udp_default_endpoint );
35 // unit_test[3] default constrafctor weight test
36 BOOST_CHECK( rs.weight == -1 );
37 rs.tcp_endpoint = string_to_endpoint<boost::asio::ip::tcp>( "10.10.10.10:6555" );
38 rs.udp_endpoint = string_to_endpoint<boost::asio::ip::udp>( "20.20.20.20:4444" );
41 realserver_element rs2 = rs;
42 // unit_test[4] copy constractor tcp endpoint test
43 BOOST_CHECK( rs.tcp_endpoint == rs2.tcp_endpoint );
44 // unit_test[5] copy constractor udp endpoint test
45 BOOST_CHECK( rs.udp_endpoint == rs2.udp_endpoint );
50 test_suite* init_unit_test_suite( int argc, char* argv[] ){
52 // create unit test suite
53 test_suite* ts = BOOST_TEST_SUITE( "l7vs_command_ut" );
54 ts->add( BOOST_TEST_CASE( &realserver_element_test ) );
56 framework::master_test_suite().add( ts );