Testing struct for array and list (Java and C++); fixing bugs
[iot2.git] / iotjava / iotrmi / C++ / basics / TestClass_Stub.cpp
1 #include <iostream>
2 #include <string>
3 #include "TestClassComplete_Stub.hpp"
4
5 using namespace std;
6
7 int main(int argc, char *argv[])
8 {
9
10         int port = 5010;
11         const char* address = "localhost";
12         //const char* address = "128.195.136.170";      // dc-9.calit2.uci.edu
13         int rev = 0;
14         bool bResult = false;
15         vector<int> ports;
16         ports.push_back(12345);
17
18         TestClassComplete *tcStub = new TestClassComplete_Stub(port, address, rev, &bResult, ports);
19         cout << "==== SINGLE ====" << endl;
20         cout << "Return value: " << tcStub->getByte(68) << endl;
21         cout << "Return value: " << tcStub->getShort(1234) << endl;
22         cout << "Return value: " << tcStub->getLong(12345678) << endl;
23         cout << "Return value: " << tcStub->getFloat(12.345) << endl;
24         cout << "Return value: " << tcStub->getDouble(12345.678) << endl;
25         cout << "Return value: " << tcStub->getBoolean(true) << endl;
26         cout << "Return value: " << tcStub->getChar('c') << endl;
27         cout << "==== ARRAY ====" << endl;
28         vector<char> in1;
29         in1.push_back(68);
30         in1.push_back(69);
31         cout << "Return value: " << tcStub->getByteArray(in1)[0] << ", " << tcStub->getByteArray(in1)[1] << endl;
32         vector<short> in2;
33         in2.push_back(1234);
34         in2.push_back(1235);
35         cout << "Return value: " << tcStub->getShortArray(in2)[0] << ", "  << tcStub->getShortArray(in2)[1] << endl;
36         vector<int64_t> in3;
37         in3.push_back(12345678);
38         in3.push_back(12356782);
39         cout << "Return value: " << tcStub->getLongArray(in3)[0] << ", "  << tcStub->getLongArray(in3)[1] << endl;
40         vector<float> in4;
41         in4.push_back(12.345);
42         in4.push_back(12.346);
43         cout << "Return value: " << tcStub->getFloatArray(in4)[0] << ", "  << tcStub->getFloatArray(in4)[1] << endl;
44         vector<double> in5;
45         in5.push_back(12345.678);
46         in5.push_back(12345.543);
47         cout << "Return value: " << tcStub->getDoubleArray(in5)[0] << ", "  << tcStub->getDoubleArray(in5)[1] << endl;
48         vector<bool> in6;
49         in6.push_back(true);
50         in6.push_back(false);
51         cout << "Return value: " << tcStub->getBooleanArray(in6)[0] << ", "  << tcStub->getBooleanArray(in6)[1] << endl;
52         vector<char> in7;
53         in7.push_back('c');
54         in7.push_back('e');
55         cout << "Return value: " << tcStub->getCharArray(in7)[0] << ", "  << tcStub->getCharArray(in7)[1] << endl;
56         cout << "==== VECTOR/LIST ====" << endl;
57         vector<char> inl1;
58         inl1.push_back(68);
59         inl1.push_back(69);
60         cout << "Return value: " << tcStub->getByteList(inl1)[0] << ", " << tcStub->getByteList(inl1)[1] << endl;
61         vector<short> inl2;
62         inl2.push_back(1234);
63         inl2.push_back(1235);
64         cout << "Return value: " << tcStub->getShortList(inl2)[0] << ", "  << tcStub->getShortList(inl2)[1] << endl;
65         vector<int64_t> inl3;
66         inl3.push_back(12345678);
67         inl3.push_back(12356782);
68         cout << "Return value: " << tcStub->getLongList(inl3)[0] << ", "  << tcStub->getLongList(inl3)[1] << endl;
69         vector<float> inl4;
70         inl4.push_back(12.345);
71         inl4.push_back(12.346);
72         cout << "Return value: " << tcStub->getFloatList(inl4)[0] << ", "  << tcStub->getFloatList(inl4)[1] << endl;
73         vector<double> inl5;
74         inl5.push_back(12345.678);
75         inl5.push_back(12345.543);
76         cout << "Return value: " << tcStub->getDoubleList(inl5)[0] << ", "  << tcStub->getDoubleList(inl5)[1] << endl;
77         vector<bool> inl6;
78         inl6.push_back(true);
79         inl6.push_back(false);
80         cout << "Return value: " << tcStub->getBooleanList(inl6)[0] << ", "  << tcStub->getBooleanList(inl6)[1] << endl;
81         vector<char> inl7;
82         inl7.push_back('c');
83         inl7.push_back('e');
84         cout << "Return value: " << tcStub->getCharList(inl7)[0] << ", "  << tcStub->getCharList(inl7)[1] << endl;
85         cout << "==== ENUM ====" << endl;
86         Enum en;
87         en = APPLE;
88         Enum res = tcStub->handleEnum(en);
89         cout << "Return value: " << res << endl;
90         vector<Enum> vecEn;
91         vecEn.push_back(APPLE);
92         vecEn.push_back(ORANGE);
93         vecEn.push_back(APPLE);
94         vecEn.push_back(GRAPE);
95         vector<Enum> vecRes = tcStub->handleEnumArray(vecEn);
96         for (Enum en : vecRes) {
97                 cout << "Enum value: " << en << endl;
98         }
99         vector<Enum> vecRes2 = tcStub->handleEnumList(vecEn);
100         for (Enum en : vecRes2) {
101                 cout << "Enum value: " << en << endl;
102         }
103         cout << "==== STRUCT ====" << endl;
104         Struct str;
105         str.name = "Rahmadi";
106         str.value = 0.123;
107         str.year = 2016;
108         Struct resStr = tcStub->handleStruct(str);
109         cout << "Name: " << resStr.name << endl;
110         cout << "Value:" << resStr.value << endl;
111         cout << "Year" << resStr.year << endl;
112         Struct str2;
113         str2.name = "Trimananda";
114         str2.value = 0.124;
115         str2.year = 2017;
116         vector<Struct> vecStr;
117         vecStr.push_back(str);
118         vecStr.push_back(str2);
119         vector<Struct> vecRetStr = tcStub->handleStructArray(vecStr);
120         for (Struct st : vecRetStr) {
121                 cout << "Name: " << st.name << endl;
122                 cout << "Value:" << st.value << endl;
123                 cout << "Year" << st.year << endl;
124         }
125         vector<Struct> vecRetStr2 = tcStub->handleStructList(vecStr);
126         for (Struct st : vecRetStr2) {
127                 cout << "Name: " << st.name << endl;
128                 cout << "Value:" << st.value << endl;
129                 cout << "Year" << st.year << endl;
130         }
131
132         cout << "==== OTHERS ====" << endl;
133         cout << "Return value: " << tcStub->getA() << endl;
134         cout << "Return value: " << tcStub->setAndGetA(123) << endl;
135         cout << "Return value: " << tcStub->setACAndGetA("string", 123) << endl;
136         vector<string> input;
137         input.push_back("123");
138         input.push_back("456");
139         input.push_back("987");
140
141         cout << "Return value: " << tcStub->sumArray(input) << endl;
142         
143         return 0;
144 }