From 972674173d176fb140f03943a0eac82ac7437589 Mon Sep 17 00:00:00 2001 From: chrisparker126 Date: Mon, 9 Dec 2013 22:24:49 +0000 Subject: [PATCH] added tests for gxs update items - need to fix to allow saving sync config git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs_finale@6936 b45a01b8-16f6-495d-af2f-9b41ad6348cc --- .../tests/serialiser/rsgxsupdateitem_test.cc | 110 ++++++++++++++++++ .../tests/serialiser/rsgxsupdateitem_test.h | 25 ++++ 2 files changed, 135 insertions(+) create mode 100644 libretroshare/src/tests/serialiser/rsgxsupdateitem_test.cc create mode 100644 libretroshare/src/tests/serialiser/rsgxsupdateitem_test.h diff --git a/libretroshare/src/tests/serialiser/rsgxsupdateitem_test.cc b/libretroshare/src/tests/serialiser/rsgxsupdateitem_test.cc new file mode 100644 index 000000000..395e5b7c3 --- /dev/null +++ b/libretroshare/src/tests/serialiser/rsgxsupdateitem_test.cc @@ -0,0 +1,110 @@ +/* + * rsgxsupdateitem_test.cc + * + * Created on: 9 Dec 2013 + * Author: crispy + */ + +#include "support.h" +#include "rsgxsupdateitem_test.h" + +INITTEST(); + +RsSerialType* init_item(RsGxsGrpUpdateItem& i) +{ + i.clear(); + i.grpUpdateTS = rand()%2424; + randString(SHORT_STR, i.peerId); + return new RsGxsUpdateSerialiser(0); +} + +RsSerialType* init_item(RsGxsMsgUpdateItem& i) +{ + i.clear(); + randString(SHORT_STR, i.peerId); + int numUpdates = rand()%123; + + std::string peer; + for(int j=0; j < numUpdates; j++) + { + randString(SHORT_STR, peer); + i.msgUpdateTS.insert(std::make_pair(peer, rand()%45)); + } + + return new RsGxsUpdateSerialiser(0); +} + +RsSerialType* init_item(RsGxsServerGrpUpdateItem& i) +{ + i.clear(); + i.grpUpdateTS = rand()%2424; + + return new RsGxsUpdateSerialiser(0); +} + +RsSerialType* init_item(RsGxsServerMsgUpdateItem& i) +{ + i.clear(); + randString(SHORT_STR, i.grpId); + i.msgUpdateTS = rand()%4252; + return new RsGxsUpdateSerialiser(0); +} + +bool operator ==(const RsGxsGrpUpdateItem& l, const RsGxsGrpUpdateItem& r) +{ + bool ok = l.grpUpdateTS == r.grpUpdateTS; + ok &= l.peerId == r.peerId; + + return ok; +} + +bool operator ==(const RsGxsMsgUpdateItem& l, const RsGxsMsgUpdateItem& r) +{ + bool ok = l.peerId == r.peerId; + + const std::map& lUp = l.msgUpdateTS, rUp = r.msgUpdateTS; + + ok &= lUp.size() == rUp.size(); + + std::map::const_iterator lit = lUp.begin(), rit; + + for(; lit != lUp.end(); lit++) + { + std::string key = lit->first; + if((rit = rUp.find(key)) != rUp.end()) + ok &= lit->second == rit->second; + else + return false; + } + + return ok; +} + +bool operator ==(const RsGxsServerGrpUpdateItem& l, + const RsGxsServerGrpUpdateItem& r) +{ + return l.grpUpdateTS == r.grpUpdateTS; +} + +bool operator ==(const RsGxsServerMsgUpdateItem& l, + const RsGxsServerMsgUpdateItem& r) +{ + bool ok = l.grpId == r.grpId; + ok &= l.msgUpdateTS == r.msgUpdateTS; + return ok; +} + + +int main() +{ + std::cerr << "RsGxsUpdateItem Tests" << std::endl; + + test_RsItem(RS_SERVICE_TYPE_PLUGIN_SIMPLE_FORUM); REPORT("Serialise/Deserialise RsGxsGrpUpdateItem"); + test_RsItem(RS_SERVICE_TYPE_PLUGIN_SIMPLE_FORUM); REPORT("Serialise/Deserialise RsGxsMsgUpdateItem"); + test_RsItem(RS_SERVICE_TYPE_PLUGIN_SIMPLE_FORUM); REPORT("Serialise/Deserialise RsGxsServerGrpUpdateItem"); + test_RsItem(RS_SERVICE_TYPE_PLUGIN_SIMPLE_FORUM); REPORT("Serialise/Deserialise RsGxsServerMsgUpdateItem"); + + FINALREPORT("RsGxsUpdateItem Tests"); + + return TESTRESULT(); +} diff --git a/libretroshare/src/tests/serialiser/rsgxsupdateitem_test.h b/libretroshare/src/tests/serialiser/rsgxsupdateitem_test.h new file mode 100644 index 000000000..57a686241 --- /dev/null +++ b/libretroshare/src/tests/serialiser/rsgxsupdateitem_test.h @@ -0,0 +1,25 @@ +/* + * rsgxsupdateitem_test.h + * + * Created on: 9 Dec 2013 + * Author: crispy + */ + +#ifndef RSGXSUPDATEITEM_TEST_H_ +#define RSGXSUPDATEITEM_TEST_H_ + +#include "serialiser/rsgxsupdateitems.h" +#include "support.h" + + +RsSerialType* init_item(RsGxsGrpUpdateItem& i); +RsSerialType* init_item(RsGxsMsgUpdateItem& i); +RsSerialType* init_item(RsGxsServerGrpUpdateItem& i); +RsSerialType* init_item(RsGxsServerMsgUpdateItem& i); + +bool operator==(const RsGxsGrpUpdateItem& l, const RsGxsGrpUpdateItem& r); +bool operator==(const RsGxsMsgUpdateItem& l, const RsGxsMsgUpdateItem& r); +bool operator==(const RsGxsServerGrpUpdateItem& l, const RsGxsServerGrpUpdateItem& r); +bool operator==(const RsGxsServerMsgUpdateItem& l, const RsGxsServerMsgUpdateItem& r); + +#endif /* RSGXSUPDATEITEM_TEST_H_ */