// Tencent is pleased to support the open source community by making RapidJSON available. // // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. // // 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" // test another instantiation of RapidJSON in a different namespace #define RAPIDJSON_NAMESPACE my::rapid::json #define RAPIDJSON_NAMESPACE_BEGIN namespace my { namespace rapid { namespace json { #define RAPIDJSON_NAMESPACE_END } } } // include lots of RapidJSON files #include "rapidjson/document.h" #include "rapidjson/writer.h" #include "rapidjson/filereadstream.h" #include "rapidjson/filewritestream.h" #include "rapidjson/encodedstream.h" #include "rapidjson/stringbuffer.h" static const char json[] = "{\"hello\":\"world\",\"t\":true,\"f\":false,\"n\":null,\"i\":123,\"pi\":3.1416,\"a\":[1,2,3,4]}"; TEST(NamespaceTest,Using) { using namespace RAPIDJSON_NAMESPACE; typedef GenericDocument, CrtAllocator> DocumentType; DocumentType doc; doc.Parse(json); EXPECT_TRUE(!doc.HasParseError()); } TEST(NamespaceTest,Direct) { typedef RAPIDJSON_NAMESPACE::Document Document; typedef RAPIDJSON_NAMESPACE::Reader Reader; typedef RAPIDJSON_NAMESPACE::StringStream StringStream; typedef RAPIDJSON_NAMESPACE::StringBuffer StringBuffer; typedef RAPIDJSON_NAMESPACE::Writer WriterType; StringStream s(json); StringBuffer buffer; WriterType writer(buffer); buffer.ShrinkToFit(); Reader reader; reader.Parse(s, writer); EXPECT_STREQ(json, buffer.GetString()); EXPECT_EQ(sizeof(json)-1, buffer.GetSize()); EXPECT_TRUE(writer.IsComplete()); Document doc; doc.Parse(buffer.GetString()); EXPECT_TRUE(!doc.HasParseError()); buffer.Clear(); writer.Reset(buffer); doc.Accept(writer); EXPECT_STREQ(json, buffer.GetString()); EXPECT_TRUE(writer.IsComplete()); }