diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2015-03-17 21:29:40 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2015-03-17 21:29:40 +0100 |
commit | 5d6e4c971857b5e05d7c277e7eafcb9d64dbc6a7 (patch) | |
tree | f6ff4bf95a3a81b9a98ca09bc4d980147346fe3a /test/SoilMoistureIoTest.cpp | |
parent | 2a7ffd694cfa3493ef1b83a69878322b8ca97670 (diff) | |
download | ble-toys-5d6e4c971857b5e05d7c277e7eafcb9d64dbc6a7.tar.gz ble-toys-5d6e4c971857b5e05d7c277e7eafcb9d64dbc6a7.tar.bz2 ble-toys-5d6e4c971857b5e05d7c277e7eafcb9d64dbc6a7.tar.xz ble-toys-5d6e4c971857b5e05d7c277e7eafcb9d64dbc6a7.zip |
o An improved KeyDictionary.
Diffstat (limited to 'test/SoilMoistureIoTest.cpp')
-rw-r--r-- | test/SoilMoistureIoTest.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/test/SoilMoistureIoTest.cpp b/test/SoilMoistureIoTest.cpp new file mode 100644 index 0000000..4a508b9 --- /dev/null +++ b/test/SoilMoistureIoTest.cpp @@ -0,0 +1,48 @@ +#include "SoilMoistureIo.h" + +#define BOOST_TEST_MODULE "SoilMoistureIoTest" + +#include <boost/test/unit_test.hpp> + +using namespace trygvis::soil_moisture; + +BOOST_AUTO_TEST_CASE(csv_parser) { + KeyDictionary dict; + + auto buffer = make_shared<VectorSampleOutputStream>(); + + auto parser = new CsvSampleParser(buffer, dict); + + char data[] = "a=1, b=2, c=3\n"; + parser->process(boost::asio::buffer(data, sizeof(data))); + BOOST_CHECK_EQUAL(buffer->samples.size(), 1); + BOOST_CHECK_EQUAL(dict.size(), 3); + auto it = dict.begin(); + BOOST_CHECK_EQUAL((*it)->name, "a"); + BOOST_CHECK_EQUAL((*it++)->index, 0); + BOOST_CHECK_EQUAL((*it)->name, "b"); + BOOST_CHECK_EQUAL((*it++)->index, 1); + BOOST_CHECK_EQUAL((*it)->name, "c"); + BOOST_CHECK_EQUAL((*it++)->index, 2); +} + +BOOST_AUTO_TEST_CASE(csv_parser_with_custom_dict) { + KeyDictionary dict; + + dict.indexOf("c"); + dict.indexOf("b"); + + auto buffer = make_shared<VectorSampleOutputStream>(); + + auto parser = new CsvSampleParser(buffer, dict); + + char data[] = "a=1, b=2, c=3\n"; + parser->process(boost::asio::buffer(data, sizeof(data))); + BOOST_CHECK_EQUAL(buffer->samples.size(), 1); + BOOST_CHECK_EQUAL(dict.size(), 3); + auto it = dict.begin(); + BOOST_CHECK_EQUAL((*it)->name, "c"); + BOOST_CHECK_EQUAL((*it++)->index, 0); + BOOST_CHECK_EQUAL((*it)->name, "b"); + BOOST_CHECK_EQUAL((*it++)->index, 1); +} |