Skip to content

Commit f4c0ef3

Browse files
committed
Start adding unit tests
1 parent fe468ab commit f4c0ef3

File tree

1 file changed

+32
-30
lines changed

1 file changed

+32
-30
lines changed

ArduinoCloudThing.h

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,39 @@ class ArduinoCloudPropertyGeneric
4343
virtual bool shouldBeUpdated() = 0;
4444
virtual void updateShadow() = 0;
4545
virtual bool canRead() = 0;
46-
virtual void printinfo() = 0;
46+
virtual void printinfo(Stream& stream) = 0;
4747
virtual ArduinoCloudPropertyGeneric& onUpdate(void(*fn)(void)) = 0;
4848
virtual ArduinoCloudPropertyGeneric& publishEvery(long seconds) = 0;
4949
void(*callback)(void) = NULL;
5050
};
5151

52+
class ArduinoCloudThing {
53+
public:
54+
ArduinoCloudThing();
55+
void begin();
56+
ArduinoCloudPropertyGeneric& addPropertyReal(int& property, String name);
57+
ArduinoCloudPropertyGeneric& addPropertyReal(bool& property, String name);
58+
ArduinoCloudPropertyGeneric& addPropertyReal(float& property, String name);
59+
ArduinoCloudPropertyGeneric& addPropertyReal(void* property, String name);
60+
ArduinoCloudPropertyGeneric& addPropertyReal(String& property, String name);
61+
// poll should return > 0 if something has changed
62+
int poll(uint8_t* data, size_t size);
63+
void decode(uint8_t * payload, size_t length);
64+
65+
private:
66+
void update();
67+
int checkNewData();
68+
int findPropertyByName(String &name);
69+
70+
ArduinoCloudPropertyGeneric* exists(String &name);
71+
72+
bool status = OFF;
73+
char uuid[33];
74+
75+
LinkedList<ArduinoCloudPropertyGeneric*> list;
76+
int currentListIndex = -1;
77+
};
78+
5279
template <typename T>
5380
class ArduinoCloudProperty : public ArduinoCloudPropertyGeneric
5481
{
@@ -67,8 +94,8 @@ class ArduinoCloudProperty : public ArduinoCloudPropertyGeneric
6794
return false;
6895
}
6996

70-
void printinfo() {
71-
Serial.println("name: " + name + " value: " + String(property) + " shadow: " + String(shadow_property) + " permission: " + String(permission));
97+
void printinfo(Stream& stream) {
98+
stream.println("name: " + name + " value: " + String(property) + " shadow: " + String(shadow_property) + " permission: " + String(permission));
7299
}
73100

74101
void updateShadow() {
@@ -183,6 +210,8 @@ class ArduinoCloudProperty : public ArduinoCloudPropertyGeneric
183210
T minDelta;
184211
permissionType permission = READWRITE;
185212
static int tagIndex;
213+
214+
friend ArduinoCloudThing;
186215
};
187216

188217
template <>
@@ -231,31 +260,4 @@ inline void ArduinoCloudProperty<char*>::appendValue(CborEncoder* mapEncoder) {
231260
cbor_encode_text_stringz(mapEncoder, property);
232261
};
233262

234-
class ArduinoCloudThing {
235-
public:
236-
ArduinoCloudThing();
237-
void begin();
238-
ArduinoCloudPropertyGeneric& addPropertyReal(int& property, String name);
239-
ArduinoCloudPropertyGeneric& addPropertyReal(bool& property, String name);
240-
ArduinoCloudPropertyGeneric& addPropertyReal(float& property, String name);
241-
ArduinoCloudPropertyGeneric& addPropertyReal(void* property, String name);
242-
ArduinoCloudPropertyGeneric& addPropertyReal(String& property, String name);
243-
// poll should return > 0 if something has changed
244-
int poll(uint8_t* data, size_t size);
245-
void decode(uint8_t * payload, size_t length);
246-
247-
private:
248-
void update();
249-
int checkNewData();
250-
int findPropertyByName(String &name);
251-
252-
ArduinoCloudPropertyGeneric* exists(String &name);
253-
254-
bool status = OFF;
255-
char uuid[33];
256-
257-
LinkedList<ArduinoCloudPropertyGeneric*> list;
258-
int currentListIndex = -1;
259-
};
260-
261263
#endif

0 commit comments

Comments
 (0)