1/*
2 * Copyright 2017-2023, Andrew Lindesay <apl@lindesay.co.nz>
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef JSON_END_TO_END_TEST_H
6#define JSON_END_TO_END_TEST_H
7
8
9#include <TestCase.h>
10#include <TestSuite.h>
11
12
13class Sample;
14
15
16class JsonEndToEndTest : public CppUnit::TestCase {
17public:
18								JsonEndToEndTest();
19	virtual						~JsonEndToEndTest();
20
21			void				TestHighVolumeStringParsing();
22			void				TestHighVolumeNumberParsing();
23			void				TestHighVolumeStringSampleGenerationOnly();
24			void				TestHighVolumeNumberSampleGenerationOnly();
25
26			void				TestNullA();
27			void				TestTrueA();
28			void				TestFalseA();
29			void				TestNumberA();
30			void				TestStringA();
31			void				TestStringA2();
32			void				TestStringB();
33			void				TestArrayA();
34			void				TestArrayB();
35			void				TestObjectA();
36
37			void				TestStringUnterminated();
38			void				TestArrayUnterminated();
39			void				TestObjectUnterminated();
40
41	static	void				AddTests(BTestSuite& suite);
42private:
43			void				TestUnterminated(const char* input);
44
45			void				TestParseAndWrite(const char* input,
46									const char* expectedOutput);
47};
48
49
50#endif	// JSON_END_TO_END_TEST_H
51