diff ext/UnitTest++/src/tests/TestMemoryOutStream.cpp @ 37:0d325e9d5953

added unittest++ files into ext. Not hooked into build scripts yet
author jasoka@33b003aa-7bff-0310-803a-e67f0ece8222
date Sat, 12 Jul 2008 12:00:57 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ext/UnitTest++/src/tests/TestMemoryOutStream.cpp	Sat Jul 12 12:00:57 2008 +0000
@@ -0,0 +1,150 @@
+#include "../UnitTest++.h"
+
+#include "../MemoryOutStream.h"
+#include <cstring>
+
+using namespace UnitTest;
+
+namespace {
+
+TEST (DefaultIsEmptyString)
+{
+    MemoryOutStream const stream;
+    CHECK (stream.GetText() != 0);
+    CHECK_EQUAL ("", stream.GetText());
+}
+
+TEST (StreamingTextCopiesCharacters)
+{
+    MemoryOutStream stream;
+    stream << "Lalala";
+    CHECK_EQUAL ("Lalala", stream.GetText());
+}
+
+TEST (StreamingMultipleTimesConcatenatesResult)
+{
+    MemoryOutStream stream;
+    stream << "Bork" << "Foo" << "Bar";
+    CHECK_EQUAL ("BorkFooBar", stream.GetText());
+}
+
+TEST (StreamingIntWritesCorrectCharacters)
+{
+    MemoryOutStream stream;
+    stream << (int)123;
+    CHECK_EQUAL ("123", stream.GetText());
+}
+
+TEST (StreamingUnsignedIntWritesCorrectCharacters)
+{
+    MemoryOutStream stream;
+    stream << (unsigned int)123;
+    CHECK_EQUAL ("123", stream.GetText());
+}
+
+TEST (StreamingLongWritesCorrectCharacters)
+{
+    MemoryOutStream stream;
+    stream << (long)(-123);
+    CHECK_EQUAL ("-123", stream.GetText());
+}
+
+TEST (StreamingUnsignedLongWritesCorrectCharacters)
+{
+    MemoryOutStream stream;
+    stream << (unsigned long)123;
+    CHECK_EQUAL ("123", stream.GetText());
+}
+
+TEST (StreamingFloatWritesCorrectCharacters)
+{
+    MemoryOutStream stream;
+    stream << 3.1415f;
+	CHECK (std::strstr(stream.GetText(), "3.1415"));
+}
+
+TEST (StreamingDoubleWritesCorrectCharacters)
+{
+	MemoryOutStream stream;
+	stream << 3.1415;
+	CHECK (std::strstr(stream.GetText(), "3.1415"));
+}
+
+TEST (StreamingPointerWritesCorrectCharacters)
+{
+    MemoryOutStream stream;
+    int* p = (int*)0x1234;
+    stream << p;
+    CHECK (std::strstr(stream.GetText(), "1234"));
+}
+
+TEST (StreamingSizeTWritesCorrectCharacters)
+{
+    MemoryOutStream stream;
+    size_t const s = 53124;
+    stream << s;
+    CHECK_EQUAL ("53124", stream.GetText());
+}
+
+#ifdef UNITTEST_USE_CUSTOM_STREAMS
+
+TEST (StreamInitialCapacityIsCorrect)
+{
+    MemoryOutStream stream(MemoryOutStream::GROW_CHUNK_SIZE);
+    CHECK_EQUAL ((int)MemoryOutStream::GROW_CHUNK_SIZE, stream.GetCapacity());
+}
+
+TEST (StreamInitialCapacityIsMultipleOfGrowChunkSize)
+{
+    MemoryOutStream stream(MemoryOutStream::GROW_CHUNK_SIZE + 1);
+    CHECK_EQUAL ((int)MemoryOutStream::GROW_CHUNK_SIZE * 2, stream.GetCapacity());
+}
+
+
+TEST (ExceedingCapacityGrowsBuffer)
+{
+    MemoryOutStream stream(MemoryOutStream::GROW_CHUNK_SIZE);
+    stream << "012345678901234567890123456789";
+    char const* const oldBuffer = stream.GetText();
+    stream << "0123456789";
+    CHECK (oldBuffer != stream.GetText());
+}
+
+TEST (ExceedingCapacityGrowsBufferByGrowChunk)
+{
+    MemoryOutStream stream(MemoryOutStream::GROW_CHUNK_SIZE);
+    stream << "0123456789012345678901234567890123456789";
+    CHECK_EQUAL (MemoryOutStream::GROW_CHUNK_SIZE * 2, stream.GetCapacity());
+}
+
+TEST (WritingStringLongerThanCapacityFitsInNewBuffer)
+{
+    MemoryOutStream stream(8);
+    stream << "0123456789ABCDEF";
+    CHECK_EQUAL ("0123456789ABCDEF", stream.GetText());
+}
+
+TEST (WritingIntLongerThanCapacityFitsInNewBuffer)
+{
+    MemoryOutStream stream(8);
+    stream << "aaaa" << 123456;;
+    CHECK_EQUAL ("aaaa123456", stream.GetText());
+}
+
+TEST (WritingFloatLongerThanCapacityFitsInNewBuffer)
+{
+    MemoryOutStream stream(8);
+    stream << "aaaa" << 123456.0f;;
+    CHECK_EQUAL ("aaaa123456.000000f", stream.GetText());
+}
+
+TEST (WritingSizeTLongerThanCapacityFitsInNewBuffer)
+{
+    MemoryOutStream stream(8);
+    stream << "aaaa" << size_t(32145);
+    CHECK_EQUAL ("aaaa32145", stream.GetText());
+}
+
+#endif
+
+}