1 // Tencent is pleased to support the open source community by making RapidJSON available.
3 // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
5 // Licensed under the MIT License (the "License"); you may not use this file except
6 // in compliance with the License. You may obtain a copy of the License at
8 // http://opensource.org/licenses/MIT
10 // Unless required by applicable law or agreed to in writing, software distributed
11 // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12 // CONDITIONS OF ANY KIND, either express or implied. See the License for the
13 // specific language governing permissions and limitations under the License.
17 // test another instantiation of RapidJSON in a different namespace
19 #define RAPIDJSON_NAMESPACE my::rapid::json
20 #define RAPIDJSON_NAMESPACE_BEGIN namespace my { namespace rapid { namespace json {
21 #define RAPIDJSON_NAMESPACE_END } } }
23 // include lots of RapidJSON files
25 #include "rapidjson/document.h"
26 #include "rapidjson/writer.h"
27 #include "rapidjson/filereadstream.h"
28 #include "rapidjson/filewritestream.h"
29 #include "rapidjson/encodedstream.h"
30 #include "rapidjson/stringbuffer.h"
32 static const char json
[] = "{\"hello\":\"world\",\"t\":true,\"f\":false,\"n\":null,\"i\":123,\"pi\":3.1416,\"a\":[1,2,3,4]}";
34 TEST(NamespaceTest
,Using
) {
35 using namespace RAPIDJSON_NAMESPACE
;
36 typedef GenericDocument
<UTF8
<>, CrtAllocator
> DocumentType
;
40 EXPECT_TRUE(!doc
.HasParseError());
43 TEST(NamespaceTest
,Direct
) {
44 typedef RAPIDJSON_NAMESPACE::Document Document
;
45 typedef RAPIDJSON_NAMESPACE::Reader Reader
;
46 typedef RAPIDJSON_NAMESPACE::StringStream StringStream
;
47 typedef RAPIDJSON_NAMESPACE::StringBuffer StringBuffer
;
48 typedef RAPIDJSON_NAMESPACE::Writer
<StringBuffer
> WriterType
;
52 WriterType
writer(buffer
);
55 reader
.Parse(s
, writer
);
57 EXPECT_STREQ(json
, buffer
.GetString());
58 EXPECT_EQ(sizeof(json
)-1, buffer
.GetSize());
59 EXPECT_TRUE(writer
.IsComplete());
62 doc
.Parse(buffer
.GetString());
63 EXPECT_TRUE(!doc
.HasParseError());
68 EXPECT_STREQ(json
, buffer
.GetString());
69 EXPECT_TRUE(writer
.IsComplete());