update test case
diff --git a/test/test_app_socket.cc b/test/test_app_socket.cc
index f5b7384..c64cc6b 100644
--- a/test/test_app_socket.cc
+++ b/test/test_app_socket.cc
@@ -35,12 +35,11 @@
using namespace std;
using namespace boost;
-class TestStructApp {
+class TestSocketApp {
public:
map<string, string> data;
void set(string str1, string str2) {
data.insert(make_pair(str1, str2));
- cout << "Got: "<< str1 <<" => "<< str2 <<endl;
}
string toString(){
@@ -61,46 +60,70 @@
BOOST_AUTO_TEST_CASE (AppSocketTest)
{
- TestStructApp a1, a2, a3;
- boost::function<void(string, string)> f1 = bind(&TestStructApp::set, &a1, _1,
+ TestSocketApp a1, a2, a3;
+ boost::function<void(string, string)> f1 = bind(&TestSocketApp::set, &a1, _1,
_2);
- boost::function<void(string, string)> f2 = bind(&TestStructApp::set, &a2, _1,
+ boost::function<void(string, string)> f2 = bind(&TestSocketApp::set, &a2, _1,
_2);
- boost::function<void(string, string)> f3 = bind(&TestStructApp::set, &a3, _1,
+ boost::function<void(string, string)> f3 = bind(&TestSocketApp::set, &a3, _1,
_2);
string p1("/irl.cs.ucla.edu"), p2("/yakshi.org"), p3("/google.com");
SyncAppSocket s1(p1, f1), s2(p2, f2), s3(p3, f3);
+
// single source
- s1.publish(p1, 0, "Very funny Scotty, now beam down my clothes", 10);
+ string data0 = "Very funny Scotty, now beam down my clothes";
+ s1.publish(p1, 0, data0 , 10);
usleep(10000);
- BOOST_CHECK(a1.toString() != "");
+
+ // from code logic, we won't be fetching our own data
+ a1.set(p1 + "/0/0", data0);
BOOST_CHECK_EQUAL(a1.toString(), a2.toString());
BOOST_CHECK_EQUAL(a2.toString(), a3.toString());
// single source, multiple data at once
- s1.publish(p1, 0, "Yes, give me that ketchup", 10);
- s1.publish(p1, 0, "Don't look conspicuous, it draws fire", 10);
+ string data1 = "Yes, give me that ketchup";
+ string data2 = "Don't look conspicuous, it draws fire";
+ s1.publish(p1, 0, data1, 10);
+ s1.publish(p1, 0, data2, 10);
usleep(10000);
+
+ // from code logic, we won't be fetching our own data
+ a1.set(p1 + "/0/1", data1);
+ a1.set(p1 + "/0/2", data2);
BOOST_CHECK_EQUAL(a1.toString(), a2.toString());
BOOST_CHECK_EQUAL(a2.toString(), a3.toString());
// another single source
- s3.publish(p3, 0, "You surf the Internet, I surf the real world", 10);
+ string data3 = "You surf the Internet, I surf the real world";
+ string data4 = "I got a fortune cookie once that said 'You like Chinese food'";
+ string data5 = "Real men wear pink. Why? Because their wives make them";
+ s3.publish(p3, 0, data3, 10);
usleep(10000);
// another single source, multiple data at once
- s2.publish(p2, 0, "I got a fortune cookie once that said 'You like Chinese food'", 10);
- s2.publish(p2, 0, "Real men wear pink. Why? Because their wives make them", 10);
+ s2.publish(p2, 0, data4, 10);
+ s2.publish(p2, 0, data5, 10);
usleep(10000);
+
+ // from code logic, we won't be fetching our own data
+ a3.set(p3 + "/0/0", data3);
+ a2.set(p2 + "/0/0", data4);
+ a2.set(p2 + "/0/1", data5);
BOOST_CHECK_EQUAL(a1.toString(), a2.toString());
BOOST_CHECK_EQUAL(a2.toString(), a3.toString());
// not sure weither this is simultanous data generation from multiple sources
- s1.publish(p1, 0, "Shakespeare says: 'Prose before hos.'", 10);
- s2.publish(p2, 0, "Pick good people, talent never wears out", 10);
+ string data6 = "Shakespeare says: 'Prose before hos.'";
+ string data7 = "Pick good people, talent never wears out";
+ s1.publish(p1, 0, data6, 10);
+ s2.publish(p2, 0, data7, 10);
usleep(10000);
+
+ // from code logic, we won't be fetching our own data
+ a1.set(p1 + "/0/3", data6);
+ a2.set(p2 + "/0/2", data7);
BOOST_CHECK_EQUAL(a1.toString(), a2.toString());
BOOST_CHECK_EQUAL(a2.toString(), a3.toString());