JsonUtilTest: Add ParsePrimitiveMapIn subtest

pull/2451/head
Konstantin Podsvirov 8 years ago
parent e844510f44
commit 46c022a0a9
  1. 15
      src/google/protobuf/util/json_util_test.cc

@ -36,6 +36,7 @@
#include <google/protobuf/io/zero_copy_stream.h> #include <google/protobuf/io/zero_copy_stream.h>
#include <google/protobuf/descriptor_database.h> #include <google/protobuf/descriptor_database.h>
#include <google/protobuf/dynamic_message.h> #include <google/protobuf/dynamic_message.h>
#include <google/protobuf/util/internal/testdata/maps.pb.h>
#include <google/protobuf/util/json_format_proto3.pb.h> #include <google/protobuf/util/json_format_proto3.pb.h>
#include <google/protobuf/util/type_resolver.h> #include <google/protobuf/util/type_resolver.h>
#include <google/protobuf/util/type_resolver_util.h> #include <google/protobuf/util/type_resolver_util.h>
@ -50,6 +51,7 @@ using proto3::FOO;
using proto3::BAR; using proto3::BAR;
using proto3::TestMessage; using proto3::TestMessage;
using proto3::TestMap; using proto3::TestMap;
using testing::MapIn;
static const char kTypeUrlPrefix[] = "type.googleapis.com"; static const char kTypeUrlPrefix[] = "type.googleapis.com";
@ -62,7 +64,7 @@ static string GetTypeUrl(const Descriptor* message) {
// only cover some very basic cases to make sure the wrappers have forwarded // only cover some very basic cases to make sure the wrappers have forwarded
// parameters to the underlying implementation correctly. More detailed // parameters to the underlying implementation correctly. More detailed
// tests are contained in the //net/proto2/util/converter directory. // tests are contained in the //net/proto2/util/converter directory.
class JsonUtilTest : public testing::Test { class JsonUtilTest : public ::testing::Test {
protected: protected:
JsonUtilTest() { JsonUtilTest() {
} }
@ -196,6 +198,17 @@ TEST_F(JsonUtilTest, ParseMap) {
EXPECT_EQ(message.DebugString(), other.DebugString()); EXPECT_EQ(message.DebugString(), other.DebugString());
} }
TEST_F(JsonUtilTest, ParsePrimitiveMapIn) {
MapIn message;
JsonPrintOptions print_options;
print_options.always_print_primitive_fields = true;
JsonParseOptions parse_options;
EXPECT_EQ("{\"other\":\"\",\"things\":[],\"mapInput\":{}}", ToJson(message, print_options));
MapIn other;
ASSERT_TRUE(FromJson(ToJson(message, print_options), &other, parse_options));
EXPECT_EQ(message.DebugString(), other.DebugString());
}
TEST_F(JsonUtilTest, TestParseIgnoreUnknownFields) { TEST_F(JsonUtilTest, TestParseIgnoreUnknownFields) {
TestMessage m; TestMessage m;
JsonParseOptions options; JsonParseOptions options;

Loading…
Cancel
Save