///////////////////////////////////////////////////////////////////////////////
// For compilers that support precompilation, includes "wx/wx.h".
-#include "wx/wxprec.h"
+// and "wx/cppunit.h"
+#include "testprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#ifndef WX_PRECOMP
#endif
-#include "wx/cppunit.h"
#include "wx/sstream.h"
#include "bstream.h"
-using namespace std;
-using namespace CppUnit;
-
///////////////////////////////////////////////////////////////////////////////
// The test case
//
CPPUNIT_TEST(Input_Read);
CPPUNIT_TEST(Input_Eof);
CPPUNIT_TEST(Input_LastRead);
+ CPPUNIT_TEST(Input_CanRead);
CPPUNIT_TEST(Input_SeekI);
CPPUNIT_TEST(Input_TellI);
CPPUNIT_TEST(Input_Peek);
//CPPUNIT_TEST(Output_TellO);
// Other test specific for String stream test case.
+ CPPUNIT_TEST(Output_Check);
CPPUNIT_TEST_SUITE_END();
protected:
- // Add own test here.
+ void Output_Check();
private:
// Implement base class functions.
- virtual wxStringInputStream *DoCreateInStream();
+ virtual wxStringInputStream *DoCreateInStream();
virtual wxStringOutputStream *DoCreateOutStream();
+ // output the given string to wxStringOutputStream and check that its
+ // contents is exactly the same string
+ void CheckString(const wxString& text);
+
wxString m_str;
};
m_str.reserve(LEN);
for ( size_t n = 0; n < LEN; n++ )
{
- m_str += _T('A') + n % (_T('Z') - _T('A') + 1);
+ m_str += wxChar(_T('A') + n % (_T('Z') - _T('A') + 1));
}
}
{
}
-wxStringInputStream *strStream::DoCreateInStream()
-{
+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;
}
+void strStream::CheckString(const wxString& text)
+{
+ wxStringOutputStream sos;
+
+ size_t len = text.length();
+#if wxUSE_UNICODE
+ const wxCharBuffer textMB(wxConvLibc.cWC2MB(text.wc_str(), len + 1, &len));
+#else
+ const char *textMB = text.c_str();
+#endif
+
+ sos.Write(textMB, len);
+
+ CPPUNIT_ASSERT_EQUAL( text, sos.GetString() );
+}
+
+void strStream::Output_Check()
+{
+ CheckString("Hello world!");
+ CheckString(wxString("hi\0dden", 8));
+}
// Register the stream sub suite, by using some stream helper macro.
STREAM_TEST_SUBSUITE_NAMED_REGISTRATION(strStream)