| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 | 
							- #include "SinkStreamFilter.h"
 
- #include <cstdlib>
 
- #include <iostream>
 
- #include <cppunit/extensions/HelperMacros.h>
 
- #include "Segment.h"
 
- #include "ByteArrayDiskWriter.h"
 
- #include "SinkStreamFilter.h"
 
- #include "MockSegment.h"
 
- namespace aria2 {
 
- class SinkStreamFilterTest:public CppUnit::TestFixture {
 
-   CPPUNIT_TEST_SUITE(SinkStreamFilterTest);
 
-   CPPUNIT_TEST(testTransform_with_length);
 
-   CPPUNIT_TEST(testTransform_without_length);
 
-   CPPUNIT_TEST_SUITE_END();
 
-   class MockSegment2:public MockSegment {
 
-   public:
 
-     MockSegment2(int32_t length):length(length), writtenLength(0) {}
 
-     virtual int64_t getLength() const CXX11_OVERRIDE
 
-     {
 
-       return length;
 
-     }
 
-     virtual int64_t getWrittenLength() const CXX11_OVERRIDE
 
-     {
 
-       return writtenLength;
 
-     }
 
-     virtual void updateWrittenLength(int64_t bytes) CXX11_OVERRIDE
 
-     {
 
-       writtenLength += bytes;
 
-     }
 
-     int64_t length;
 
-     int64_t writtenLength;
 
-   };
 
-   std::shared_ptr<SinkStreamFilter> filter_;
 
-   std::shared_ptr<ByteArrayDiskWriter> writer_;
 
-   std::shared_ptr<MockSegment2> segment_;
 
-   void clearWriter()
 
-   {
 
-     writer_->setString("");
 
-   }
 
- public:
 
-   void setUp()
 
-   {
 
-     writer_.reset(new ByteArrayDiskWriter());
 
-     filter_.reset(new SinkStreamFilter());
 
-     filter_->init();
 
-     segment_.reset(new MockSegment2(16));
 
-   }
 
-   void testTransform_with_length();
 
-   void testTransform_without_length();
 
- };
 
- CPPUNIT_TEST_SUITE_REGISTRATION( SinkStreamFilterTest );
 
- void SinkStreamFilterTest::testTransform_with_length()
 
- {
 
-   // If segment_->getLength() > 0, make sure that at most
 
-   // segment_->getLength()-segment_->getWrittenLength() bytes are
 
-   // written.
 
-   std::string msg("01234567890123456");
 
-   ssize_t r = filter_->transform
 
-     (writer_, segment_,
 
-      reinterpret_cast<const unsigned char*>(msg.c_str()), msg.size());
 
-   CPPUNIT_ASSERT_EQUAL((ssize_t)16, r);
 
- }
 
- void SinkStreamFilterTest::testTransform_without_length()
 
- {
 
-   // If segment_->getLength() == 0, all incoming bytes are written.
 
-   segment_->length = 0;
 
-   std::string msg("01234567890123456");
 
-   ssize_t r = filter_->transform
 
-     (writer_, segment_,
 
-      reinterpret_cast<const unsigned char*>(msg.c_str()), msg.size());
 
-   CPPUNIT_ASSERT_EQUAL((ssize_t)17, r);
 
- }
 
- } // namespace aria2
 
 
  |