Skip to content

Commit f9c814e

Browse files
authored
Add unit tests for StreamOffsets and ConsumerProperties serializers (#597)
Add units tests for StreamOffsetsSerializer and ConsumerPropertiesSerialzer. Relates-to: OLPEDGE-1385 Signed-off-by: Bohdan Kurylovych <[email protected]>
1 parent 9da0a72 commit f9c814e

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed

olp-cpp-sdk-dataservice-read/tests/SerializerTest.cpp

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
*/
1919

2020
#include <chrono>
21+
#include <limits>
2122
#include <regex>
2223
#include <string>
2324

@@ -27,8 +28,10 @@
2728
// Ordering Required - Serializer template specializations before JsonSerializer.h
2829
#include "generated/serializer/ApiSerializer.h"
2930
#include "generated/serializer/CatalogSerializer.h"
31+
#include "generated/serializer/ConsumerPropertiesSerializer.h"
3032
#include "generated/serializer/LayerVersionsSerializer.h"
3133
#include "generated/serializer/PartitionsSerializer.h"
34+
#include "generated/serializer/StreamOffsetsSerializer.h"
3235
#include "generated/serializer/VersionResponseSerializer.h"
3336
#include "generated/serializer/JsonSerializer.h"
3437

@@ -426,4 +429,68 @@ TEST(SerializerTest, VersionResponse) {
426429
ASSERT_EQ(expectedOutput, json);
427430
}
428431

432+
TEST(SerializerTest, ConsumerProperties) {
433+
std::string expected_output =
434+
"{\
435+
\"kafkaConsumerProperties\":{\
436+
\"key_string\":\"value_string\",\
437+
\"key_c-string\":\"value_c-string\",\
438+
\"key_int32\":\"42\",\
439+
\"key_bool\":\"1\"\
440+
}\
441+
}";
442+
443+
olp::dataservice::read::ConsumerOptions expected_options = {
444+
olp::dataservice::read::ConsumerOption("key_string",
445+
std::string("value_string")),
446+
olp::dataservice::read::ConsumerOption("key_c-string", "value_c-string"),
447+
olp::dataservice::read::ConsumerOption("key_int32", int32_t{42}),
448+
olp::dataservice::read::ConsumerOption("key_bool", true)};
449+
450+
olp::dataservice::read::ConsumerProperties props(expected_options);
451+
auto json = olp::serializer::serialize(props);
452+
453+
RemoveWhitespaceAndNewlines(expected_output);
454+
RemoveWhitespaceAndNewlines(json);
455+
456+
EXPECT_EQ(expected_output, json);
457+
}
458+
459+
TEST(SerializerTest, StreamOffset) {
460+
constexpr auto kMinInt32 = std::numeric_limits<int32_t>::min();
461+
constexpr auto kMaxInt64 = std::numeric_limits<int64_t>::max();
462+
463+
std::string expected_output =
464+
"{\"offsets\":[\
465+
{\
466+
\"partition\":7,\
467+
\"offset\":38562\
468+
},\
469+
{\
470+
\"partition\":-2147483648,\
471+
\"offset\":9223372036854775807\
472+
}\
473+
]}";
474+
475+
StreamOffset kOffset1;
476+
kOffset1.SetPartition(7);
477+
kOffset1.SetOffset(38562);
478+
479+
StreamOffset kOffset2;
480+
kOffset2.SetPartition(kMinInt32);
481+
kOffset2.SetOffset(kMaxInt64);
482+
483+
const std::vector<StreamOffset> expected_offsets = {kOffset1, kOffset2};
484+
485+
StreamOffsets offsets;
486+
offsets.SetOffsets(expected_offsets);
487+
488+
auto json = olp::serializer::serialize(offsets);
489+
490+
RemoveWhitespaceAndNewlines(expected_output);
491+
RemoveWhitespaceAndNewlines(json);
492+
493+
EXPECT_EQ(expected_output, json);
494+
}
495+
429496
} // namespace

0 commit comments

Comments
 (0)