Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
namespacetest.cpp
Go to the documentation of this file.
1// Tencent is pleased to support the open source community by making RapidJSON available.
2//
3// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
4//
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
7//
8// http://opensource.org/licenses/MIT
9//
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.
14
15#include "unittest.h"
16
17// test another instantiation of RapidJSON in a different namespace
18
19#define RAPIDJSON_NAMESPACE my::rapid::json
20#define RAPIDJSON_NAMESPACE_BEGIN namespace my { namespace rapid { namespace json {
21#define RAPIDJSON_NAMESPACE_END } } }
22
23// include lots of RapidJSON files
24
25#include "rapidjson/document.h"
26#include "rapidjson/writer.h"
31
32static const char json[] = "{\"hello\":\"world\",\"t\":true,\"f\":false,\"n\":null,\"i\":123,\"pi\":3.1416,\"a\":[1,2,3,4]}";
33
34TEST(NamespaceTest,Using) {
35 using namespace RAPIDJSON_NAMESPACE;
36 typedef GenericDocument<UTF8<>, CrtAllocator> DocumentType;
37 DocumentType doc;
38
39 doc.Parse(json);
40 EXPECT_TRUE(!doc.HasParseError());
41}
42
43TEST(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;
49
50 StringStream s(json);
51 StringBuffer buffer;
52 WriterType writer(buffer);
53 buffer.ShrinkToFit();
54 Reader reader;
55 reader.Parse(s, writer);
56
57 EXPECT_STREQ(json, buffer.GetString());
58 EXPECT_EQ(sizeof(json)-1, buffer.GetSize());
59 EXPECT_TRUE(writer.IsComplete());
60
61 Document doc;
62 doc.Parse(buffer.GetString());
64
65 buffer.Clear();
66 writer.Reset(buffer);
67 doc.Accept(writer);
68 EXPECT_STREQ(json, buffer.GetString());
69 EXPECT_TRUE(writer.IsComplete());
70}
C-runtime library allocator.
Definition allocators.h:75
A document for parsing JSON text as DOM.
Definition document.h:2124
bool HasParseError() const
Whether a parse error has occurred in the last parsing.
Definition document.h:2388
GenericDocument & Parse(const typename SourceEncoding::Ch *str)
Parse JSON text from a read-only string (with Encoding conversion)
Definition document.h:2325
ParseResult Parse(InputStream &is, Handler &handler)
Parse JSON text.
Definition reader.h:557
const Ch * GetString() const
size_t GetSize() const
Get the size of string in bytes in the string buffer.
GenericDocument< UTF8<> > Document
GenericDocument with UTF8 encoding.
Definition document.h:2506
GenericStringStream< UTF8< char > > StringStream
Definition fwd.h:49
GenericReader< UTF8< char >, UTF8< char >, CrtAllocator > Reader
Definition fwd.h:90
GenericStringBuffer< UTF8< char >, CrtAllocator > StringBuffer
Definition fwd.h:61
#define EXPECT_EQ(val1, val2)
Definition gtest.h:1954
#define EXPECT_TRUE(condition)
Definition gtest.h:1895
#define EXPECT_STREQ(s1, s2)
Definition gtest.h:2027
#define TEST(test_case_name, test_name)
Definition gtest.h:2275
#define RAPIDJSON_NAMESPACE
Read-only string stream.
Definition stream.h:154
char * s