diff options
Diffstat (limited to 'ugc/ugc_tests')
-rw-r--r-- | ugc/ugc_tests/CMakeLists.txt | 3 | ||||
-rw-r--r-- | ugc/ugc_tests/serdes_json_test.cpp | 143 | ||||
-rw-r--r-- | ugc/ugc_tests/serdes_tests.cpp | 66 | ||||
-rw-r--r-- | ugc/ugc_tests/ugc_tests.pro | 3 |
4 files changed, 55 insertions, 160 deletions
diff --git a/ugc/ugc_tests/CMakeLists.txt b/ugc/ugc_tests/CMakeLists.txt index 63638a70a8..333d762dac 100644 --- a/ugc/ugc_tests/CMakeLists.txt +++ b/ugc/ugc_tests/CMakeLists.txt @@ -3,19 +3,18 @@ project(ugc_tests) set( SRC serdes_tests.cpp - serdes_json_tests.cpp ) omim_add_test(${PROJECT_NAME} ${SRC}) omim_link_libraries( ${PROJECT_NAME} ugc - jansson indexer platform coding geometry base + jansson stats_client ${LIBZ} ) diff --git a/ugc/ugc_tests/serdes_json_test.cpp b/ugc/ugc_tests/serdes_json_test.cpp deleted file mode 100644 index d4d16a4780..0000000000 --- a/ugc/ugc_tests/serdes_json_test.cpp +++ /dev/null @@ -1,143 +0,0 @@ -#include "testing/testing.hpp" - -#include "ugc/api.hpp" -#include "ugc/serdes_json.hpp" -#include "ugc/types.hpp" - -#include "coding/reader.hpp" -#include "coding/writer.hpp" - -#include <cstdint> -#include <vector> - -using namespace std; -using namespace ugc; - -namespace -{ - using Buffer = vector<uint8_t>; - using Ser = SerializerJson<MemWriter<Buffer>>; - using Des = DeserializerJsonV0<ReaderSource<MemReader>>; - - Rating GetTestRating() - { - vector<RatingRecord> records; - records.emplace_back("music" /* key */, 5.0 /* value */); - records.emplace_back("service" /* key */, 4.0 /* value */); - - return Rating(records, 4.5 /* aggValue */); - } - - MemWriter<Buffer> MakeSink(Buffer & buffer) { return MemWriter<Buffer>(buffer); } - - ReaderSource<MemReader> MakeSource(Buffer const & buffer) - { - MemReader reader(buffer.data(), buffer.size()); - return ReaderSource<MemReader>(reader); - } - - UNIT_TEST(SerDes_Json_Rating) - { - auto expectedRating = GetTestRating(); - TEST_EQUAL(expectedRating, expectedRating, ()); - - HeaderV0 header; - - Buffer buffer; - - { - auto sink = MakeSink(buffer); - Ser ser(sink, header); - ser(expectedRating); - ser.Flush(); - } - - Rating actualRating({} /* ratings */, {} /* aggValue */); - - { - auto source = MakeSource(buffer); - Des des(source, header); - des(actualRating); - } - - TEST_EQUAL(expectedRating, actualRating, ()); - } - - UNIT_TEST(SerDes_Json_Reviews) - { - auto expectedUGC = Api::MakeTestUGC1().m_reviews; - TEST_EQUAL(expectedUGC, expectedUGC, ()); - - HeaderV0 header; - - Buffer buffer; - - { - auto sink = MakeSink(buffer); - Ser ser(sink, header); - ser(expectedUGC); - ser.Flush(); - } - - std::vector<Review> actualUGC({} /* rating */, {} /* reviews */, {} /* attributes */); - { - auto source = MakeSource(buffer); - Des des(source, header); - des(actualUGC); - } - - TEST_EQUAL(expectedUGC, actualUGC, ()); - } - - UNIT_TEST(SerDes_Json_Attributes) - { - auto expectedUGC = Api::MakeTestUGC1().m_attributes; - TEST_EQUAL(expectedUGC, expectedUGC, ()); - - HeaderV0 header; - - Buffer buffer; - - { - auto sink = MakeSink(buffer); - Ser ser(sink, header); - ser(expectedUGC); - ser.Flush(); - } - - std::vector<Attribute> actualUGC({} /* rating */, {} /* reviews */, {} /* attributes */); - { - auto source = MakeSource(buffer); - Des des(source, header); - des(actualUGC); - } - - TEST_EQUAL(expectedUGC, actualUGC, ()); - } - - UNIT_TEST(SerDes_Json_UGC) - { - auto expectedUGC = Api::MakeTestUGC1(); - TEST_EQUAL(expectedUGC, expectedUGC, ()); - - HeaderV0 header; - - Buffer buffer; - - { - auto sink = MakeSink(buffer); - Ser ser(sink, header); - ser(expectedUGC); - ser.Flush(); - } - - UGC actualUGC({} /* rating */, {} /* reviews */, {} /* attributes */); - { - auto source = MakeSource(buffer); - Des des(source, header); - des(actualUGC); - } - - TEST_EQUAL(expectedUGC, actualUGC, ()); - } -} // namespace diff --git a/ugc/ugc_tests/serdes_tests.cpp b/ugc/ugc_tests/serdes_tests.cpp index 79465ad522..8271ec8e98 100644 --- a/ugc/ugc_tests/serdes_tests.cpp +++ b/ugc/ugc_tests/serdes_tests.cpp @@ -2,6 +2,7 @@ #include "ugc/api.hpp" #include "ugc/serdes.hpp" +#include "ugc/serdes_json.hpp" #include "ugc/types.hpp" #include "coding/reader.hpp" @@ -16,8 +17,11 @@ using namespace ugc; namespace { using Buffer = vector<uint8_t>; -using Ser = Serializer<MemWriter<Buffer>>; -using Des = DeserializerV0<ReaderSource<MemReader>>; +using ToBin = Serializer<MemWriter<Buffer>>; +using FromBin = DeserializerV0<ReaderSource<MemReader>>; +using ToJson = SerializerJson<MemWriter<Buffer>>; +using FromJson = DeserializerJsonV0<ReaderSource<MemReader>>; + Rating GetTestRating() { @@ -36,28 +40,64 @@ ReaderSource<MemReader> MakeSource(Buffer const & buffer) return ReaderSource<MemReader>(reader); } -UNIT_TEST(SerDes_Rating) +template<typename Object, typename Serializator, typename Deserializator> +void MakeTest(Object const & src) { - auto const expectedRating = GetTestRating(); - TEST_EQUAL(expectedRating, expectedRating, ()); - Buffer buffer; + Object trg; { auto sink = MakeSink(buffer); - Ser ser(sink); - ser(expectedRating); + Serializator ser(sink); + ser(src); } - Rating actualRating({} /* ratings */, {} /* aggValue */); - { auto source = MakeSource(buffer); - Des des(source); - des(actualRating); + Deserializator des(source); + des(trg); } + TEST_EQUAL(src, trg, ()); +} + +UNIT_TEST(SerDes_Rating) +{ + auto const expectedRating = GetTestRating(); + TEST_EQUAL(expectedRating, expectedRating, ()); + + MakeTest<Rating, ToBin, FromBin>(expectedRating); +} + +UNIT_TEST(SerDes_Json_Rating) +{ + auto const expectedRating = GetTestRating(); + TEST_EQUAL(expectedRating, expectedRating, ()); + + MakeTest<Rating, ToJson, FromJson>(expectedRating); +} + +UNIT_TEST(SerDes_Json_Reviews) +{ + auto expectedUGC = Api::MakeTestUGC1(Time(chrono::hours(24 * 100))).m_reviews; + TEST_EQUAL(expectedUGC, expectedUGC, ()); + + MakeTest<decltype(expectedUGC), ToJson, FromJson>(expectedUGC); +} + +UNIT_TEST(SerDes_Json_Attributes) +{ + auto expectedUGC = Api::MakeTestUGC1(Time(chrono::hours(24 * 100))).m_attributes; + TEST_EQUAL(expectedUGC, expectedUGC, ()); + + MakeTest<decltype(expectedUGC), ToJson, FromJson>(expectedUGC); +} + +UNIT_TEST(SerDes_Json_UGC) +{ + auto expectedUGC = Api::MakeTestUGC1(Time(chrono::hours(24 * 100))); + TEST_EQUAL(expectedUGC, expectedUGC, ()); - TEST_EQUAL(expectedRating, actualRating, ()); + MakeTest<decltype(expectedUGC), ToJson, FromJson>(expectedUGC); } UNIT_TEST(SerDes_UGC) diff --git a/ugc/ugc_tests/ugc_tests.pro b/ugc/ugc_tests/ugc_tests.pro index 2537430a24..4cc55a6895 100644 --- a/ugc/ugc_tests/ugc_tests.pro +++ b/ugc/ugc_tests/ugc_tests.pro @@ -6,7 +6,7 @@ CONFIG -= app_bundle TEMPLATE = app ROOT_DIR = ../.. -DEPENDENCIES = ugc jansson indexer platform coding geometry base stats_client +DEPENDENCIES = ugc indexer platform coding geometry base jansson stats_client macx-* { LIBS *= "-framework IOKit" "-framework SystemConfiguration" @@ -19,4 +19,3 @@ QT *= core SOURCES += \ ../../testing/testingmain.cpp \ serdes_tests.cpp \ - serdes_json_tests.cpp \ |