OSDN Git Service

ソースツリー再構成中(ほぼOK?)
[ultramonkey-l7/ultramonkey-l7-v3.git] / l7vsd / unit_tests / l7vs_command_test / l7vs_command_ut.cpp
1 #include <boost/test/included/unit_test.hpp>
2 #include <boost/asio.hpp>
3 #include "../../include/l7vs_command.h"
4
5 using namespace boost::unit_test;
6 using namespace l7vs;
7
8 //
9 // using string to endpoint template function
10 //
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();
22         return *itr;
23 }
24
25
26 // testcase 1.
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" );
39         rs.weight = 255;
40
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 );
46         
47 }
48
49
50 test_suite*     init_unit_test_suite( int argc, char* argv[] ){
51
52         // create unit test suite
53         test_suite* ts = BOOST_TEST_SUITE( "l7vs_command_ut" );
54         ts->add( BOOST_TEST_CASE( &realserver_element_test ) );
55
56         framework::master_test_suite().add( ts );
57
58         return 0;
59 }
60