]> git.saurik.com Git - wxWidgets.git/commitdiff
added unit tests for wxStringStreams
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 19 Sep 2004 22:00:16 +0000 (22:00 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 19 Sep 2004 22:00:16 +0000 (22:00 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29228 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

tests/streams/bstream.cpp
tests/streams/sstream.cpp [new file with mode: 0644]
tests/test.bkl

index 00b8aa8c982f0d97cf0a07abb30bcc9ce39ca6e0..cdbc90eafa0de90184b83661936a98c823bb9d4e 100644 (file)
@@ -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 (file)
index 0000000..bc42c32
--- /dev/null
@@ -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<wxStringInputStream, wxStringOutputStream>
+{
+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)
index d816a6fbee7f9a5ba30b5b1cc9476abb69c9ebe2..22cc97cfe00dc5a4beda0d0b2772257a14832b7c 100644 (file)
@@ -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