source: branches/work_320/RapidJSONTests.cpp @ 679

Revision 322, 2.2 KB checked in by jls17, 7 years ago (diff)
  • added a class for tar stream support
  • disabled some tests; those are crashing on linux
Line 
1#include "ARInsideTest.h"
2#include "rapidjson/document.h"
3#include "rapidjson/filestream.h"
4#include "rapidjson/prettywriter.h"
5#include "rapidjson/genericwritestream.h"
6
7using namespace rapidjson;
8
9TEST(RapidJSONTests, GenerateArray)
10{
11        Document document;
12        Document::AllocatorType& allocator = document.GetAllocator();
13
14        document.SetArray();
15        ASSERT_TRUE(document.IsArray());
16
17        document.PushBack("Test1", allocator);
18        document.PushBack("Test2", allocator);
19
20        Value item;
21        item.SetObject();
22        item.AddMember("Id", 1, allocator);
23        item.AddMember("Name", "ARInside", allocator);
24        document.PushBack(item, allocator);
25
26        // check array size
27        ASSERT_EQ(3, document.Size());
28
29        FileStream f(stdout);
30        Writer<FileStream> writer(f);
31        document.Accept(writer);
32        cout << endl;
33}
34
35TEST(RapidJSONTests, CreateInMemoryStream)
36{
37        Document document;
38        Document::AllocatorType& allocator = document.GetAllocator();
39
40        document.SetArray();
41        ASSERT_TRUE(document.IsArray());
42
43        document.PushBack("Test1", allocator);
44        document.PushBack("Test2", allocator);
45
46        Value item;
47        item.SetObject();
48        item.AddMember("Id", 1, allocator);
49        item.AddMember("Name", "ARInside", allocator);
50        document.PushBack(item, allocator);
51
52        // check array size
53        ASSERT_EQ(3, document.Size());
54
55        stringstream strm;
56        GenericWriteStream output(strm);
57        Writer<GenericWriteStream> writer(output);
58        document.Accept(writer);
59
60        string result = strm.str();
61        ASSERT_EQ("[\"Test1\",\"Test2\",{\"Id\":1,\"Name\":\"ARInside\"}]", result);
62}
63
64string generateRapidJsonValueString(int num)
65{
66        stringstream strm;
67        strm << "Value" << num;
68        return strm.str();
69}
70
71TEST(RapidJSONTests, AllocatorTest)
72{
73        Document document;
74        Document::AllocatorType& allocator = document.GetAllocator();
75
76        document.SetArray();
77        ASSERT_TRUE(document.IsArray());
78
79        for (int i = 0; i < 3; i++)
80        {
81                string value = generateRapidJsonValueString(i);
82                Value item(value.c_str(), value.size(), allocator);
83                document.PushBack(item, allocator);
84        }
85
86        stringstream strm;
87        GenericWriteStream output(strm);
88        Writer<GenericWriteStream> writer(output);
89        document.Accept(writer);
90
91        string result = strm.str();
92        ASSERT_EQ("[\"Value0\",\"Value1\",\"Value2\"]",result);
93}
94
Note: See TracBrowser for help on using the repository browser.