summaryrefslogtreecommitdiffstats
path: root/library/cpp/yt/logging/unittests/structured_payload_ut.cpp
blob: f15970dcb235ab6fd01e09eb5992a9bf3a0d2f7d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <library/cpp/testing/gtest/gtest.h>

#include <library/cpp/yt/logging/structured_payload.h>

#include <library/cpp/yt/yson_string/string.h>

namespace NYT::NLogging {
namespace {

using namespace NYson;

////////////////////////////////////////////////////////////////////////////////

TYsonString MakeMapFragment(TStringBuf yson)
{
    return TYsonString(yson, EYsonType::MapFragment);
}

TEST(TStructuredPayloadTest, RoundTrip)
{
    auto payload = MakeStructuredPayloadFromYson(MakeMapFragment("\"key\"=\"value\""));
    auto view = GetYsonFromStructuredPayload(payload);
    EXPECT_EQ(view.GetType(), EYsonType::MapFragment);
    EXPECT_EQ(view.AsStringBuf(), "\"key\"=\"value\"");
}

TEST(TStructuredPayloadTest, EmptyFragment)
{
    auto payload = MakeStructuredPayloadFromYson(MakeMapFragment(""));
    EXPECT_EQ(GetYsonFromStructuredPayload(payload).AsStringBuf(), "");
}

////////////////////////////////////////////////////////////////////////////////

} // namespace
} // namespace NYT::NLogging