// Tencent is pleased to support the open source community by making RapidJSON available. // // Copyright (C) 2021 THL A29 Limited, a Tencent company, and Milo Yip. // // Licensed under the MIT License (the "License"); you may not use this file except // in compliance with the License. You may obtain a copy of the License at // // http://opensource.org/licenses/MIT // // Unless required by applicable law or agreed to in writing, software distributed // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR // CONDITIONS OF ANY KIND, either express or implied. See the License for the // specific language governing permissions and limitations under the License. #include "unittest.h" // see https://github.com/Tencent/rapidjson/issues/1448 // including windows.h on purpose to provoke a compile time problem as GetObject is a // macro that gets defined when windows.h is included #ifdef _WIN32 #include #endif #include "rapidjson/document.h" #undef GetObject using namespace rapidjson; TEST(Platform, GetObject) { Document doc; doc.Parse(" { \"object\" : { \"pi\": 3.1416} } "); EXPECT_TRUE(doc.IsObject()); EXPECT_TRUE(doc.HasMember("object")); const Document::ValueType& o = doc["object"]; EXPECT_TRUE(o.IsObject()); Value::ConstObject sub = o.GetObject(); EXPECT_TRUE(sub.HasMember("pi")); Value::ConstObject sub2 = o.GetObj(); EXPECT_TRUE(sub2.HasMember("pi")); }