From: Vadim Zeitlin Date: Sun, 19 Sep 2004 22:00:16 +0000 (+0000) Subject: added unit tests for wxStringStreams X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/32d49041eb56f67c825a36fdf7388a0845913cb6 added unit tests for wxStringStreams git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29228 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/tests/streams/bstream.cpp b/tests/streams/bstream.cpp index 00b8aa8c98..cdbc90eafa 100644 --- a/tests/streams/bstream.cpp +++ b/tests/streams/bstream.cpp @@ -51,6 +51,7 @@ Test *StreamCase::suite() */ STREAM_REGISTER_SUB_SUITE(memStream); + STREAM_REGISTER_SUB_SUITE(strStream); STREAM_REGISTER_SUB_SUITE(fileStream); STREAM_REGISTER_SUB_SUITE(ffileStream); STREAM_REGISTER_SUB_SUITE(zlibStream); diff --git a/tests/streams/sstream.cpp b/tests/streams/sstream.cpp new file mode 100644 index 0000000000..bc42c32e95 --- /dev/null +++ b/tests/streams/sstream.cpp @@ -0,0 +1,104 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: tests/streams/sstream.cpp +// Purpose: Test wxStringInputStream/wxStringOutputStream +// Author: Vadim Zeitlin +// RCS-ID: $Id$ +// Copyright: (c) 2004 Vadim Zeitlin +// Licence: wxWidgets licence +/////////////////////////////////////////////////////////////////////////////// + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +// for all others, include the necessary headers +#ifndef WX_PRECOMP +#endif + +#include "wx/cppunit.h" +#include "wx/sstream.h" + +#include "bstream.h" + +using namespace std; +using namespace CppUnit; + +/////////////////////////////////////////////////////////////////////////////// +// The test case +// +// Try to fully test wxStringInputStream and wxStringOutputStream + +class strStream : + public BaseStreamTestCase +{ +public: + strStream(); + virtual ~strStream(); + + CPPUNIT_TEST_SUITE(strStream); + // Base class stream tests the strStream supports. + CPPUNIT_TEST(Input_GetSize); + CPPUNIT_TEST(Input_GetC); + CPPUNIT_TEST(Input_Read); + CPPUNIT_TEST(Input_Eof); + CPPUNIT_TEST(Input_LastRead); + CPPUNIT_TEST(Input_SeekI); + CPPUNIT_TEST(Input_TellI); + CPPUNIT_TEST(Input_Peek); + CPPUNIT_TEST(Input_Ungetch); + + CPPUNIT_TEST(Output_PutC); + CPPUNIT_TEST(Output_Write); + CPPUNIT_TEST(Output_LastWrite); + // seeking currently not supported by output string stream + //CPPUNIT_TEST(Output_SeekO); + //CPPUNIT_TEST(Output_TellO); + + // Other test specific for String stream test case. + CPPUNIT_TEST_SUITE_END(); + +protected: + // Add own test here. + +private: + // Implement base class functions. + virtual wxStringInputStream *DoCreateInStream(); + virtual wxStringOutputStream *DoCreateOutStream(); + + wxString m_str; +}; + +strStream::strStream() +{ + static const size_t LEN = 256; + m_str.reserve(LEN); + for ( size_t n = 0; n < LEN; n++ ) + { + m_str += _T('A') + n % (_T('Z') - _T('A') + 1); + } +} + +strStream::~strStream() +{ +} + +wxStringInputStream *strStream::DoCreateInStream() +{ + wxStringInputStream *pStrInStream = new wxStringInputStream(m_str); + CPPUNIT_ASSERT(pStrInStream->IsOk()); + return pStrInStream; +} + +wxStringOutputStream *strStream::DoCreateOutStream() +{ + wxStringOutputStream *pStrOutStream = new wxStringOutputStream(); + CPPUNIT_ASSERT(pStrOutStream->IsOk()); + return pStrOutStream; +} + + +// Register the stream sub suite, by using some stream helper macro. +STREAM_TEST_SUBSUITE_NAMED_REGISTRATION(strStream) diff --git a/tests/test.bkl b/tests/test.bkl index d816a6fbee..22cc97cfe0 100644 --- a/tests/test.bkl +++ b/tests/test.bkl @@ -26,6 +26,7 @@ streams/ffilestream.cpp streams/filestream.cpp streams/memstream.cpp + streams/sstream.cpp streams/zlibstream.cpp fontmap/fontmap.cpp datetime/datetime.cpp