1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #include "ShaVisitor.h"
- #include "MetaFileUtil.h"
- #include <string>
- #include <cppunit/extensions/HelperMacros.h>
- using namespace std;
- class ShaVisitorTest:public CppUnit::TestFixture {
- CPPUNIT_TEST_SUITE(ShaVisitorTest);
- CPPUNIT_TEST(testVisit);
- CPPUNIT_TEST(testVisitCompound);
- CPPUNIT_TEST_SUITE_END();
- private:
- public:
- void setUp() {
- }
- void testVisit();
- void testVisitCompound();
- };
- CPPUNIT_TEST_SUITE_REGISTRATION( ShaVisitorTest );
- string hexHash(unsigned char* md, int len) {
- char* temp = new char[len*2+1];
- for(int i = 0; i < len; i++) {
- sprintf(temp+i*2, "%02x", md[i]);
- }
- temp[len*2] = '\0';
- string h(temp);
- delete [] temp;
- return h;
- }
- void ShaVisitorTest::testVisit() {
- ShaVisitor v;
- Data d("test", 4);
- d.accept(&v);
- unsigned char md[20];
- int len = 0;
- v.getHash(md, len);
- string hashHex = hexHash(md, len);
- CPPUNIT_ASSERT_EQUAL(string("20482dadd856f5ac908848f731d9235d2891c41e"),
- hashHex);
- }
- void ShaVisitorTest::testVisitCompound() {
- ShaVisitor v;
- MetaEntry* e = MetaFileUtil::parseMetaFile("test.torrent");
- e->accept(&v);
- unsigned char md[20];
- int len = 0;
- v.getHash(md, len);
- string hashHex = hexHash(md, len);
- CPPUNIT_ASSERT_EQUAL(string("5a2bf55fb6ec71a9cd3e06537aa7795cafccffab"),
- hashHex);
- }
|