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 31class strStream : 32 public BaseStreamTestCase<wxStringInputStream, wxStringOutputStream> 33{ 34public: 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 60protected: 61 // Add own test here. 62 63private: 64 // Implement base class functions. 65 virtual wxStringInputStream *DoCreateInStream(); 66 virtual wxStringOutputStream *DoCreateOutStream(); 67 68 wxString m_str; 69}; 70 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 81strStream::~strStream() 82{ 83} 84 85wxStringInputStream *strStream::DoCreateInStream() 86{ 87 wxStringInputStream *pStrInStream = new wxStringInputStream(m_str); 88 CPPUNIT_ASSERT(pStrInStream->IsOk()); 89 return pStrInStream; 90} 91 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. 101STREAM_TEST_SUBSUITE_NAMED_REGISTRATION(strStream) 102