Skip to content

Commit a870174

Browse files
committed
Simple integration test for yun SDK
1 parent 5ae1fac commit a870174

File tree

2 files changed

+223
-0
lines changed

2 files changed

+223
-0
lines changed

examples/test/Temperature.json

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
{ "results": [
2+
{
3+
"ACL": {
4+
"*": {
5+
"read": true,
6+
"write": true
7+
},
8+
"bgneIdDXc0": {
9+
"read": true,
10+
"write": true
11+
}
12+
},
13+
"createdAt": "2015-03-23T23:28:35.710Z",
14+
"leverDown": true,
15+
"objectId": "I4S0FgSeqT",
16+
"s": "1",
17+
"score": 3,
18+
"temperature": 88,
19+
"updatedAt": "2015-03-25T01:35:56.238Z"
20+
},
21+
{
22+
"ACL": {
23+
"*": {
24+
"write": true
25+
}
26+
},
27+
"createdAt": "2015-03-23T22:53:50.156Z",
28+
"leverDown": false,
29+
"objectId": "E9A7EhqHTT",
30+
"s": "1",
31+
"score": 4,
32+
"temperature": 10,
33+
"updatedAt": "2015-03-24T08:15:37.573Z"
34+
},
35+
{
36+
"ACL": {
37+
"*": {
38+
"read": true,
39+
"write": true
40+
}
41+
},
42+
"createdAt": "2015-03-23T16:40:25.288Z",
43+
"leverDown": true,
44+
"objectId": "EFi7f7M9KU",
45+
"s": "foo",
46+
"score": 5,
47+
"temperature": 88,
48+
"updatedAt": "2015-03-25T01:36:46.318Z"
49+
},
50+
{
51+
"ACL": {},
52+
"createdAt": "2015-03-24T08:03:59.537Z",
53+
"objectId": "Kb7PBSVth3",
54+
"s": "2",
55+
"temperature": 4,
56+
"updatedAt": "2015-03-25T01:12:29.181Z"
57+
},
58+
{
59+
"ACL": {},
60+
"createdAt": "2015-03-24T08:03:53.470Z",
61+
"objectId": "vfJRozV2u6",
62+
"s": "1",
63+
"temperature": 5,
64+
"updatedAt": "2015-03-25T01:12:25.602Z"
65+
},
66+
{
67+
"ACL": {},
68+
"createdAt": "2015-03-24T07:10:44.586Z",
69+
"objectId": "69HYdAk1tj",
70+
"s": "1",
71+
"temperature": 6,
72+
"updatedAt": "2015-03-25T01:12:21.840Z"
73+
},
74+
{
75+
"ACL": {
76+
"*": {
77+
"write": true
78+
},
79+
"bgneIdDXc0": {
80+
"read": true,
81+
"write": true
82+
}
83+
},
84+
"createdAt": "2015-03-24T00:11:05.908Z",
85+
"objectId": "qWEoK5NrGq",
86+
"s": "1",
87+
"score": 1,
88+
"temperature": 100,
89+
"updatedAt": "2015-03-24T09:35:24.376Z"
90+
},
91+
{
92+
"ACL": {
93+
"*": {
94+
"write": true
95+
},
96+
"bgneIdDXc0": {
97+
"read": true,
98+
"write": true
99+
}
100+
},
101+
"createdAt": "2015-03-24T00:08:37.847Z",
102+
"objectId": "bjb0EZaoFr",
103+
"s": "1",
104+
"score": 2,
105+
"temperature": 999,
106+
"updatedAt": "2015-03-25T01:22:14.616Z"
107+
}
108+
] }

examples/test/Test.ino

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
#include <Parse.h>
2+
#include <Bridge.h>
3+
#include <assert.h>
4+
5+
/***** Integration Tests of Parse Arduino Yún SDK *****/
6+
// NOTE: import Tempereture.json into yoru Parse app before running the test
7+
8+
ParseClient client;
9+
int i = 0; // testId for a specific test
10+
11+
void basicObjectTest() {
12+
Serial.println("basic object operation test");
13+
14+
Serial.println("create...");
15+
ParseObjectCreate create;
16+
create.setClassName("Temperature");
17+
create.add("temperature", 175.0);
18+
create.add("leverDown", true);
19+
ParseResponse createResponse = create.send();
20+
char* objectId = new char[10];
21+
strcpy(objectId, createResponse.getString("objectId"));
22+
assert(createResponse.getErrorCode() == 0);
23+
createResponse.close();
24+
25+
Serial.println("update...");
26+
ParseObjectUpdate update;
27+
update.setClassName("Temperature");
28+
update.setObjectId(objectId);
29+
update.add("temperature", 100);
30+
ParseResponse updateResponse = update.send();
31+
assert(updateResponse.getErrorCode() == 0);
32+
updateResponse.close();
33+
34+
Serial.println("get...");
35+
ParseObjectGet get;
36+
get.setClassName("Temperature");
37+
get.setObjectId(objectId);
38+
ParseResponse getResponse = get.send();
39+
double temp = getResponse.getDouble("temperature");
40+
assert(temp == 100);
41+
getResponse.close();
42+
43+
Serial.println("delete...");
44+
ParseObjectDelete del;
45+
del.setClassName("Temperature");
46+
del.setObjectId(objectId);
47+
ParseResponse delResponse = del.send();
48+
String expectedResp = "{}\n";
49+
assert(expectedResp.equals(delResponse.getJSONBody()));
50+
delResponse.close();
51+
52+
Serial.println("test passed\n");
53+
}
54+
55+
void objectDataTypesTest() {
56+
Serial.println("data types test");
57+
58+
ParseObjectCreate create;
59+
create.setClassName("TestObject");
60+
create.addGeoPoint("location", 40.0, -30.0);
61+
create.addJSONValue("dateField", "{ \"__type\": \"Date\", \"iso\": \"2011-08-21T18:02:52.249Z\" }");
62+
create.addJSONValue("arrayField", "[ 30, \"s\" ]");
63+
create.addJSONValue("emptyField", "null");
64+
ParseResponse createResponse = create.send();
65+
assert(createResponse.getErrorCode() == 0);
66+
createResponse.close();
67+
68+
Serial.println("test passed\n");
69+
}
70+
71+
void queryTest() {
72+
Serial.println("query test");
73+
74+
ParseQuery query;
75+
query.setClassName("Temperature");
76+
query.whereEqualTo("temperature", 88);
77+
query.setLimit(2);
78+
query.setSkip(0);
79+
query.setKeys("temperature");
80+
ParseResponse response = query.send();
81+
82+
int countOfResults = response.count();
83+
assert(countOfResults == 2);
84+
while(response.nextObject()) {
85+
assert(88 == response.getDouble("temperature"));
86+
}
87+
response.close();
88+
89+
Serial.println("test passed\n");
90+
}
91+
92+
void setup() {
93+
// Initialize digital pin 13 as an output.
94+
pinMode(13, OUTPUT);
95+
96+
// Initialize Bridge
97+
Bridge.begin();
98+
99+
// Initialize Serial
100+
Serial.begin(9600);
101+
102+
while (!Serial); // wait for a serial connection
103+
104+
// Initialize Parse
105+
client.begin("", "");
106+
}
107+
108+
void loop() {
109+
if(i == 0) basicObjectTest();
110+
else if (i == 1) objectDataTypesTest();
111+
else if (i == 2) queryTest();
112+
else while(1);
113+
114+
i++;
115+
}

0 commit comments

Comments
 (0)