Monero
Loading...
Searching...
No Matches
Classes | Macros | Functions
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) \
}
Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator.
Definition: pointer.h:79
JSON Schema Validator.
Definition: schema.h:1765
rapidjson::Document json
Definition: transport.cpp:50

◆ 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
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
Definition: d.py:1

Function Documentation

◆ ReadFile()

template<typename Allocator >
static 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   
)