GgepBlockTest.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "Qt.h"
00024 #include "../GgepBlock.h"
00025 #include "Imports.cpp"
00026
00027 namespace Protocols {
00028 namespace Gnutella {
00029 namespace Packets {
00030 namespace Extensions {
00031 namespace Testing {
00032
00033 class GgepBlockTest : public CppUnit::TestFixture
00034 {
00035 CPPUNIT_TEST_SUITE(GgepBlockTest);
00036 CPPUNIT_TEST(testDefaultCtor);
00037 CPPUNIT_TEST(testCopyCtor);
00038 CPPUNIT_TEST(testAssign);
00039 CPPUNIT_TEST(testAddExtensionsGetExtensions);
00040 CPPUNIT_TEST(testOperatorEqualSizeDifferent);
00041 CPPUNIT_TEST(testOperatorEqualGgepDifferent);
00042 CPPUNIT_TEST(testOperatorEqualAllDifferent);
00043 CPPUNIT_TEST(testOperatorEqualRealEqual);
00044 CPPUNIT_TEST_SUITE_END();
00045
00046 public:
00047 GgepBlock createBlock(Ggeps::Unknown& ggep)
00048 {
00049 GgepBlock block;
00050 for(int i=0;i<10;i++)
00051 block.addExtension (ggep);
00052 return block;
00053 }
00054
00055
00056 void testDefaultCtor()
00057 {
00058 GgepBlock block;
00059 CPPUNIT_ASSERT (block.extensions().empty());
00060 }
00061
00062 void testCopyCtor()
00063 {
00064 GgepBlock block1;
00065 Ggeps::Unknown ggep ("unknown", "fortest", 0x00);
00066 block1.addExtension (ggep);
00067 GgepBlock block2 (block1);
00068 CPPUNIT_ASSERT (block1 == block2);
00069 }
00070
00071 void testAssign()
00072 {
00073 GgepBlock block1;
00074 Ggeps::Unknown ggep ("unknown", "fortest", 0x00);
00075 block1.addExtension (ggep);
00076 GgepBlock block2;
00077 block2 = block1;
00078 CPPUNIT_ASSERT (block1 == block2);
00079 }
00080
00081 void testAddExtensionsGetExtensions()
00082 {
00083 GgepBlock block;
00084 Ggeps::Unknown ggep ("unknown", "fortest", 0x00);
00085 for(int i=0;i<10;i++)
00086 block.addExtension (ggep);
00087 int j=0;
00088 foreach (const Ggep *extension, block.extensions()){
00089 CPPUNIT_ASSERT (*extension == ggep);
00090 j++;
00091 }
00092 CPPUNIT_ASSERT (j == 10);
00093 }
00094
00095 void scenarioOperatorEqual (const Ggep &lggep, int lsize,
00096 const Ggep &rggep, int rsize)
00097 {
00098 GgepBlock lblock;
00099
00100 for(int i=0; i<lsize; ++i)
00101 lblock.addExtension(lggep);
00102 GgepBlock rblock;
00103 for(int i=0; i<rsize; ++i)
00104 rblock.addExtension(rggep);
00105 bool result = lsize == rsize && lggep == rggep;
00106 CPPUNIT_ASSERT (( lblock == rblock) == result );
00107 }
00108
00109
00110 void testOperatorEqualGgepDifferent()
00111 {
00112 Ggeps::Unknown lggep ("unknown", "fortest", 0x00);
00113 Ggeps::Unknown rggep ("iknow", "fortdif", 0x00);
00114 scenarioOperatorEqual (lggep, 1, rggep, 1);
00115 }
00116
00117 void testOperatorEqualSizeDifferent()
00118 {
00119 Ggeps::Unknown lggep ("unknown", "fortest", 0x00);
00120 Ggeps::Unknown rggep ("unknown", "fortest", 0x00);
00121 scenarioOperatorEqual (lggep, 1, rggep, 2);
00122 }
00123
00124 void testOperatorEqualAllDifferent()
00125 {
00126 Ggeps::Unknown lggep ("unknown", "fortest", 0x00);
00127 Ggeps::Unknown rggep ("iknow", "fortdif", 0x00);
00128 scenarioOperatorEqual (lggep, 1, rggep, 2);
00129 }
00130
00131 void testOperatorEqualRealEqual()
00132 {
00133 Ggeps::Unknown lggep ("unknown", "fortest", 0x00);
00134 Ggeps::Unknown rggep ("unknown", "fortest", 0x00);
00135 scenarioOperatorEqual (lggep, 1, rggep, 1);
00136 scenarioOperatorEqual (lggep, 2, rggep, 2);
00137 }
00138
00139 };
00140 CPPUNIT_TEST_SUITE_REGISTRATION(GgepBlockTest);
00141
00142 }
00143 }
00144 }
00145 }
00146 }