Skip to content

Commit 3bd7a78

Browse files
committed
Use proxy in tests
1 parent 255b93c commit 3bd7a78

7 files changed

Lines changed: 63 additions & 50 deletions

File tree

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ default_target: all
33
all: clean build test clean
44

55
cmake:
6-
@cmake $(CURDIR) -B$(CURDIR)/build
6+
@cmake -DCMAKE_BUILD_TYPE=Debug $(CURDIR) -B$(CURDIR)/build
77

88
build: cmake
99
@cd $(CURDIR)/build && make all

src/ClientFake.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
#include "ArduinoFake.h"
22
#include "ClientFake.h"
3+
#include <stdexcept>
34

45
ClientFake* getClientFakeProxy(Client* client)
56
{
67
if (ClientFakeProxy* p = dynamic_cast<ClientFakeProxy*>(client)) {
78
return p->clientFake;
89
}
910

10-
return ArduinoFakeInstance(Client, client);
11+
throw std::runtime_error("Invalid fake instance");
1112
}
1213

1314
int Client::connect(IPAddress ip, uint16_t port)

src/ClientFake.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@ struct ClientFake : public StreamFake
2929
virtual uint8_t connected() = 0;
3030
};
3131

32-
class ClientFakeProxy : public Client
32+
class ClientFakeProxy : public StreamFakeProxy, public Client
3333
{
3434
public:
3535
ClientFake* clientFake;
3636

37-
ClientFakeProxy(ClientFake* clientFake)
37+
ClientFakeProxy(ClientFake* fake) : StreamFakeProxy(fake)
3838
{
39-
clientFake = clientFake;
39+
clientFake = fake;
4040
}
4141

4242
int connect(IPAddress ip, uint16_t port)

src/StreamFake.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ class StreamFakeProxy : public Stream, public PrintFakeProxy
4343
public:
4444
StreamFake* streamFake;
4545

46-
StreamFakeProxy(StreamFake* streamFake) : PrintFakeProxy(streamFake)
46+
StreamFakeProxy(StreamFake* fake) : PrintFakeProxy(fake)
4747
{
48-
streamFake = streamFake;
48+
streamFake = fake;
4949
}
5050

5151
size_t write(uint8_t value)

test/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ int main(int argc, char **argv)
3232
RUN_TEST_GROUP(PrintTest);
3333
RUN_TEST_GROUP(StreamTest);
3434
RUN_TEST_GROUP(SerialTest);
35-
//RUN_TEST_GROUP(ClientTest);
35+
RUN_TEST_GROUP(ClientTest);
3636

3737
UNITY_END();
3838

test/test_client.h

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,13 @@ namespace ClientTest
5252
IPAddress ipAddress1(62, 145, 182, 225);
5353
IPAddress ipAddress2(221, 155, 131, 19);
5454

55-
TEST_ASSERT_EQUAL(1, ArduinoFakeInstance(Client)->connect("localhost", 8080));
56-
TEST_ASSERT_EQUAL(0, ArduinoFakeInstance(Client)->connect("localhost", 80));
55+
Client* client = ArduinoFakeMock(Client);
56+
57+
TEST_ASSERT_EQUAL(1, client->connect("localhost", 8080));
58+
TEST_ASSERT_EQUAL(0, client->connect("localhost", 80));
5759

58-
TEST_ASSERT_EQUAL(0, ArduinoFakeInstance(Client)->connect(ipAddress1, 8080));
59-
TEST_ASSERT_EQUAL(1, ArduinoFakeInstance(Client)->connect(ipAddress2, 8080));
60+
TEST_ASSERT_EQUAL(0, client->connect(ipAddress1, 8080));
61+
TEST_ASSERT_EQUAL(1, client->connect(ipAddress2, 8080));
6062

6163
Verify(OverloadedMethod(ArduinoFake(Client), connect, int(const char*, uint16_t)).Using("localhost", 8080)).Once();
6264
Verify(OverloadedMethod(ArduinoFake(Client), connect, int(const char*, uint16_t)).Using("localhost", 80)).Once();
@@ -76,11 +78,13 @@ namespace ClientTest
7678
When(OverloadedMethod(ArduinoFake(Client), write, size_t(uint8_t))).Return(1, 0);
7779
When(OverloadedMethod(ArduinoFake(Client), write, size_t(const uint8_t*, size_t))).Return(0, 1);
7880

79-
TEST_ASSERT_EQUAL(1, ArduinoFakeInstance(Client)->write(val1));
80-
TEST_ASSERT_EQUAL(0, ArduinoFakeInstance(Client)->write(val2));
81+
Client* client = ArduinoFakeMock(Client);
8182

82-
TEST_ASSERT_EQUAL(0, ArduinoFakeInstance(Client)->write(ptr1, 2));
83-
TEST_ASSERT_EQUAL(1, ArduinoFakeInstance(Client)->write(ptr2, 3));
83+
TEST_ASSERT_EQUAL(1, client->write(val1));
84+
TEST_ASSERT_EQUAL(0, client->write(val2));
85+
86+
TEST_ASSERT_EQUAL(0, client->write(ptr1, 2));
87+
TEST_ASSERT_EQUAL(1, client->write(ptr2, 3));
8488

8589
Verify(OverloadedMethod(ArduinoFake(Client), write, size_t(uint8_t)).Using(val1)).Once();
8690
Verify(OverloadedMethod(ArduinoFake(Client), write, size_t(uint8_t)).Using(val2)).Once();
@@ -100,11 +104,13 @@ namespace ClientTest
100104
When(OverloadedMethod(ArduinoFake(Client), read, int())).Return(10, 20);
101105
When(OverloadedMethod(ArduinoFake(Client), read, int(uint8_t*, size_t))).Return(30, 400);
102106

103-
TEST_ASSERT_EQUAL(10, ArduinoFakeInstance(Client)->read());
104-
TEST_ASSERT_EQUAL(20, ArduinoFakeInstance(Client)->read());
107+
Client* client = ArduinoFakeMock(Client);
108+
109+
TEST_ASSERT_EQUAL(10, client->read());
110+
TEST_ASSERT_EQUAL(20, client->read());
105111

106-
TEST_ASSERT_EQUAL(30, ArduinoFakeInstance(Client)->read(ptr1, 2));
107-
TEST_ASSERT_EQUAL(400, ArduinoFakeInstance(Client)->read(ptr2, 3));
112+
TEST_ASSERT_EQUAL(30, client->read(ptr1, 2));
113+
TEST_ASSERT_EQUAL(400, client->read(ptr2, 3));
108114

109115
Verify(OverloadedMethod(ArduinoFake(Client), read, int())).Exactly(2_Times);
110116

test/test_stream.h

Lines changed: 36 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -46,19 +46,19 @@ namespace StreamTest
4646

4747
Stream* stream = ArduinoFakeMock(Stream);
4848

49-
TEST_ASSERT_EQUAL(0, ArduinoFakeInstance(Stream)->available());
50-
TEST_ASSERT_EQUAL(1, ArduinoFakeInstance(Stream)->available());
51-
TEST_ASSERT_EQUAL(0, ArduinoFakeInstance(Stream)->available());
49+
TEST_ASSERT_EQUAL(0, stream->available());
50+
TEST_ASSERT_EQUAL(1, stream->available());
51+
TEST_ASSERT_EQUAL(0, stream->available());
5252

53-
TEST_ASSERT_EQUAL(11, ArduinoFakeInstance(Stream)->read());
54-
TEST_ASSERT_EQUAL(12, ArduinoFakeInstance(Stream)->read());
55-
TEST_ASSERT_EQUAL(13, ArduinoFakeInstance(Stream)->read());
53+
TEST_ASSERT_EQUAL(11, stream->read());
54+
TEST_ASSERT_EQUAL(12, stream->read());
55+
TEST_ASSERT_EQUAL(13, stream->read());
5656

57-
TEST_ASSERT_EQUAL(21, ArduinoFakeInstance(Stream)->peek());
58-
TEST_ASSERT_EQUAL(22, ArduinoFakeInstance(Stream)->peek());
59-
TEST_ASSERT_EQUAL(23, ArduinoFakeInstance(Stream)->peek());
57+
TEST_ASSERT_EQUAL(21, stream->peek());
58+
TEST_ASSERT_EQUAL(22, stream->peek());
59+
TEST_ASSERT_EQUAL(23, stream->peek());
6060

61-
ArduinoFakeInstance(Stream)->flush();
61+
stream->flush();
6262

6363
Verify(Method(ArduinoFake(Stream), available)).Exactly(3_Times);
6464
Verify(Method(ArduinoFake(Stream), read)).Exactly(3_Times);
@@ -82,17 +82,19 @@ namespace StreamTest
8282
When(OverloadedMethod(ArduinoFake(Stream), findUntil, bool(char*, char*))).Return(true, false);
8383
When(OverloadedMethod(ArduinoFake(Stream), findUntil, bool(char*, size_t, char*, size_t))).Return(true, false);
8484

85-
TEST_ASSERT_EQUAL(true, ArduinoFakeInstance(Stream)->find(char_ptr1));
86-
TEST_ASSERT_EQUAL(false, ArduinoFakeInstance(Stream)->find(char_ptr2));
85+
Stream* stream = ArduinoFakeMock(Stream);
86+
87+
TEST_ASSERT_EQUAL(true, stream->find(char_ptr1));
88+
TEST_ASSERT_EQUAL(false, stream->find(char_ptr2));
8789

88-
TEST_ASSERT_EQUAL(true, ArduinoFakeInstance(Stream)->find(char_ptr1, 10));
89-
TEST_ASSERT_EQUAL(false, ArduinoFakeInstance(Stream)->find(char_ptr2, 20));
90+
TEST_ASSERT_EQUAL(true, stream->find(char_ptr1, 10));
91+
TEST_ASSERT_EQUAL(false, stream->find(char_ptr2, 20));
9092

91-
TEST_ASSERT_EQUAL(true, ArduinoFakeInstance(Stream)->findUntil(char_ptr1, terminator_ptr));
92-
TEST_ASSERT_EQUAL(false, ArduinoFakeInstance(Stream)->findUntil(char_ptr2, terminator_ptr));
93+
TEST_ASSERT_EQUAL(true, stream->findUntil(char_ptr1, terminator_ptr));
94+
TEST_ASSERT_EQUAL(false, stream->findUntil(char_ptr2, terminator_ptr));
9395

94-
TEST_ASSERT_EQUAL(true, ArduinoFakeInstance(Stream)->findUntil(char_ptr1, 10, terminator_ptr, 11));
95-
TEST_ASSERT_EQUAL(false, ArduinoFakeInstance(Stream)->findUntil(char_ptr2, 20, terminator_ptr, 21));
96+
TEST_ASSERT_EQUAL(true, stream->findUntil(char_ptr1, 10, terminator_ptr, 11));
97+
TEST_ASSERT_EQUAL(false, stream->findUntil(char_ptr2, 20, terminator_ptr, 21));
9698

9799
Verify(OverloadedMethod(ArduinoFake(Stream), find, bool(char*)).Using(char_ptr1)).Once();
98100
Verify(OverloadedMethod(ArduinoFake(Stream), find, bool(char*)).Using(char_ptr2)).Once();
@@ -109,11 +111,13 @@ namespace StreamTest
109111
When(Method(ArduinoFake(Stream), parseInt)).Return(10, 11);
110112
When(Method(ArduinoFake(Stream), parseFloat)).Return(2.0, 2.1);
111113

112-
TEST_ASSERT_INT_WITHIN(0, 10, ArduinoFakeInstance(Stream)->parseInt());
113-
TEST_ASSERT_INT_WITHIN(0, 11, ArduinoFakeInstance(Stream)->parseInt());
114+
Stream* stream = ArduinoFakeMock(Stream);
115+
116+
TEST_ASSERT_INT_WITHIN(0, 10, stream->parseInt());
117+
TEST_ASSERT_INT_WITHIN(0, 11, stream->parseInt());
114118

115-
TEST_ASSERT_FLOAT_WITHIN(0, 2.0, ArduinoFakeInstance(Stream)->parseFloat());
116-
TEST_ASSERT_FLOAT_WITHIN(0, 2.1, ArduinoFakeInstance(Stream)->parseFloat());
119+
TEST_ASSERT_FLOAT_WITHIN(0, 2.0, stream->parseFloat());
120+
TEST_ASSERT_FLOAT_WITHIN(0, 2.1, stream->parseFloat());
117121

118122
Verify(Method(ArduinoFake(Stream), parseInt)).Exactly(2_Times);
119123
Verify(Method(ArduinoFake(Stream), parseFloat)).Exactly(2_Times);
@@ -135,17 +139,19 @@ namespace StreamTest
135139
When(Method(ArduinoFake(Stream), readString)).Return(str1, str2);
136140
When(Method(ArduinoFake(Stream), readStringUntil)).Return(str1, str2);
137141

138-
TEST_ASSERT_EQUAL_INT(1, ArduinoFakeInstance(Stream)->readBytes(char_ptr1, 10));
139-
TEST_ASSERT_EQUAL_INT(2, ArduinoFakeInstance(Stream)->readBytes(char_ptr2, 20));
142+
Stream* stream = ArduinoFakeMock(Stream);
143+
144+
TEST_ASSERT_EQUAL_INT(1, stream->readBytes(char_ptr1, 10));
145+
TEST_ASSERT_EQUAL_INT(2, stream->readBytes(char_ptr2, 20));
140146

141-
TEST_ASSERT_EQUAL_INT(3, ArduinoFakeInstance(Stream)->readBytesUntil(terminator, char_ptr1, 10));
142-
TEST_ASSERT_EQUAL_INT(4, ArduinoFakeInstance(Stream)->readBytesUntil(terminator, char_ptr2, 20));
147+
TEST_ASSERT_EQUAL_INT(3, stream->readBytesUntil(terminator, char_ptr1, 10));
148+
TEST_ASSERT_EQUAL_INT(4, stream->readBytesUntil(terminator, char_ptr2, 20));
143149

144-
TEST_ASSERT_TRUE(str1.equals(ArduinoFakeInstance(Stream)->readString()));
145-
TEST_ASSERT_TRUE(str2.equals(ArduinoFakeInstance(Stream)->readString()));
150+
TEST_ASSERT_TRUE(str1.equals(stream->readString()));
151+
TEST_ASSERT_TRUE(str2.equals(stream->readString()));
146152

147-
TEST_ASSERT_TRUE(str1.equals(ArduinoFakeInstance(Stream)->readStringUntil(terminator)));
148-
TEST_ASSERT_TRUE(str2.equals(ArduinoFakeInstance(Stream)->readStringUntil(terminator)));
153+
TEST_ASSERT_TRUE(str1.equals(stream->readStringUntil(terminator)));
154+
TEST_ASSERT_TRUE(str2.equals(stream->readStringUntil(terminator)));
149155

150156
Verify(Method(ArduinoFake(Stream), readBytes).Using(char_ptr1, 10)).Once();
151157
Verify(Method(ArduinoFake(Stream), readBytes).Using(char_ptr2, 20)).Once();

0 commit comments

Comments
 (0)