Ticket #1169: const_string_test.cpp

File const_string_test.cpp, 1.5 KB (added by anonymous, 15 years ago)
Line 
1#define BOOST_AUTO_TEST_MAIN
2
3#include <boost/test/auto_unit_test.hpp>
4#include "const_string.hpp"
5
6BOOST_AUTO_TEST_CASE( constructors_test )
7{
8 const_string cs0( "" ); // 1 //
9 BOOST_CHECK_EQUAL( cs0.length(), (size_t)0 );
10 BOOST_CHECK( cs0.is_empty() );
11
12 const_string cs01( NULL ); // 2 //
13 BOOST_CHECK_EQUAL( cs01.length(), (size_t)0 );
14 BOOST_CHECK( cs01.is_empty() );
15
16 const_string cs1( "test_string" ); // 3 //
17 BOOST_CHECK_EQUAL( std::strcmp( cs1.data(), "test_string" ), 0 );
18 BOOST_CHECK_EQUAL( cs1.length(), std::strlen("test_string") );
19
20 std::string s( "test_string" ); // 4 //
21 const_string cs2( s );
22 BOOST_CHECK_EQUAL( std::strcmp( cs2.data(), "test_string" ), 0 );
23
24 const_string cs3( cs1 ); // 5 //
25 BOOST_CHECK_EQUAL( std::strcmp( cs1.data(), "test_string" ), 0 );
26
27 const_string cs4( "test_string", 4 ); // 6 //
28 BOOST_CHECK_EQUAL( std::strncmp( cs4.data(), "test", cs4.length() ), 0 );
29
30 const_string cs5( s.data(), s.data() + s.length() ); // 7 //
31 BOOST_CHECK_EQUAL( std::strncmp( cs5.data(), "test_string", cs5.length() ), 0 );
32
33 const_string cs_array[] = { "str1", "str2" }; // 8 //
34 BOOST_CHECK_EQUAL( cs_array[0].data(), "str1" );
35 BOOST_CHECK_EQUAL( cs_array[1].data(), "str2" );
36}
37
38