1 /////////////////////////////////////////////////////////////////////////////// 2 // Name: tests/streams/sstream.cpp 3 // Purpose: Test wxStringInputStream/wxStringOutputStream 4 // Author: Vadim Zeitlin 5 // RCS-ID: $Id: sstream.cpp 30685 2004-11-22 05:00:19Z RN $ 6 // Copyright: (c) 2004 Vadim Zeitlin 7 // Licence: wxWidgets licence 8 /////////////////////////////////////////////////////////////////////////////// 9 10 // For compilers that support precompilation, includes "wx/wx.h". 11 // and "wx/cppunit.h" 12 #include "testprec.h" 13 14 #ifdef __BORLANDC__ 15 #pragma hdrstop 16 #endif 17 18 // for all others, include the necessary headers 19 #ifndef WX_PRECOMP 20 #endif 21 22 #include "wx/sstream.h" 23 24 #include "bstream.h" 25 26 /////////////////////////////////////////////////////////////////////////////// 27 // The test case 28 // 29 // Try to fully test wxStringInputStream and wxStringOutputStream 30 31 class strStream : 32 public BaseStreamTestCase<wxStringInputStream, wxStringOutputStream> 33 { 34 public: 35 strStream(); 36 virtual ~strStream(); 37 38 CPPUNIT_TEST_SUITE(strStream); 39 // Base class stream tests the strStream supports. 40 CPPUNIT_TEST(Input_GetSize); 41 CPPUNIT_TEST(Input_GetC); 42 CPPUNIT_TEST(Input_Read); 43 CPPUNIT_TEST(Input_Eof); 44 CPPUNIT_TEST(Input_LastRead); 45 CPPUNIT_TEST(Input_SeekI); 46 CPPUNIT_TEST(Input_TellI); 47 CPPUNIT_TEST(Input_Peek); 48 CPPUNIT_TEST(Input_Ungetch); 49 50 CPPUNIT_TEST(Output_PutC); 51 CPPUNIT_TEST(Output_Write); 52 CPPUNIT_TEST(Output_LastWrite); 53 // seeking currently not supported by output string stream 54 //CPPUNIT_TEST(Output_SeekO); 55 //CPPUNIT_TEST(Output_TellO); 56 57 // Other test specific for String stream test case. 58 CPPUNIT_TEST_SUITE_END(); 59 60 protected: 61 // Add own test here. 62 63 private: 64 // Implement base class functions. 65 virtual wxStringInputStream *DoCreateInStream(); 66 virtual wxStringOutputStream *DoCreateOutStream(); 67 68 wxString m_str; 69 }; 70 strStream()71strStream::strStream() 72 { 73 static const size_t LEN = 256; 74 m_str.reserve(LEN); 75 for ( size_t n = 0; n < LEN; n++ ) 76 { 77 m_str += _T('A') + n % (_T('Z') - _T('A') + 1); 78 } 79 } 80 ~strStream()81strStream::~strStream() 82 { 83 } 84 DoCreateInStream()85wxStringInputStream *strStream::DoCreateInStream() 86 { 87 wxStringInputStream *pStrInStream = new wxStringInputStream(m_str); 88 CPPUNIT_ASSERT(pStrInStream->IsOk()); 89 return pStrInStream; 90 } 91 DoCreateOutStream()92wxStringOutputStream *strStream::DoCreateOutStream() 93 { 94 wxStringOutputStream *pStrOutStream = new wxStringOutputStream(); 95 CPPUNIT_ASSERT(pStrOutStream->IsOk()); 96 return pStrOutStream; 97 } 98 99 100 // Register the stream sub suite, by using some stream helper macro. 101 STREAM_TEST_SUBSUITE_NAMED_REGISTRATION(strStream) 102