Skip to content

Commit 1dc56d8

Browse files
committed
Merge pull request FirebaseExtended#180 from ed7coyne/fix-modem-streaming
Add json parsing to modem streaming
2 parents df8372a + 56bb2c5 commit 1dc56d8

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

src/modem/stream-command.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,19 @@ bool StreamCommand::execute(const String& command,
2323
}
2424

2525
bool running = true;
26+
DynamicJsonBuffer buffer;
2627
while(running) {
2728
if (stream->available()) {
2829
std::string json;
2930
FirebaseStream::Event event = stream->read(json);
3031
out->print("+");
3132
out->print(FirebaseStream::EventToName(event).c_str());
3233
out->print(" ");
33-
// TODO(edcoyne): add json parsing and get real path.
34-
out->println("/dummy/path");
35-
out->println(json.length());
36-
out->println(json.c_str());
34+
const auto& object = buffer.parseObject(json.c_str());
35+
String data = object["data"];
36+
out->println(object["path"].asString());
37+
out->println(data.length());
38+
out->println(data);
3739
} else if (in->available()) {
3840
String command = in->readLine();
3941
if (command == "END_STREAM") {

test/modem/stream-command_test.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ TEST_F(StreamCommandTest, streams) {
4646
.WillOnce(Return(path))
4747
.WillOnce(Return("END_STREAM"));
4848

49-
const String value("Test value");
49+
const String data = "Test Value";
50+
const String value(String("{\"path\" : \"/test/path\", \"data\" : \"") + data + "\"}");
5051
EXPECT_CALL(*stream_, available())
5152
.WillOnce(Return(true))
5253
.WillRepeatedly(Return(false));
@@ -63,12 +64,12 @@ TEST_F(StreamCommandTest, streams) {
6364
.WillOnce(Return(1));
6465
EXPECT_CALL(out_, print(String(" ")))
6566
.WillOnce(Return(1));
66-
EXPECT_CALL(out_, println(String("/dummy/path")))
67+
EXPECT_CALL(out_, println(path))
6768
.WillOnce(Return(1));
6869

69-
EXPECT_CALL(out_, println(value.length()))
70+
EXPECT_CALL(out_, println(data.length()))
7071
.WillOnce(Return(1));
71-
EXPECT_CALL(out_, println(value))
72+
EXPECT_CALL(out_, println(data))
7273
.WillOnce(Return(1));
7374

7475
EXPECT_CALL(out_, println(String("+OK")))

0 commit comments

Comments
 (0)