summaryrefslogtreecommitdiff
path: root/cpp/broker/test/ValueTest.cpp
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2006-09-28 14:20:54 +0000
committerAlan Conway <aconway@apache.org>2006-09-28 14:20:54 +0000
commit48ceacbfc49c179f63931c5c10d0342f62a01413 (patch)
treef8985e5d476a3c8e232e047f0fe5bd40c73b302d /cpp/broker/test/ValueTest.cpp
parentcaca23c5dc055d985fecfe188573104bc707ad9d (diff)
downloadqpid-python-48ceacbfc49c179f63931c5c10d0342f62a01413.tar.gz
New files missed from yesterdays checkin, apologies!
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@450861 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/broker/test/ValueTest.cpp')
-rw-r--r--cpp/broker/test/ValueTest.cpp99
1 files changed, 99 insertions, 0 deletions
diff --git a/cpp/broker/test/ValueTest.cpp b/cpp/broker/test/ValueTest.cpp
new file mode 100644
index 0000000000..181f0ced84
--- /dev/null
+++ b/cpp/broker/test/ValueTest.cpp
@@ -0,0 +1,99 @@
+#include "Value.h"
+#include <cppunit/TestCase.h>
+#include <cppunit/TextTestRunner.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include <cppunit/plugin/TestPlugIn.h>
+
+using namespace qpid::framing;
+
+
+// Allow CPPUNIT_EQUALS to print a Tokens.
+// TODO aconway 2006-09-19: Make it a template and put it in a shared test lib.
+//
+template <class T>
+CppUnit::OStringStream& operator <<(CppUnit::OStringStream& out,
+ const ValueOps<T>& v)
+{
+ out << v.getValue();
+ return out;
+}
+
+
+class ValueTest : public CppUnit::TestCase
+{
+ CPPUNIT_TEST_SUITE(ValueTest);
+ CPPUNIT_TEST(testStringValueEquals);
+ CPPUNIT_TEST(testIntegerValueEquals);
+ CPPUNIT_TEST(testDecimalValueEquals);
+ CPPUNIT_TEST(testFieldTableValueEquals);
+ CPPUNIT_TEST_SUITE_END();
+
+ StringValue s;
+ IntegerValue i;
+ DecimalValue d;
+ FieldTableValue ft;
+ EmptyValue e;
+
+ public:
+ ValueTest() :
+ s("abc"),
+ i(42),
+ d(1234,2)
+
+ {
+ ft.getValue().setString("foo", "FOO");
+ ft.getValue().setInt("magic", 7);
+ }
+
+ void testStringValueEquals()
+ {
+
+ CPPUNIT_ASSERT(StringValue("abc") == s);
+ CPPUNIT_ASSERT(s != StringValue("foo"));
+ CPPUNIT_ASSERT(s != e);
+ CPPUNIT_ASSERT(e != d);
+ CPPUNIT_ASSERT(e != ft);
+ }
+
+ void testIntegerValueEquals()
+ {
+ CPPUNIT_ASSERT(IntegerValue(42) == i);
+ CPPUNIT_ASSERT(IntegerValue(5) != i);
+ CPPUNIT_ASSERT(i != e);
+ CPPUNIT_ASSERT(i != d);
+ }
+
+ void testDecimalValueEquals()
+ {
+ CPPUNIT_ASSERT(DecimalValue(1234, 2) == d);
+ CPPUNIT_ASSERT(DecimalValue(12345, 2) != d);
+ CPPUNIT_ASSERT(DecimalValue(1234, 3) != d);
+ CPPUNIT_ASSERT(d != s);
+ }
+
+
+ void testFieldTableValueEquals()
+ {
+ CPPUNIT_ASSERT_EQUAL(std::string("FOO"),
+ ft.getValue().getString("foo"));
+ CPPUNIT_ASSERT_EQUAL(7, ft.getValue().getInt("magic"));
+
+ FieldTableValue f2;
+ CPPUNIT_ASSERT(ft != f2);
+ f2.getValue().setString("foo", "FOO");
+ CPPUNIT_ASSERT(ft != f2);
+ f2.getValue().setInt("magic", 7);
+ CPPUNIT_ASSERT_EQUAL(ft,f2);
+ CPPUNIT_ASSERT(ft == f2);
+ f2.getValue().setString("foo", "BAR");
+ CPPUNIT_ASSERT(ft != f2);
+ CPPUNIT_ASSERT(ft != i);
+ }
+
+};
+
+
+// Make this test suite a plugin.
+CPPUNIT_PLUGIN_IMPLEMENT();
+CPPUNIT_TEST_SUITE_REGISTRATION(ValueTest);
+