PeerInfoTest.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 "../PeerInfo.h"
00025 #include "Imports.cpp"
00026
00027 namespace Protocols {
00028 namespace BitTorrent {
00029 namespace Trackers {
00030 namespace Testing {
00031
00033
00035 class PeerInfoTest : public CppUnit::TestFixture
00036 {
00037 CPPUNIT_TEST_SUITE (PeerInfoTest);
00038 CPPUNIT_TEST (testDefaultCtorCreatesEmptyPeerInfo);
00039 CPPUNIT_TEST (testCtorCreatesCorrectPeerInfo);
00040 CPPUNIT_TEST (testCompareTwoEqualNonEmptyPeerInfos);
00041 CPPUNIT_TEST (testCompareTwoEqualEmptyPeerInfos);
00042 CPPUNIT_TEST (testCompareTwoDifferentNonEmptyPeerInfos);
00043 CPPUNIT_TEST (testCompareEmptyAndNonEmptyPeerInfos);
00044 CPPUNIT_TEST (testCopyCtor);
00045 CPPUNIT_TEST (testAssignment);
00046 CPPUNIT_TEST (testModifyingACopyDoesNotChangeTheOriginal);
00047 CPPUNIT_TEST (testSetHostSetsHostCorrectly);
00048 CPPUNIT_TEST (testSetPortSetsPortCorrectly);
00049 CPPUNIT_TEST (testSetPeerIdSetsPeerIdCorrectly);
00050 CPPUNIT_TEST (testSetPeerIdTwice);
00051 CPPUNIT_TEST (testToUriEmptyPeerInfo);
00052 CPPUNIT_TEST (testToUriEverythingSet);
00053 CPPUNIT_TEST (testFromUriEmptyUri);
00054 CPPUNIT_TEST (testFromUriPortUnspecified);
00055 CPPUNIT_TEST (testFromUriPeerIdUnspecified);
00056 CPPUNIT_TEST (testFromUriEverythingSpecified);
00057 CPPUNIT_TEST_SUITE_END();
00058
00059 public:
00061 void testDefaultCtorCreatesEmptyPeerInfo()
00062 {
00063 PeerInfo peerInfo;
00064
00065 CPPUNIT_ASSERT (peerInfo.host() == "0.0.0.0");
00066 CPPUNIT_ASSERT (peerInfo.port() == 0);
00067 CPPUNIT_ASSERT (peerInfo.peerId() == PeerInfo::PeerId());
00068 }
00069
00071 void testCtorCreatesCorrectPeerInfo()
00072 {
00073 PeerInfo peerInfo ("145.64.45.123", 6881,
00074 PeerInfo::PeerId ("gf2vxzmskf9rocmglhon"));
00075
00076 CPPUNIT_ASSERT (peerInfo.host() == QByteArray ("145.64.45.123"));
00077 CPPUNIT_ASSERT (peerInfo.port() == 6881);
00078 CPPUNIT_ASSERT (peerInfo.peerId() ==
00079 PeerInfo::PeerId ("gf2vxzmskf9rocmglhon"));
00080 }
00081
00083 void testCompareTwoEqualNonEmptyPeerInfos()
00084 {
00085 PeerInfo peerInfo1 ("145.64.45.123", 6881,
00086 PeerInfo::PeerId ("gf2vxzmskf9rocmglhon"));
00087 PeerInfo peerInfo2 ("145.64.45.123", 6881,
00088 PeerInfo::PeerId ("gf2vxzmskf9rocmglhon"));
00089
00090 CPPUNIT_ASSERT (peerInfo1 == peerInfo2);
00091 CPPUNIT_ASSERT (!(peerInfo1 != peerInfo2));
00092 }
00093
00095 void testCompareTwoEqualEmptyPeerInfos()
00096 {
00097 PeerInfo peerInfo1;
00098 PeerInfo peerInfo2;
00099
00100 CPPUNIT_ASSERT (peerInfo1 == peerInfo2);
00101 CPPUNIT_ASSERT (!(peerInfo1 != peerInfo2));
00102 }
00103
00105 void testCompareTwoDifferentNonEmptyPeerInfos()
00106 {
00107 PeerInfo peerInfo1 ("127.0.0.1", 6880,
00108 PeerInfo::PeerId ("gf2vxzmskf9rocmglhon"));
00109 PeerInfo peerInfo2 ("145.64.45.123", 6881,
00110 PeerInfo::PeerId ("af2vxzmskf9rocmglhon"));
00111
00112 CPPUNIT_ASSERT (peerInfo1 != peerInfo2);
00113 CPPUNIT_ASSERT (!(peerInfo1 == peerInfo2));
00114 }
00115
00117 void testCompareEmptyAndNonEmptyPeerInfos()
00118 {
00119 PeerInfo peerInfo1 ("127.0.0.1", 6880,
00120 PeerInfo::PeerId ("gf2vxzmskf9rocmglhon"));
00121 PeerInfo peerInfo2;
00122
00123 CPPUNIT_ASSERT (peerInfo1 != peerInfo2);
00124 CPPUNIT_ASSERT (!(peerInfo1 == peerInfo2));
00125 }
00126
00128 void testCopyCtor()
00129 {
00130 PeerInfo peerInfo1 ("127.0.0.1", 6880,
00131 PeerInfo::PeerId ("gf2vxzmskf9rocmglhon"));
00132 PeerInfo peerInfo2 (peerInfo1);
00133
00134 CPPUNIT_ASSERT (peerInfo1 == peerInfo2);
00135 }
00136
00138 void testAssignment()
00139 {
00140 PeerInfo peerInfo1 ("127.0.0.1", 6880,
00141 PeerInfo::PeerId ("gf2vxzmskf9rocmglhon"));
00142 PeerInfo peerInfo2;
00143 peerInfo2 = peerInfo1;
00144
00145 CPPUNIT_ASSERT (peerInfo1 == peerInfo2);
00146 }
00147
00149 void testModifyingACopyDoesNotChangeTheOriginal()
00150 {
00151 PeerInfo peerInfo1 ("127.0.0.1", 6880,
00152 PeerInfo::PeerId ("gf2vxzmskf9rocmglhon"));
00153 PeerInfo peerInfo2;
00154 peerInfo2 = peerInfo1;
00155
00156
00157 peerInfo2 = PeerInfo ("12.89.9.1", 6881,
00158 PeerInfo::PeerId ("xvsf3yr64hfgxbzlbnvd"));
00159
00160 CPPUNIT_ASSERT (peerInfo1 != peerInfo2);
00161 }
00162
00164 void testSetHostSetsHostCorrectly()
00165 {
00166 PeerInfo peerInfo;
00167 peerInfo.setHost ("127.0.0.1");
00168
00169 CPPUNIT_ASSERT (peerInfo.host() == QByteArray ("127.0.0.1"));
00170 }
00171
00173 void testSetPortSetsPortCorrectly()
00174 {
00175 PeerInfo peerInfo;
00176 peerInfo.setPort (6882);
00177
00178 CPPUNIT_ASSERT (peerInfo.port() == 6882);
00179 }
00180
00182 void testSetPeerIdSetsPeerIdCorrectly()
00183 {
00184 PeerInfo peerInfo;
00185 PeerInfo::PeerId peerId ("xvsf3yr64hfgxbzlbnvd");
00186 peerInfo.setPeerId (peerId);
00187
00188 CPPUNIT_ASSERT (peerInfo.peerId() == peerId);
00189 }
00190
00195 void testSetPeerIdTwice()
00196 {
00197 PeerInfo peerInfo;
00198 PeerInfo::PeerId peerId1 ("xvsf3yr64hfgxbzlbnvd");
00199 peerInfo.setPeerId (peerId1);
00200 PeerInfo::PeerId peerId2 ("j7f53fx0fknv713sxlo9");
00201 peerInfo.setPeerId (peerId2);
00202
00203 CPPUNIT_ASSERT (peerInfo.peerId() == peerId2);
00204 }
00205
00207 void testToUriEmptyPeerInfo()
00208 {
00209 PeerInfo peerInfo;
00210 Uri peerInfoAsUri;
00211 peerInfoAsUri.setScheme ("bt-peer");
00212 peerInfoAsUri.setAuthority (QByteArray(), "0.0.0.0", "0");
00213 peerInfoAsUri.appendQueryItem ("id", PeerInfo::PeerId().toQByteArray());
00214
00215 CPPUNIT_ASSERT (peerInfo.toUri() == peerInfoAsUri);
00216 }
00217
00219 void testToUriEverythingSet()
00220 {
00221 PeerInfo peerInfo ("127.0.0.1", 6880,
00222 PeerInfo::PeerId ("gf2vxzmskf9rocmglhon"));
00223
00224 CPPUNIT_ASSERT (peerInfo.toUri() == Uri::fromUnencoded (
00225 "bt-peer://127.0.0.1:6880?id=gf2vxzmskf9rocmglhon"));
00226 }
00227
00229 void testFromUriEmptyUri()
00230 {
00231 CPPUNIT_ASSERT (PeerInfo() == PeerInfo::fromUri (
00232 Uri::fromUnencoded ("bt-peer:")));
00233 }
00234
00236 void testFromUriPortUnspecified()
00237 {
00238 PeerInfo peerInfo ("127.0.0.1", 0,
00239 PeerInfo::PeerId ("gf2vxzmskf9rocmglhon"));
00240
00241 CPPUNIT_ASSERT (peerInfo == PeerInfo::fromUri (Uri::fromUnencoded (
00242 "bt-peer://127.0.0.1?id=gf2vxzmskf9rocmglhon")));
00243 }
00244
00246 void testFromUriPeerIdUnspecified()
00247 {
00248 PeerInfo peerInfo ("127.0.0.1", 6880,
00249 PeerInfo::PeerId());
00250
00251 CPPUNIT_ASSERT (peerInfo == PeerInfo::fromUri (Uri::fromUnencoded (
00252 "bt-peer://127.0.0.1:6880")));
00253 }
00254
00256 void testFromUriEverythingSpecified()
00257 {
00258 PeerInfo peerInfo ("127.0.0.1", 6880,
00259 PeerInfo::PeerId ("gf2vxzmskf9rocmglhon"));
00260
00261 CPPUNIT_ASSERT (peerInfo == PeerInfo::fromUri (Uri::fromUnencoded (
00262 "bt-peer://127.0.0.1:6880?id=gf2vxzmskf9rocmglhon")));
00263 }
00264 };
00265
00266 CPPUNIT_TEST_SUITE_REGISTRATION(PeerInfoTest);
00267
00268 }
00269 }
00270 }
00271 }