Monero
Loading...
Searching...
No Matches
schematest.cpp File Reference
#include "unittest.h"
#include "rapidjson/schema.h"
#include "rapidjson/stringbuffer.h"
#include "rapidjson/writer.h"
Include dependency graph for schematest.cpp:

Classes

class  RemoteSchemaDocumentProvider< SchemaDocumentType >

Macros

#define TEST_HASHER(json1, json2, expected)
#define VALIDATE(schema, json, expected)
#define INVALIDATE(schema, json, invalidSchemaPointer, invalidSchemaKeyword, invalidDocumentPointer, error)
#define INVALIDATE_(schema, json, invalidSchemaPointer, invalidSchemaKeyword, invalidDocumentPointer, error, SchemaValidatorType, PointerType)

Functions

 TEST (SchemaValidator, Hasher)
 TEST (SchemaValidator, Typeless)
 TEST (SchemaValidator, MultiType)
 TEST (SchemaValidator, Enum_Typed)
 TEST (SchemaValidator, Enum_Typless)
 TEST (SchemaValidator, Enum_InvalidType)
 TEST (SchemaValidator, AllOf)
 TEST (SchemaValidator, AnyOf)
 TEST (SchemaValidator, OneOf)
 TEST (SchemaValidator, Not)
 TEST (SchemaValidator, Ref)
 TEST (SchemaValidator, Ref_AllOf)
 TEST (SchemaValidator, String)
 TEST (SchemaValidator, String_LengthRange)
 TEST (SchemaValidator, Integer)
 TEST (SchemaValidator, Integer_Range)
 TEST (SchemaValidator, Integer_Range64Boundary)
 TEST (SchemaValidator, Integer_RangeU64Boundary)
 TEST (SchemaValidator, Integer_Range64BoundaryExclusive)
 TEST (SchemaValidator, Integer_MultipleOf)
 TEST (SchemaValidator, Integer_MultipleOf64Boundary)
 TEST (SchemaValidator, Number_Range)
 TEST (SchemaValidator, Number_RangeInt)
 TEST (SchemaValidator, Number_RangeDouble)
 TEST (SchemaValidator, Number_RangeDoubleU64Boundary)
 TEST (SchemaValidator, Number_MultipleOf)
 TEST (SchemaValidator, Number_MultipleOfOne)
 TEST (SchemaValidator, Object)
 TEST (SchemaValidator, Object_Properties)
 TEST (SchemaValidator, Object_AdditionalPropertiesBoolean)
 TEST (SchemaValidator, Object_AdditionalPropertiesObject)
 TEST (SchemaValidator, Object_Required)
 TEST (SchemaValidator, Object_Required_PassWithDefault)
 TEST (SchemaValidator, Object_PropertiesRange)
 TEST (SchemaValidator, Object_PropertyDependencies)
 TEST (SchemaValidator, Object_SchemaDependencies)
 TEST (SchemaValidator, Array)
 TEST (SchemaValidator, Array_ItemsList)
 TEST (SchemaValidator, Array_ItemsTuple)
 TEST (SchemaValidator, Array_AdditionalItmes)
 TEST (SchemaValidator, Array_ItemsRange)
 TEST (SchemaValidator, Array_UniqueItems)
 TEST (SchemaValidator, Boolean)
 TEST (SchemaValidator, Null)
 TEST (SchemaValidator, ObjectInArray)
 TEST (SchemaValidator, MultiTypeInObject)
 TEST (SchemaValidator, MultiTypeWithObject)
 TEST (SchemaValidator, AllOf_Nested)
 TEST (SchemaValidator, EscapedPointer)
template<typename Allocator>
static char * ReadFile (const char *filename, Allocator &allocator)
 TEST (SchemaValidator, ValidateMetaSchema)
 TEST (SchemaValidator, ValidateMetaSchema_UTF16)
 TEST (SchemaValidator, TestSuite)
 TEST (SchemaValidatingReader, Simple)
 TEST (SchemaValidatingReader, Invalid)
 TEST (SchemaValidatingWriter, Simple)
 TEST (Schema, Issue848)
 TEST (SchemaValidator, Issue608)
 TEST (SchemaValidator, Issue728_AllOfRef)
 TEST (SchemaValidator, Issue825)
 TEST (SchemaValidator, Issue1017_allOfHandler)
 TEST (SchemaValidator, Ref_remote)
 TEST (SchemaValidator, Ref_remote_issue1210)

Macro Definition Documentation

◆ INVALIDATE

#define INVALIDATE ( schema,
json,
invalidSchemaPointer,
invalidSchemaKeyword,
invalidDocumentPointer,
error )
Value:
{\
INVALIDATE_(schema, json, invalidSchemaPointer, invalidSchemaKeyword, invalidDocumentPointer, error, SchemaValidator, Pointer) \
}
GenericPointer< Value, CrtAllocator > Pointer
Definition fwd.h:128
GenericSchemaValidator< SchemaDocument, BaseReaderHandler< UTF8< char >, void >, CrtAllocator > SchemaValidator
Definition fwd.h:147
rapidjson::Document json
Definition transport.cpp:49

◆ INVALIDATE_

#define INVALIDATE_ ( schema,
json,
invalidSchemaPointer,
invalidSchemaKeyword,
invalidDocumentPointer,
error,
SchemaValidatorType,
PointerType )

◆ TEST_HASHER

#define TEST_HASHER ( json1,
json2,
expected )
Value:
{\
Document d1, d2;\
d1.Parse(json1);\
ASSERT_FALSE(d1.HasParseError());\
d2.Parse(json2);\
ASSERT_FALSE(d2.HasParseError());\
d1.Accept(h1);\
d2.Accept(h2);\
ASSERT_TRUE(h1.IsValid());\
ASSERT_TRUE(h2.IsValid());\
/*printf("%s: 0x%016llx\n%s: 0x%016llx\n\n", json1, h1.GetHashCode(), json2, h2.GetHashCode());*/\
EXPECT_TRUE(expected == (h1.GetHashCode() == h2.GetHashCode()));\
}
bool HasParseError() const
Whether a parse error has occurred in the last parsing.
Definition document.h:2394
GenericDocument & Parse(const typename SourceEncoding::Ch *str)
Parse JSON text from a read-only string (with Encoding conversion).
Definition document.h:2331
Definition schema.h:220
uint64_t GetHashCode() const
Definition schema.h:273
bool IsValid() const
Definition schema.h:271
GenericDocument< UTF8<> > Document
GenericDocument with UTF8 encoding.
Definition document.h:2512
Definition d2.py:1

◆ VALIDATE

#define VALIDATE ( schema,
json,
expected )
Value:
{\
SchemaValidator validator(schema);\
/*printf("\n%s\n", json);*/\
d.Parse(json);\
EXPECT_FALSE(d.HasParseError());\
EXPECT_TRUE(expected == d.Accept(validator));\
EXPECT_TRUE(expected == validator.IsValid());\
if ((expected) && !validator.IsValid()) {\
validator.GetInvalidSchemaPointer().StringifyUriFragment(sb);\
printf("Invalid schema: %s\n", sb.GetString());\
printf("Invalid keyword: %s\n", validator.GetInvalidSchemaKeyword());\
sb.Clear();\
validator.GetInvalidDocumentPointer().StringifyUriFragment(sb);\
printf("Invalid document: %s\n", sb.GetString());\
sb.Clear();\
validator.GetError().Accept(w);\
printf("Validation error: %s\n", sb.GetString());\
}\
}
const Ch * GetString() const
Definition stringbuffer.h:73
void Clear()
Definition stringbuffer.h:60
JSON writer.
Definition writer.h:89
GenericStringBuffer< UTF8< char >, CrtAllocator > StringBuffer
Definition fwd.h:61
Definition d.py:1

Function Documentation

◆ ReadFile()

template<typename Allocator>
char * ReadFile ( const char * filename,
Allocator & allocator )
static

◆ TEST() [1/62]

TEST ( Schema ,
Issue848  )

◆ TEST() [2/62]

TEST ( SchemaValidatingReader ,
Invalid  )

◆ TEST() [3/62]

TEST ( SchemaValidatingReader ,
Simple  )

◆ TEST() [4/62]

TEST ( SchemaValidatingWriter ,
Simple  )

◆ TEST() [5/62]

TEST ( SchemaValidator ,
AllOf  )

◆ TEST() [6/62]

TEST ( SchemaValidator ,
AllOf_Nested  )

◆ TEST() [7/62]

TEST ( SchemaValidator ,
AnyOf  )

◆ TEST() [8/62]

TEST ( SchemaValidator ,
Array  )

◆ TEST() [9/62]

TEST ( SchemaValidator ,
Array_AdditionalItmes  )

◆ TEST() [10/62]

TEST ( SchemaValidator ,
Array_ItemsList  )

◆ TEST() [11/62]

TEST ( SchemaValidator ,
Array_ItemsRange  )

◆ TEST() [12/62]

TEST ( SchemaValidator ,
Array_ItemsTuple  )

◆ TEST() [13/62]

TEST ( SchemaValidator ,
Array_UniqueItems  )

◆ TEST() [14/62]

TEST ( SchemaValidator ,
Boolean  )

◆ TEST() [15/62]

TEST ( SchemaValidator ,
Enum_InvalidType  )

◆ TEST() [16/62]

TEST ( SchemaValidator ,
Enum_Typed  )

◆ TEST() [17/62]

TEST ( SchemaValidator ,
Enum_Typless  )

◆ TEST() [18/62]

TEST ( SchemaValidator ,
EscapedPointer  )

◆ TEST() [19/62]

TEST ( SchemaValidator ,
Hasher  )

◆ TEST() [20/62]

TEST ( SchemaValidator ,
Integer  )

◆ TEST() [21/62]

TEST ( SchemaValidator ,
Integer_MultipleOf  )

◆ TEST() [22/62]

TEST ( SchemaValidator ,
Integer_MultipleOf64Boundary  )

◆ TEST() [23/62]

TEST ( SchemaValidator ,
Integer_Range  )

◆ TEST() [24/62]

TEST ( SchemaValidator ,
Integer_Range64Boundary  )

◆ TEST() [25/62]

TEST ( SchemaValidator ,
Integer_Range64BoundaryExclusive  )

◆ TEST() [26/62]

TEST ( SchemaValidator ,
Integer_RangeU64Boundary  )

◆ TEST() [27/62]

TEST ( SchemaValidator ,
Issue1017_allOfHandler  )

◆ TEST() [28/62]

TEST ( SchemaValidator ,
Issue608  )

◆ TEST() [29/62]

TEST ( SchemaValidator ,
Issue728_AllOfRef  )

◆ TEST() [30/62]

TEST ( SchemaValidator ,
Issue825  )

◆ TEST() [31/62]

TEST ( SchemaValidator ,
MultiType  )

◆ TEST() [32/62]

TEST ( SchemaValidator ,
MultiTypeInObject  )

◆ TEST() [33/62]

TEST ( SchemaValidator ,
MultiTypeWithObject  )

◆ TEST() [34/62]

TEST ( SchemaValidator ,
Not  )

◆ TEST() [35/62]

TEST ( SchemaValidator ,
Null  )

◆ TEST() [36/62]

TEST ( SchemaValidator ,
Number_MultipleOf  )

◆ TEST() [37/62]

TEST ( SchemaValidator ,
Number_MultipleOfOne  )

◆ TEST() [38/62]

TEST ( SchemaValidator ,
Number_Range  )

◆ TEST() [39/62]

TEST ( SchemaValidator ,
Number_RangeDouble  )

◆ TEST() [40/62]

TEST ( SchemaValidator ,
Number_RangeDoubleU64Boundary  )

◆ TEST() [41/62]

TEST ( SchemaValidator ,
Number_RangeInt  )

◆ TEST() [42/62]

TEST ( SchemaValidator ,
Object  )

◆ TEST() [43/62]

TEST ( SchemaValidator ,
Object_AdditionalPropertiesBoolean  )

◆ TEST() [44/62]

TEST ( SchemaValidator ,
Object_AdditionalPropertiesObject  )

◆ TEST() [45/62]

TEST ( SchemaValidator ,
Object_Properties  )

◆ TEST() [46/62]

TEST ( SchemaValidator ,
Object_PropertiesRange  )

◆ TEST() [47/62]

TEST ( SchemaValidator ,
Object_PropertyDependencies  )

◆ TEST() [48/62]

TEST ( SchemaValidator ,
Object_Required  )

◆ TEST() [49/62]

TEST ( SchemaValidator ,
Object_Required_PassWithDefault  )

◆ TEST() [50/62]

TEST ( SchemaValidator ,
Object_SchemaDependencies  )

◆ TEST() [51/62]

TEST ( SchemaValidator ,
ObjectInArray  )

◆ TEST() [52/62]

TEST ( SchemaValidator ,
OneOf  )

◆ TEST() [53/62]

TEST ( SchemaValidator ,
Ref  )

◆ TEST() [54/62]

TEST ( SchemaValidator ,
Ref_AllOf  )

◆ TEST() [55/62]

TEST ( SchemaValidator ,
Ref_remote  )

◆ TEST() [56/62]

TEST ( SchemaValidator ,
Ref_remote_issue1210  )

◆ TEST() [57/62]

TEST ( SchemaValidator ,
String  )

◆ TEST() [58/62]

TEST ( SchemaValidator ,
String_LengthRange  )

◆ TEST() [59/62]

TEST ( SchemaValidator ,
TestSuite  )

◆ TEST() [60/62]

TEST ( SchemaValidator ,
Typeless  )

◆ TEST() [61/62]

TEST ( SchemaValidator ,
ValidateMetaSchema  )

◆ TEST() [62/62]

TEST ( SchemaValidator ,
ValidateMetaSchema_UTF16  )