Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'ugc/ugc_tests')
-rw-r--r--ugc/ugc_tests/CMakeLists.txt3
-rw-r--r--ugc/ugc_tests/serdes_json_test.cpp143
-rw-r--r--ugc/ugc_tests/serdes_tests.cpp66
-rw-r--r--ugc/ugc_tests/ugc_tests.pro3
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 \