tests.h 4.57 KB
Newer Older
jbeder's avatar
jbeder committed
1
2
3
4
5
#pragma once

#ifndef TESTS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
#define TESTS_H_62B23520_7C8E_11DE_8A39_0800200C9A66

6
7
#include <string>

8
9
namespace YAML { class Emitter; }

10
namespace Test {
11
	void RunAll();
12
	
13
	bool RunParserTests();
14
	bool RunEmitterTests();
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

	namespace Parser {
		// scalar tests
		void SimpleScalar(std::string& inputScalar, std::string& desiredOutput);
		void MultiLineScalar(std::string& inputScalar, std::string& desiredOutput);
		void LiteralScalar(std::string& inputScalar, std::string& desiredOutput);
		void FoldedScalar(std::string& inputScalar, std::string& desiredOutput);
		void ChompedFoldedScalar(std::string& inputScalar, std::string& desiredOutput);
		void ChompedLiteralScalar(std::string& inputScalar, std::string& desiredOutput);
		void FoldedScalarWithIndent(std::string& inputScalar, std::string& desiredOutput);
		void ColonScalar(std::string& inputScalar, std::string& desiredOutput);
		void QuotedScalar(std::string& inputScalar, std::string& desiredOutput);
		void CommaScalar(std::string& inputScalar, std::string& desiredOutput);
		void DashScalar(std::string& inputScalar, std::string& desiredOutput);
		void URLScalar(std::string& inputScalar, std::string& desiredOutput);

		// misc tests
		bool SimpleSeq();
		bool SimpleMap();
		bool FlowSeq();
		bool FlowMap();
36
37
		bool FlowMapWithOmittedKey();
		bool FlowMapWithOmittedValue();
38
		bool QuotedSimpleKeys();
39
		bool CompressedMapAndSeq();
jbeder's avatar
jbeder committed
40
41
42
		bool NullBlockSeqEntry();
		bool NullBlockMapKey();
		bool NullBlockMapValue();
43
44
		bool SimpleAlias();
		bool AliasWithNull();
45
46
		bool ExplicitDoc();
		bool MultipleDocs();
47
48
		bool ExplicitEndDoc();
		bool MultipleDocsWithSomeExplicitIndicators();
49
	}
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
	
	namespace Emitter {
		// correct emitting
		void SimpleScalar(YAML::Emitter& out, std::string& desiredOutput);
		void SimpleSeq(YAML::Emitter& out, std::string& desiredOutput);
		void SimpleFlowSeq(YAML::Emitter& ouptut, std::string& desiredOutput);
		void EmptyFlowSeq(YAML::Emitter& out, std::string& desiredOutput);
		void NestedBlockSeq(YAML::Emitter& out, std::string& desiredOutput);
		void NestedFlowSeq(YAML::Emitter& out, std::string& desiredOutput);
		void SimpleMap(YAML::Emitter& out, std::string& desiredOutput);
		void SimpleFlowMap(YAML::Emitter& out, std::string& desiredOutput);
		void MapAndList(YAML::Emitter& out, std::string& desiredOutput);
		void ListAndMap(YAML::Emitter& out, std::string& desiredOutput);
		void NestedBlockMap(YAML::Emitter& out, std::string& desiredOutput);
		void NestedFlowMap(YAML::Emitter& out, std::string& desiredOutput);
		void MapListMix(YAML::Emitter& out, std::string& desiredOutput);
		void SimpleLongKey(YAML::Emitter& out, std::string& desiredOutput);
		void SingleLongKey(YAML::Emitter& out, std::string& desiredOutput);
		void ComplexLongKey(YAML::Emitter& out, std::string& desiredOutput);
		void AutoLongKey(YAML::Emitter& out, std::string& desiredOutput);
		void ScalarFormat(YAML::Emitter& out, std::string& desiredOutput);
		void AutoLongKeyScalar(YAML::Emitter& out, std::string& desiredOutput);
		void LongKeyFlowMap(YAML::Emitter& out, std::string& desiredOutput);
		void BlockMapAsKey(YAML::Emitter& out, std::string& desiredOutput);
		void AliasAndAnchor(YAML::Emitter& out, std::string& desiredOutput);
75
		void AliasAndAnchorWithNull(YAML::Emitter& out, std::string& desiredOutput);
76
77
78
79
80
81
82
83
		void ComplexDoc(YAML::Emitter& out, std::string& desiredOutput);
		void STLContainers(YAML::Emitter& out, std::string& desiredOutput);
		void SimpleComment(YAML::Emitter& out, std::string& desiredOutput);
		void MultiLineComment(YAML::Emitter& out, std::string& desiredOutput);
		void ComplexComments(YAML::Emitter& out, std::string& desiredOutput);
		void Indentation(YAML::Emitter& out, std::string& desiredOutput);
		void SimpleGlobalSettings(YAML::Emitter& out, std::string& desiredOutput);
		void ComplexGlobalSettings(YAML::Emitter& out, std::string& desiredOutput);
84
		void Null(YAML::Emitter& out, std::string& desiredOutput);
85
86
87
88
89
90
91
92
93
94
95
96

		// incorrect emitting
		void ExtraEndSeq(YAML::Emitter& out, std::string& desiredError);
		void ExtraEndMap(YAML::Emitter& out, std::string& desiredError);
		void BadSingleQuoted(YAML::Emitter& out, std::string& desiredError);
		void InvalidAnchor(YAML::Emitter& out, std::string& desiredError);
		void InvalidAlias(YAML::Emitter& out, std::string& desiredError);
		void MissingKey(YAML::Emitter& out, std::string& desiredError);
		void MissingValue(YAML::Emitter& out, std::string& desiredError);
		void UnexpectedKey(YAML::Emitter& out, std::string& desiredError);
		void UnexpectedValue(YAML::Emitter& out, std::string& desiredError);
	}
97
}
jbeder's avatar
jbeder committed
98
99

#endif // TESTS_H_62B23520_7C8E_11DE_8A39_0800200C9A66