ByteArrayDiskWriterTest.cc 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #include "ByteArrayDiskWriter.h"
  2. #include <string>
  3. #include <cppunit/extensions/HelperMacros.h>
  4. using namespace std;
  5. class ByteArrayDiskWriterTest:public CppUnit::TestFixture {
  6. CPPUNIT_TEST_SUITE(ByteArrayDiskWriterTest);
  7. CPPUNIT_TEST(testWriteAndRead);
  8. CPPUNIT_TEST(testWriteAndRead2);
  9. CPPUNIT_TEST_SUITE_END();
  10. private:
  11. public:
  12. void setUp() {
  13. }
  14. void testWriteAndRead();
  15. void testWriteAndRead2();
  16. };
  17. CPPUNIT_TEST_SUITE_REGISTRATION( ByteArrayDiskWriterTest );
  18. void ByteArrayDiskWriterTest::testWriteAndRead() {
  19. ByteArrayDiskWriter bw;
  20. string msg1 = "Hello";
  21. bw.writeData((const unsigned char*)msg1.c_str(), msg1.size(), 0);
  22. // write at the end of stream
  23. string msg2 = " World";
  24. bw.writeData((const unsigned char*)msg2.c_str(), msg2.size(), 5);
  25. // write at the end of stream +1
  26. string msg3 = "!!";
  27. bw.writeData((const unsigned char*)msg3.c_str(), msg3.size(), 12);
  28. // write space at the 'hole'
  29. string msg4 = " ";
  30. bw.writeData((const unsigned char*)msg4.c_str(), msg4.size(), 11);
  31. char buf[100];
  32. int32_t c = bw.readData((unsigned char*)buf, sizeof(buf), 1);
  33. buf[c] = '\0';
  34. CPPUNIT_ASSERT_EQUAL(string("ello World !!"), string(buf));
  35. }
  36. void ByteArrayDiskWriterTest::testWriteAndRead2() {
  37. ByteArrayDiskWriter bw;
  38. string msg1 = "Hello World";
  39. bw.writeData((const unsigned char*)msg1.c_str(), msg1.size(), 0);
  40. string msg2 = "From Mars";
  41. bw.writeData((const unsigned char*)msg2.c_str(), msg2.size(), 6);
  42. char buf[100];
  43. int32_t c = bw.readData((unsigned char*)buf, sizeof(buf), 0);
  44. buf[c] = '\0';
  45. CPPUNIT_ASSERT_EQUAL(string("Hello From Mars"), string(buf));
  46. }