]> git.saurik.com Git - wxWidgets.git/blobdiff - tests/strings/iostream.cpp
added a trivial test for wxString stream insertion operators
[wxWidgets.git] / tests / strings / iostream.cpp
diff --git a/tests/strings/iostream.cpp b/tests/strings/iostream.cpp
new file mode 100644 (file)
index 0000000..6e40cbb
--- /dev/null
@@ -0,0 +1,61 @@
+//////////////////////////////////////////////////////////////////////////////
+// Name:        tests/strings/iostream.cpp
+// Purpose:     unit test of wxString interaction with std::[io]stream
+// Author:      Vadim Zeitlin
+// Created:     2007-10-09
+// RCS-ID:      $Id$
+// Copyright:   (c) 2007 Vadim Zeitlin <vadim@wxwidgets.org>
+///////////////////////////////////////////////////////////////////////////////
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#include "testprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+    #include "wx/string.h"
+#endif // WX_PRECOMP
+
+#include <sstream>
+
+#define ASSERT_OSTREAM_EQUAL(p, s) CPPUNIT_ASSERT_EQUAL(std::string(p), s.str())
+#define ASSERT_WOSTREAM_EQUAL(p, s) CPPUNIT_ASSERT_EQUAL(std::wstring(p), s.str())
+
+// ----------------------------------------------------------------------------
+// test class
+// ----------------------------------------------------------------------------
+
+class StringIostreamTestCase : public CppUnit::TestCase
+{
+public:
+    StringIostreamTestCase() { }
+
+private:
+    CPPUNIT_TEST_SUITE( StringIostreamTestCase );
+        CPPUNIT_TEST( Out );
+    CPPUNIT_TEST_SUITE_END();
+
+    void Out();
+};
+
+CPPUNIT_TEST_SUITE_REGISTRATION( StringIostreamTestCase );
+
+// also include in it's own registry so that these tests can be run alone
+CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( StringIostreamTestCase, "StringIostream" );
+
+void StringIostreamTestCase::Out()
+{
+    std::ostringstream s;
+    s << wxString("hello");
+    ASSERT_OSTREAM_EQUAL("hello", s);
+
+    std::wostringstream ws;
+    ws << wxString("bye");
+    ASSERT_WOSTREAM_EQUAL(L"bye", ws);
+}
+