1#include <gtest/gtest.h>
9#include <userver/protobuf/json/convert.hpp>
10#include <userver/utest/assert_macros.hpp>
14USERVER_NAMESPACE_BEGIN
16namespace protobuf::json::tests {
18constexpr float kMax = std::numeric_limits<
float>::max();
19constexpr float kMin = std::numeric_limits<
float>::min();
21struct FloatToJsonSuccessTestParam {
23 PrintOptions options = {};
26void PrintTo(
const FloatToJsonSuccessTestParam& param, std::ostream* os) {
27 *os << fmt::format(
"{{ input = {{.field1={}}} }}", param.input.field1);
30class FloatToJsonSuccessTest :
public ::testing::TestWithParam<FloatToJsonSuccessTestParam> {};
32INSTANTIATE_TEST_SUITE_P(
34 FloatToJsonSuccessTest,
37 FloatToJsonSuccessTestParam{
FloatMessageData{0}, {.always_print_fields_with_no_presence =
true}},
49TEST_P(FloatToJsonSuccessTest, Test) {
50 const auto& param = GetParam();
52 auto input = PrepareTestData(param.input);
55 UASSERT_NO_THROW((json = MessageToJson(input, param.options)));
56 UASSERT_NO_THROW((sample_json = CreateSampleJson(input, param.options)));
69 EXPECT_EQ(json
["field1"].As<
float>(), param.input.field1);
70 EXPECT_EQ(json
["field1"].As<
float>(), sample_json
["field1"].As<
float>());