From 536ba14b74477e0151e558ba6420c1114d513f6d Mon Sep 17 00:00:00 2001 From: Juan Cruz Viotti Date: Tue, 23 Dec 2025 09:46:49 -0400 Subject: [PATCH] Separate semantic and ordering dependencies in the walker Signed-off-by: Juan Cruz Viotti --- .../sourcemeta/core/jsonschema_types.h | 8 +- src/core/jsonschema/jsonschema.cc | 13 +- src/core/jsonschema/known_walker.cc | 138 +++++++++++------ .../common/unnecessary_allof_wrapper.h | 9 +- .../alterschema_lint_2020_12_test.cc | 2 +- .../jsonschema_walker_2019_09_test.cc | 141 ++++++++++++++++- .../jsonschema_walker_2020_12_test.cc | 145 +++++++++++++++++- .../jsonschema_walker_draft0_test.cc | 76 +++++++++ .../jsonschema_walker_draft1_test.cc | 76 +++++++++ .../jsonschema_walker_draft2_test.cc | 76 +++++++++ .../jsonschema_walker_draft3_test.cc | 53 +++++++ .../jsonschema_walker_draft4_test.cc | 64 +++++++- .../jsonschema_walker_draft6_test.cc | 68 +++++++- .../jsonschema_walker_draft7_test.cc | 84 +++++++++- .../jsonschema_walker_openapi_test.cc | 16 ++ test/jsonschema/jsonschema_walker_test.cc | 7 +- 16 files changed, 907 insertions(+), 69 deletions(-) diff --git a/src/core/jsonschema/include/sourcemeta/core/jsonschema_types.h b/src/core/jsonschema/include/sourcemeta/core/jsonschema_types.h index b0c269f3a..8f2845bc1 100644 --- a/src/core/jsonschema/include/sourcemeta/core/jsonschema_types.h +++ b/src/core/jsonschema/include/sourcemeta/core/jsonschema_types.h @@ -161,6 +161,9 @@ struct SchemaWalkerResult { /// The keywords a given keyword depends on (if any) during the evaluation /// process std::unordered_set dependencies; + /// The keywords a given keyword depends on for evaluation ordering purposes + /// only (not semantic dependencies) + std::unordered_set order_dependencies; /// The JSON instance types that this keyword applies to (empty means all) JSON::TypeSet instances; @@ -175,9 +178,12 @@ struct SchemaWalkerResult { SchemaWalkerResult(SchemaKeywordType type_, std::optional vocabulary_, std::unordered_set dependencies_, + std::unordered_set order_dependencies_, JSON::TypeSet instances_) : type{type_}, vocabulary{std::move(vocabulary_)}, - dependencies{std::move(dependencies_)}, instances{instances_} {} + dependencies{std::move(dependencies_)}, + order_dependencies{std::move(order_dependencies_)}, + instances{instances_} {} }; /// @ingroup jsonschema diff --git a/src/core/jsonschema/jsonschema.cc b/src/core/jsonschema/jsonschema.cc index 20e30ad73..b7be25a53 100644 --- a/src/core/jsonschema/jsonschema.cc +++ b/src/core/jsonschema/jsonschema.cc @@ -474,14 +474,23 @@ auto sourcemeta::core::schema_keyword_priority( const sourcemeta::core::Vocabularies &vocabularies, const sourcemeta::core::SchemaWalker &walker) -> std::uint64_t { const auto &result{walker(keyword, vocabularies)}; - return std::accumulate( + const auto priority_from_dependencies{std::accumulate( result.dependencies.cbegin(), result.dependencies.cend(), static_cast(0), [&vocabularies, &walker](const auto accumulator, const auto &dependency) { return std::max( accumulator, schema_keyword_priority(dependency, vocabularies, walker) + 1); - }); + })}; + const auto priority_from_order_dependencies{std::accumulate( + result.order_dependencies.cbegin(), result.order_dependencies.cend(), + static_cast(0), + [&vocabularies, &walker](const auto accumulator, const auto &dependency) { + return std::max( + accumulator, + schema_keyword_priority(dependency, vocabularies, walker) + 1); + })}; + return std::max(priority_from_dependencies, priority_from_order_dependencies); } auto sourcemeta::core::wrap(const sourcemeta::core::JSON::String &identifier) diff --git a/src/core/jsonschema/known_walker.cc b/src/core/jsonschema/known_walker.cc index 56e199f69..88e197709 100644 --- a/src/core/jsonschema/known_walker.cc +++ b/src/core/jsonschema/known_walker.cc @@ -11,10 +11,10 @@ using KeywordHandler = const SchemaWalkerResult &(*)(const Vocabularies &vocabularies); static const SchemaWalkerResult UNKNOWN_RESULT{ - SchemaKeywordType::Unknown, std::nullopt, {}, {}}; + SchemaKeywordType::Unknown, std::nullopt, {}, {}, {}}; static const SchemaWalkerResult UNKNOWN_WITH_REF_RESULT{ - SchemaKeywordType::Unknown, std::nullopt, {"$ref"}, {}}; + SchemaKeywordType::Unknown, std::nullopt, {"$ref"}, {}, {}}; auto has_draft3_to_7(const Vocabularies &vocabularies) -> bool { return vocabularies.contains(Known::JSON_Schema_Draft_7) || @@ -30,14 +30,21 @@ auto has_draft3_to_7(const Vocabularies &vocabularies) -> bool { #define RETURN_WITH_DEPENDENCIES(_vocabulary, _types, _strategy, ...) \ { \ static const SchemaWalkerResult result{ \ - SchemaKeywordType::_strategy, _vocabulary, {__VA_ARGS__}, _types}; \ + SchemaKeywordType::_strategy, _vocabulary, {__VA_ARGS__}, {}, _types}; \ + return result; \ + } + +#define RETURN_WITH_ORDER_DEPENDENCIES(_vocabulary, _types, _strategy, ...) \ + { \ + static const SchemaWalkerResult result{ \ + SchemaKeywordType::_strategy, _vocabulary, {}, {__VA_ARGS__}, _types}; \ return result; \ } #define RETURN(_vocabulary, _types, _strategy) \ { \ static const SchemaWalkerResult result{ \ - SchemaKeywordType::_strategy, _vocabulary, {}, _types}; \ + SchemaKeywordType::_strategy, _vocabulary, {}, {}, _types}; \ return result; \ } @@ -47,6 +54,13 @@ auto has_draft3_to_7(const Vocabularies &vocabularies) -> bool { RETURN_WITH_DEPENDENCIES(_vocabulary, _types, _strategy, __VA_ARGS__) \ } +#define CHECK_VOCABULARY_WITH_ORDER_DEPENDENCIES(_vocabulary, _types, \ + _strategy, ...) \ + if (vocabularies.contains(_vocabulary)) { \ + RETURN_WITH_ORDER_DEPENDENCIES(_vocabulary, _types, _strategy, \ + __VA_ARGS__) \ + } + #define CHECK_VOCABULARY(_vocabulary, _types, _strategy) \ if (vocabularies.contains(_vocabulary)) { \ RETURN(_vocabulary, _types, _strategy) \ @@ -340,7 +354,7 @@ auto handle_properties(const Vocabularies &vocabularies) -> const SchemaWalkerResult & { if (vocabularies.contains(Known::JSON_Schema_2020_12_Applicator)) { if (vocabularies.contains(Known::JSON_Schema_2020_12_Validation)) { - RETURN_WITH_DEPENDENCIES( + RETURN_WITH_ORDER_DEPENDENCIES( Known::JSON_Schema_2020_12_Applicator, make_set({JSON::Type::Object}), ApplicatorMembersTraversePropertyStatic, "required") } @@ -350,7 +364,7 @@ auto handle_properties(const Vocabularies &vocabularies) } if (vocabularies.contains(Known::JSON_Schema_2019_09_Applicator)) { if (vocabularies.contains(Known::JSON_Schema_2019_09_Validation)) { - RETURN_WITH_DEPENDENCIES( + RETURN_WITH_ORDER_DEPENDENCIES( Known::JSON_Schema_2019_09_Applicator, make_set({JSON::Type::Object}), ApplicatorMembersTraversePropertyStatic, "required") } @@ -358,24 +372,60 @@ auto handle_properties(const Vocabularies &vocabularies) make_set({JSON::Type::Object}), ApplicatorMembersTraversePropertyStatic) } - CHECK_VOCABULARY_WITH_DEPENDENCIES( - Known::JSON_Schema_Draft_7, make_set({JSON::Type::Object}), - ApplicatorMembersTraversePropertyStatic, "$ref", "required") - CHECK_VOCABULARY_WITH_DEPENDENCIES( - Known::JSON_Schema_Draft_7_Hyper, make_set({JSON::Type::Object}), - ApplicatorMembersTraversePropertyStatic, "$ref", "required") - CHECK_VOCABULARY_WITH_DEPENDENCIES( - Known::JSON_Schema_Draft_6, make_set({JSON::Type::Object}), - ApplicatorMembersTraversePropertyStatic, "$ref", "required") - CHECK_VOCABULARY_WITH_DEPENDENCIES( - Known::JSON_Schema_Draft_6_Hyper, make_set({JSON::Type::Object}), - ApplicatorMembersTraversePropertyStatic, "$ref", "required") - CHECK_VOCABULARY_WITH_DEPENDENCIES( - Known::JSON_Schema_Draft_4, make_set({JSON::Type::Object}), - ApplicatorMembersTraversePropertyStatic, "$ref", "required") - CHECK_VOCABULARY_WITH_DEPENDENCIES( - Known::JSON_Schema_Draft_4_Hyper, make_set({JSON::Type::Object}), - ApplicatorMembersTraversePropertyStatic, "$ref", "required") + if (vocabularies.contains(Known::JSON_Schema_Draft_7)) { + static const SchemaWalkerResult result{ + SchemaKeywordType::ApplicatorMembersTraversePropertyStatic, + Known::JSON_Schema_Draft_7, + {"$ref"}, + {"required"}, + make_set({JSON::Type::Object})}; + return result; + } + if (vocabularies.contains(Known::JSON_Schema_Draft_7_Hyper)) { + static const SchemaWalkerResult result{ + SchemaKeywordType::ApplicatorMembersTraversePropertyStatic, + Known::JSON_Schema_Draft_7_Hyper, + {"$ref"}, + {"required"}, + make_set({JSON::Type::Object})}; + return result; + } + if (vocabularies.contains(Known::JSON_Schema_Draft_6)) { + static const SchemaWalkerResult result{ + SchemaKeywordType::ApplicatorMembersTraversePropertyStatic, + Known::JSON_Schema_Draft_6, + {"$ref"}, + {"required"}, + make_set({JSON::Type::Object})}; + return result; + } + if (vocabularies.contains(Known::JSON_Schema_Draft_6_Hyper)) { + static const SchemaWalkerResult result{ + SchemaKeywordType::ApplicatorMembersTraversePropertyStatic, + Known::JSON_Schema_Draft_6_Hyper, + {"$ref"}, + {"required"}, + make_set({JSON::Type::Object})}; + return result; + } + if (vocabularies.contains(Known::JSON_Schema_Draft_4)) { + static const SchemaWalkerResult result{ + SchemaKeywordType::ApplicatorMembersTraversePropertyStatic, + Known::JSON_Schema_Draft_4, + {"$ref"}, + {"required"}, + make_set({JSON::Type::Object})}; + return result; + } + if (vocabularies.contains(Known::JSON_Schema_Draft_4_Hyper)) { + static const SchemaWalkerResult result{ + SchemaKeywordType::ApplicatorMembersTraversePropertyStatic, + Known::JSON_Schema_Draft_4_Hyper, + {"$ref"}, + {"required"}, + make_set({JSON::Type::Object})}; + return result; + } CHECK_VOCABULARY_WITH_DEPENDENCIES( Known::JSON_Schema_Draft_3, make_set({JSON::Type::Object}), ApplicatorMembersTraversePropertyStatic, "$ref") @@ -718,30 +768,30 @@ auto handle_type(const Vocabularies &vocabularies) -> const SchemaWalkerResult & { if (vocabularies.contains(Known::JSON_Schema_2020_12_Validation)) { if (vocabularies.contains(Known::JSON_Schema_2020_12_Applicator)) { - RETURN_WITH_DEPENDENCIES(Known::JSON_Schema_2020_12_Validation, {}, - Assertion, "properties") + RETURN_WITH_ORDER_DEPENDENCIES(Known::JSON_Schema_2020_12_Validation, {}, + Assertion, "properties") } RETURN(Known::JSON_Schema_2020_12_Validation, {}, Assertion) } if (vocabularies.contains(Known::JSON_Schema_2019_09_Validation)) { if (vocabularies.contains(Known::JSON_Schema_2019_09_Applicator)) { - RETURN_WITH_DEPENDENCIES(Known::JSON_Schema_2019_09_Validation, {}, - Assertion, "properties") + RETURN_WITH_ORDER_DEPENDENCIES(Known::JSON_Schema_2019_09_Validation, {}, + Assertion, "properties") } RETURN(Known::JSON_Schema_2019_09_Validation, {}, Assertion) } - CHECK_VOCABULARY_WITH_DEPENDENCIES(Known::JSON_Schema_Draft_7, {}, Assertion, - ("properties")) - CHECK_VOCABULARY_WITH_DEPENDENCIES(Known::JSON_Schema_Draft_7_Hyper, {}, - Assertion, "properties") - CHECK_VOCABULARY_WITH_DEPENDENCIES(Known::JSON_Schema_Draft_6, {}, Assertion, - ("properties")) - CHECK_VOCABULARY_WITH_DEPENDENCIES(Known::JSON_Schema_Draft_6_Hyper, {}, - Assertion, "properties") - CHECK_VOCABULARY_WITH_DEPENDENCIES(Known::JSON_Schema_Draft_4, {}, Assertion, - ("properties")) - CHECK_VOCABULARY_WITH_DEPENDENCIES(Known::JSON_Schema_Draft_4_Hyper, {}, - Assertion, "properties") + CHECK_VOCABULARY_WITH_ORDER_DEPENDENCIES(Known::JSON_Schema_Draft_7, {}, + Assertion, "properties") + CHECK_VOCABULARY_WITH_ORDER_DEPENDENCIES(Known::JSON_Schema_Draft_7_Hyper, {}, + Assertion, "properties") + CHECK_VOCABULARY_WITH_ORDER_DEPENDENCIES(Known::JSON_Schema_Draft_6, {}, + Assertion, "properties") + CHECK_VOCABULARY_WITH_ORDER_DEPENDENCIES(Known::JSON_Schema_Draft_6_Hyper, {}, + Assertion, "properties") + CHECK_VOCABULARY_WITH_ORDER_DEPENDENCIES(Known::JSON_Schema_Draft_4, {}, + Assertion, "properties") + CHECK_VOCABULARY_WITH_ORDER_DEPENDENCIES(Known::JSON_Schema_Draft_4_Hyper, {}, + Assertion, "properties") CHECK_VOCABULARY_WITH_DEPENDENCIES(Known::JSON_Schema_Draft_3, {}, ApplicatorElementsInPlaceSome, "$ref") CHECK_VOCABULARY_WITH_DEPENDENCIES(Known::JSON_Schema_Draft_3_Hyper, {}, @@ -834,10 +884,10 @@ auto handle_multipleOf(const Vocabularies &vocabularies) auto handle_maximum(const Vocabularies &vocabularies) -> const SchemaWalkerResult & { - CHECK_VOCABULARY_WITH_DEPENDENCIES( + CHECK_VOCABULARY_WITH_ORDER_DEPENDENCIES( Known::JSON_Schema_2020_12_Validation, make_set({JSON::Type::Integer, JSON::Type::Real}), Assertion, "type") - CHECK_VOCABULARY_WITH_DEPENDENCIES( + CHECK_VOCABULARY_WITH_ORDER_DEPENDENCIES( Known::JSON_Schema_2019_09_Validation, make_set({JSON::Type::Integer, JSON::Type::Real}), Assertion, "type") CHECK_VOCABULARY_WITH_DEPENDENCIES( @@ -881,10 +931,10 @@ auto handle_maximum(const Vocabularies &vocabularies) auto handle_minimum(const Vocabularies &vocabularies) -> const SchemaWalkerResult & { - CHECK_VOCABULARY_WITH_DEPENDENCIES( + CHECK_VOCABULARY_WITH_ORDER_DEPENDENCIES( Known::JSON_Schema_2020_12_Validation, make_set({JSON::Type::Integer, JSON::Type::Real}), Assertion, "type") - CHECK_VOCABULARY_WITH_DEPENDENCIES( + CHECK_VOCABULARY_WITH_ORDER_DEPENDENCIES( Known::JSON_Schema_2019_09_Validation, make_set({JSON::Type::Integer, JSON::Type::Real}), Assertion, "type") CHECK_VOCABULARY_WITH_DEPENDENCIES( diff --git a/src/extension/alterschema/common/unnecessary_allof_wrapper.h b/src/extension/alterschema/common/unnecessary_allof_wrapper.h index db0b44da8..6f9b668ec 100644 --- a/src/extension/alterschema/common/unnecessary_allof_wrapper.h +++ b/src/extension/alterschema/common/unnecessary_allof_wrapper.h @@ -67,8 +67,7 @@ class UnnecessaryAllOfWrapper final : public SchemaTransformRule { continue; } - if (metadata.type != SchemaKeywordType::Assertion && - dependency_blocked.contains(keyword)) { + if (dependency_blocked.contains(keyword)) { continue; } @@ -77,11 +76,7 @@ class UnnecessaryAllOfWrapper final : public SchemaTransformRule { continue; } - // TODO: Fix the fact that the walker declares dependencies for - // evaluation order convenience, not semantic dependencies (i.e. many - // assertion keywords depend on `type`) - if (metadata.type != SchemaKeywordType::Assertion && - std::ranges::any_of( + if (std::ranges::any_of( metadata.dependencies, [&](const auto &dependency) { return !entry.defines(std::string{dependency}) && (schema.defines(std::string{dependency}) || diff --git a/test/alterschema/alterschema_lint_2020_12_test.cc b/test/alterschema/alterschema_lint_2020_12_test.cc index c7ba9a119..3c67bd04d 100644 --- a/test/alterschema/alterschema_lint_2020_12_test.cc +++ b/test/alterschema/alterschema_lint_2020_12_test.cc @@ -2593,8 +2593,8 @@ TEST( "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "$ref": "https://example.com/foo", + "properties": { "bar": { "type": "string" } }, "allOf": [ - { "properties": { "bar": { "type": "string" } } }, { "$ref": "https://example.com/baz", "type": "object" } ] })JSON"); diff --git a/test/jsonschema/jsonschema_walker_2019_09_test.cc b/test/jsonschema/jsonschema_walker_2019_09_test.cc index c563a8809..809324cbb 100644 --- a/test/jsonschema/jsonschema_walker_2019_09_test.cc +++ b/test/jsonschema/jsonschema_walker_2019_09_test.cc @@ -49,6 +49,7 @@ TEST(JSONSchema_walker_2019_09, core_schema) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Core); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -59,6 +60,7 @@ TEST(JSONSchema_walker_2019_09, core_vocabulary) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Core); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -69,6 +71,7 @@ TEST(JSONSchema_walker_2019_09, core_id) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Core); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -79,6 +82,7 @@ TEST(JSONSchema_walker_2019_09, core_anchor) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Core); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -90,6 +94,7 @@ TEST(JSONSchema_walker_2019_09, core_recursiveAnchor) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Core); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -100,6 +105,7 @@ TEST(JSONSchema_walker_2019_09, core_ref) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Core); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -110,6 +116,7 @@ TEST(JSONSchema_walker_2019_09, core_recursiveRef) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Core); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -120,6 +127,7 @@ TEST(JSONSchema_walker_2019_09, core_defs) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Core); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -130,6 +138,7 @@ TEST(JSONSchema_walker_2019_09, core_comment) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Core); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -141,6 +150,7 @@ TEST(JSONSchema_walker_2019_09, applicator_allOf) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Applicator); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -152,6 +162,7 @@ TEST(JSONSchema_walker_2019_09, applicator_anyOf) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Applicator); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -163,6 +174,7 @@ TEST(JSONSchema_walker_2019_09, applicator_oneOf) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Applicator); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -174,6 +186,7 @@ TEST(JSONSchema_walker_2019_09, applicator_not) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Applicator); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -185,6 +198,7 @@ TEST(JSONSchema_walker_2019_09, applicator_if) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Applicator); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -197,6 +211,7 @@ TEST(JSONSchema_walker_2019_09, applicator_then) { JSON_Schema_2019_09_Applicator); const std::unordered_set expected{"if"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -209,6 +224,7 @@ TEST(JSONSchema_walker_2019_09, applicator_else) { JSON_Schema_2019_09_Applicator); const std::unordered_set expected{"if"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -221,6 +237,7 @@ TEST(JSONSchema_walker_2019_09, applicator_dependentSchemas) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Applicator); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -234,6 +251,7 @@ TEST(JSONSchema_walker_2019_09, applicator_items) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Applicator); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -248,6 +266,7 @@ TEST(JSONSchema_walker_2019_09, applicator_additionalItems) { JSON_Schema_2019_09_Applicator); const std::unordered_set expected{"items"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -261,6 +280,7 @@ TEST(JSONSchema_walker_2019_09, applicator_contains_only) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Applicator); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -276,6 +296,7 @@ TEST(JSONSchema_walker_2019_09, applicator_contains_with_validation) { const std::unordered_set expected{"minContains", "maxContains"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -290,6 +311,7 @@ TEST(JSONSchema_walker_2019_09, applicator_properties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Applicator); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -304,6 +326,7 @@ TEST(JSONSchema_walker_2019_09, applicator_patternProperties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Applicator); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -320,6 +343,7 @@ TEST(JSONSchema_walker_2019_09, applicator_additionalProperties) { const std::unordered_set expected{"properties", "patternProperties"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -334,6 +358,7 @@ TEST(JSONSchema_walker_2019_09, applicator_propertyNames) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Applicator); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -349,6 +374,7 @@ TEST(JSONSchema_walker_2019_09, applicator_unevaluatedItems) { const std::unordered_set expected{"items", "additionalItems"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -365,6 +391,7 @@ TEST(JSONSchema_walker_2019_09, applicator_unevaluatedProperties) { const std::unordered_set expected{ "properties", "patternProperties", "additionalProperties"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -377,6 +404,7 @@ TEST(JSONSchema_walker_2019_09, validation_type) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -388,6 +416,7 @@ TEST(JSONSchema_walker_2019_09, validation_enum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -399,6 +428,7 @@ TEST(JSONSchema_walker_2019_09, validation_const) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -411,6 +441,7 @@ TEST(JSONSchema_walker_2019_09, validation_multipleOf) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -424,8 +455,9 @@ TEST(JSONSchema_walker_2019_09, validation_maximum) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Validation); + EXPECT_TRUE(result.dependencies.empty()); const std::unordered_set expected{"type"}; - EXPECT_EQ(result.dependencies, expected); + EXPECT_EQ(result.order_dependencies, expected); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -439,8 +471,9 @@ TEST(JSONSchema_walker_2019_09, validation_minimum) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Validation); + EXPECT_TRUE(result.dependencies.empty()); const std::unordered_set expected{"type"}; - EXPECT_EQ(result.dependencies, expected); + EXPECT_EQ(result.order_dependencies, expected); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -456,6 +489,7 @@ TEST(JSONSchema_walker_2019_09, validation_exclusiveMaximum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -471,6 +505,7 @@ TEST(JSONSchema_walker_2019_09, validation_exclusiveMinimum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -486,6 +521,7 @@ TEST(JSONSchema_walker_2019_09, validation_maxLength) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -499,6 +535,7 @@ TEST(JSONSchema_walker_2019_09, validation_minLength) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -511,6 +548,7 @@ TEST(JSONSchema_walker_2019_09, validation_pattern) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -524,6 +562,7 @@ TEST(JSONSchema_walker_2019_09, validation_maxItems) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -537,6 +576,7 @@ TEST(JSONSchema_walker_2019_09, validation_minItems) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -550,6 +590,7 @@ TEST(JSONSchema_walker_2019_09, validation_uniqueItems) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -563,6 +604,7 @@ TEST(JSONSchema_walker_2019_09, validation_maxContains) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -576,6 +618,7 @@ TEST(JSONSchema_walker_2019_09, validation_minContains) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -589,6 +632,7 @@ TEST(JSONSchema_walker_2019_09, validation_maxProperties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -602,6 +646,7 @@ TEST(JSONSchema_walker_2019_09, validation_minProperties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -615,6 +660,7 @@ TEST(JSONSchema_walker_2019_09, validation_required) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -628,6 +674,7 @@ TEST(JSONSchema_walker_2019_09, validation_dependentRequired) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -640,6 +687,7 @@ TEST(JSONSchema_walker_2019_09, format_format) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Format); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -653,6 +701,7 @@ TEST(JSONSchema_walker_2019_09, content_contentEncoding) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Content); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -666,6 +715,7 @@ TEST(JSONSchema_walker_2019_09, content_contentMediaType) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Content); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -679,6 +729,7 @@ TEST(JSONSchema_walker_2019_09, content_contentSchema) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Content); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -691,6 +742,7 @@ TEST(JSONSchema_walker_2019_09, metadata_title) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Meta_Data); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -703,6 +755,7 @@ TEST(JSONSchema_walker_2019_09, metadata_description) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Meta_Data); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -714,6 +767,7 @@ TEST(JSONSchema_walker_2019_09, metadata_default) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Meta_Data); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -726,6 +780,7 @@ TEST(JSONSchema_walker_2019_09, metadata_deprecated) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Meta_Data); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -737,6 +792,7 @@ TEST(JSONSchema_walker_2019_09, metadata_readOnly) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Meta_Data); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -748,6 +804,7 @@ TEST(JSONSchema_walker_2019_09, metadata_writeOnly) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Meta_Data); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -759,6 +816,7 @@ TEST(JSONSchema_walker_2019_09, metadata_examples) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Meta_Data); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -770,6 +828,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_base) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -781,6 +840,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_links) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -792,6 +852,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_href) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -803,6 +864,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_anchor) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -815,6 +877,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_anchorPointer) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -826,6 +889,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_rel) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -838,6 +902,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_templatePointers) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -850,6 +915,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_templateRequired) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -862,6 +928,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_targetMediaType) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -874,6 +941,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_targetHints) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -886,6 +954,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_submissionMediaType) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -898,6 +967,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_hrefSchema) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -910,6 +980,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_targetSchema) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -922,6 +993,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_headerSchema) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -934,6 +1006,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_submissionSchema) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -943,6 +1016,7 @@ TEST(JSONSchema_walker_2019_09, applicator_allOf_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -952,6 +1026,7 @@ TEST(JSONSchema_walker_2019_09, applicator_anyOf_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -961,6 +1036,7 @@ TEST(JSONSchema_walker_2019_09, applicator_oneOf_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -970,6 +1046,7 @@ TEST(JSONSchema_walker_2019_09, applicator_not_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -979,6 +1056,7 @@ TEST(JSONSchema_walker_2019_09, applicator_if_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -988,6 +1066,7 @@ TEST(JSONSchema_walker_2019_09, applicator_then_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -997,6 +1076,7 @@ TEST(JSONSchema_walker_2019_09, applicator_else_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1008,6 +1088,7 @@ TEST(JSONSchema_walker_2019_09, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1018,6 +1099,7 @@ TEST(JSONSchema_walker_2019_09, applicator_additionalItems_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1027,6 +1109,7 @@ TEST(JSONSchema_walker_2019_09, applicator_items_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1036,6 +1119,7 @@ TEST(JSONSchema_walker_2019_09, applicator_contains_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1045,6 +1129,7 @@ TEST(JSONSchema_walker_2019_09, applicator_properties_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1056,6 +1141,7 @@ TEST(JSONSchema_walker_2019_09, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1067,6 +1153,7 @@ TEST(JSONSchema_walker_2019_09, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1076,6 +1163,7 @@ TEST(JSONSchema_walker_2019_09, applicator_propertyNames_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1087,6 +1175,7 @@ TEST(JSONSchema_walker_2019_09, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1098,6 +1187,7 @@ TEST(JSONSchema_walker_2019_09, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1107,6 +1197,7 @@ TEST(JSONSchema_walker_2019_09, validation_type_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1116,6 +1207,7 @@ TEST(JSONSchema_walker_2019_09, validation_enum_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1125,6 +1217,7 @@ TEST(JSONSchema_walker_2019_09, validation_const_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1134,6 +1227,7 @@ TEST(JSONSchema_walker_2019_09, validation_multipleOf_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1143,6 +1237,7 @@ TEST(JSONSchema_walker_2019_09, validation_maximum_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1152,6 +1247,7 @@ TEST(JSONSchema_walker_2019_09, validation_minimum_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1163,6 +1259,7 @@ TEST(JSONSchema_walker_2019_09, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1174,6 +1271,7 @@ TEST(JSONSchema_walker_2019_09, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1183,6 +1281,7 @@ TEST(JSONSchema_walker_2019_09, validation_maxLength_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1192,6 +1291,7 @@ TEST(JSONSchema_walker_2019_09, validation_minLength_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1201,6 +1301,7 @@ TEST(JSONSchema_walker_2019_09, validation_pattern_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1210,6 +1311,7 @@ TEST(JSONSchema_walker_2019_09, validation_maxItems_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1219,6 +1321,7 @@ TEST(JSONSchema_walker_2019_09, validation_minItems_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1228,6 +1331,7 @@ TEST(JSONSchema_walker_2019_09, validation_uniqueItems_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1237,6 +1341,7 @@ TEST(JSONSchema_walker_2019_09, validation_maxContains_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1246,6 +1351,7 @@ TEST(JSONSchema_walker_2019_09, validation_minContains_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1255,6 +1361,7 @@ TEST(JSONSchema_walker_2019_09, validation_maxProperties_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1264,6 +1371,7 @@ TEST(JSONSchema_walker_2019_09, validation_minProperties_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1273,6 +1381,7 @@ TEST(JSONSchema_walker_2019_09, validation_required_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1284,6 +1393,7 @@ TEST(JSONSchema_walker_2019_09, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1293,6 +1403,7 @@ TEST(JSONSchema_walker_2019_09, format_format_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1303,6 +1414,7 @@ TEST(JSONSchema_walker_2019_09, content_contentEncoding_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1313,6 +1425,7 @@ TEST(JSONSchema_walker_2019_09, content_contentMediaType_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1322,6 +1435,7 @@ TEST(JSONSchema_walker_2019_09, content_contentSchema_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1331,6 +1445,7 @@ TEST(JSONSchema_walker_2019_09, metadata_title_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1340,6 +1455,7 @@ TEST(JSONSchema_walker_2019_09, metadata_description_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1349,6 +1465,7 @@ TEST(JSONSchema_walker_2019_09, metadata_default_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1358,6 +1475,7 @@ TEST(JSONSchema_walker_2019_09, metadata_deprecated_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1367,6 +1485,7 @@ TEST(JSONSchema_walker_2019_09, metadata_readOnly_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1376,6 +1495,7 @@ TEST(JSONSchema_walker_2019_09, metadata_writeOnly_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1385,6 +1505,7 @@ TEST(JSONSchema_walker_2019_09, metadata_examples_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1394,6 +1515,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_base_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1403,6 +1525,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_links_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1412,6 +1535,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_ref_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1421,6 +1545,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_href_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1430,6 +1555,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_anchor_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1439,6 +1565,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_anchorPointer_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1448,6 +1575,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_rel_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1459,6 +1587,7 @@ TEST(JSONSchema_walker_2019_09, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1470,6 +1599,7 @@ TEST(JSONSchema_walker_2019_09, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1481,6 +1611,7 @@ TEST(JSONSchema_walker_2019_09, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1490,6 +1621,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_targetHints_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1501,6 +1633,7 @@ TEST(JSONSchema_walker_2019_09, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1510,6 +1643,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_hrefSchema_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1519,6 +1653,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_targetSchema_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1528,6 +1663,7 @@ TEST(JSONSchema_walker_2019_09, hyperschema_headerSchema_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1539,6 +1675,7 @@ TEST(JSONSchema_walker_2019_09, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } diff --git a/test/jsonschema/jsonschema_walker_2020_12_test.cc b/test/jsonschema/jsonschema_walker_2020_12_test.cc index 28fc76152..a58df4fe1 100644 --- a/test/jsonschema/jsonschema_walker_2020_12_test.cc +++ b/test/jsonschema/jsonschema_walker_2020_12_test.cc @@ -73,6 +73,7 @@ TEST(JSONSchema_walker_2020_12, core_schema) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Core); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -83,6 +84,7 @@ TEST(JSONSchema_walker_2020_12, core_vocabulary) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Core); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -93,6 +95,7 @@ TEST(JSONSchema_walker_2020_12, core_id) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Core); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -103,6 +106,7 @@ TEST(JSONSchema_walker_2020_12, core_anchor) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Core); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -114,6 +118,7 @@ TEST(JSONSchema_walker_2020_12, core_dynamicAnchor) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Core); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -124,6 +129,7 @@ TEST(JSONSchema_walker_2020_12, core_ref) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Core); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -134,6 +140,7 @@ TEST(JSONSchema_walker_2020_12, core_dynamicRef) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Core); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -144,6 +151,7 @@ TEST(JSONSchema_walker_2020_12, core_defs) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Core); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -154,6 +162,7 @@ TEST(JSONSchema_walker_2020_12, core_comment) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Core); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -165,6 +174,7 @@ TEST(JSONSchema_walker_2020_12, applicator_allOf) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Applicator); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -176,6 +186,7 @@ TEST(JSONSchema_walker_2020_12, applicator_anyOf) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Applicator); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -187,6 +198,7 @@ TEST(JSONSchema_walker_2020_12, applicator_oneOf) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Applicator); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -198,6 +210,7 @@ TEST(JSONSchema_walker_2020_12, applicator_not) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Applicator); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -209,6 +222,7 @@ TEST(JSONSchema_walker_2020_12, applicator_if) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Applicator); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -221,6 +235,7 @@ TEST(JSONSchema_walker_2020_12, applicator_then) { JSON_Schema_2020_12_Applicator); const std::unordered_set expected{"if"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -233,6 +248,7 @@ TEST(JSONSchema_walker_2020_12, applicator_else) { JSON_Schema_2020_12_Applicator); const std::unordered_set expected{"if"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -245,6 +261,7 @@ TEST(JSONSchema_walker_2020_12, applicator_dependentSchemas) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Applicator); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -258,6 +275,7 @@ TEST(JSONSchema_walker_2020_12, applicator_prefixItems) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Applicator); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -271,6 +289,7 @@ TEST(JSONSchema_walker_2020_12, applicator_items) { JSON_Schema_2020_12_Applicator); const std::unordered_set expected{"prefixItems"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -284,6 +303,7 @@ TEST(JSONSchema_walker_2020_12, applicator_contains_only) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Applicator); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -299,6 +319,7 @@ TEST(JSONSchema_walker_2020_12, applicator_contains_with_validation) { const std::unordered_set expected{"minContains", "maxContains"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -313,6 +334,7 @@ TEST(JSONSchema_walker_2020_12, applicator_properties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Applicator); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -327,6 +349,7 @@ TEST(JSONSchema_walker_2020_12, applicator_patternProperties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Applicator); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -343,6 +366,7 @@ TEST(JSONSchema_walker_2020_12, applicator_additionalProperties) { const std::unordered_set expected{"properties", "patternProperties"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -357,6 +381,7 @@ TEST(JSONSchema_walker_2020_12, applicator_propertyNames) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Applicator); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -370,6 +395,7 @@ TEST(JSONSchema_walker_2020_12, unevaluated_unevaluatedItems_only) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Unevaluated); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -385,6 +411,7 @@ TEST(JSONSchema_walker_2020_12, unevaluated_unevaluatedItems_with_applicator) { const std::unordered_set expected{"prefixItems", "items", "contains"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -399,6 +426,7 @@ TEST(JSONSchema_walker_2020_12, unevaluated_unevaluatedProperties_only) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Unevaluated); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -417,6 +445,7 @@ TEST(JSONSchema_walker_2020_12, const std::unordered_set expected{ "properties", "patternProperties", "additionalProperties"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -429,6 +458,7 @@ TEST(JSONSchema_walker_2020_12, validation_type) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -440,6 +470,7 @@ TEST(JSONSchema_walker_2020_12, validation_enum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -451,6 +482,7 @@ TEST(JSONSchema_walker_2020_12, validation_const) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -463,6 +495,7 @@ TEST(JSONSchema_walker_2020_12, validation_multipleOf) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -476,8 +509,9 @@ TEST(JSONSchema_walker_2020_12, validation_maximum) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Validation); + EXPECT_TRUE(result.dependencies.empty()); const std::unordered_set expected{"type"}; - EXPECT_EQ(result.dependencies, expected); + EXPECT_EQ(result.order_dependencies, expected); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -491,8 +525,9 @@ TEST(JSONSchema_walker_2020_12, validation_minimum) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Validation); + EXPECT_TRUE(result.dependencies.empty()); const std::unordered_set expected{"type"}; - EXPECT_EQ(result.dependencies, expected); + EXPECT_EQ(result.order_dependencies, expected); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -508,6 +543,7 @@ TEST(JSONSchema_walker_2020_12, validation_exclusiveMaximum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -523,6 +559,7 @@ TEST(JSONSchema_walker_2020_12, validation_exclusiveMinimum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -538,6 +575,7 @@ TEST(JSONSchema_walker_2020_12, validation_maxLength) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -551,6 +589,7 @@ TEST(JSONSchema_walker_2020_12, validation_minLength) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -563,6 +602,7 @@ TEST(JSONSchema_walker_2020_12, validation_pattern) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -576,6 +616,7 @@ TEST(JSONSchema_walker_2020_12, validation_maxItems) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -589,6 +630,7 @@ TEST(JSONSchema_walker_2020_12, validation_minItems) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -602,6 +644,7 @@ TEST(JSONSchema_walker_2020_12, validation_uniqueItems) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -615,6 +658,7 @@ TEST(JSONSchema_walker_2020_12, validation_maxContains) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -628,6 +672,7 @@ TEST(JSONSchema_walker_2020_12, validation_minContains) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -641,6 +686,7 @@ TEST(JSONSchema_walker_2020_12, validation_maxProperties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -654,6 +700,7 @@ TEST(JSONSchema_walker_2020_12, validation_minProperties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -667,6 +714,7 @@ TEST(JSONSchema_walker_2020_12, validation_required) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -680,6 +728,7 @@ TEST(JSONSchema_walker_2020_12, validation_dependentRequired) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Validation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -693,6 +742,7 @@ TEST(JSONSchema_walker_2020_12, format_annotation_format) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Format_Annotation); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -706,6 +756,7 @@ TEST(JSONSchema_walker_2020_12, format_assertion_format) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Format_Assertion); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -719,6 +770,7 @@ TEST(JSONSchema_walker_2020_12, content_contentEncoding) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Content); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -732,6 +784,7 @@ TEST(JSONSchema_walker_2020_12, content_contentMediaType) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Content); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -745,6 +798,7 @@ TEST(JSONSchema_walker_2020_12, content_contentSchema) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Content); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -757,6 +811,7 @@ TEST(JSONSchema_walker_2020_12, metadata_title) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Meta_Data); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -769,6 +824,7 @@ TEST(JSONSchema_walker_2020_12, metadata_description) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Meta_Data); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -780,6 +836,7 @@ TEST(JSONSchema_walker_2020_12, metadata_default) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Meta_Data); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -792,6 +849,7 @@ TEST(JSONSchema_walker_2020_12, metadata_deprecated) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Meta_Data); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -803,6 +861,7 @@ TEST(JSONSchema_walker_2020_12, metadata_readOnly) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Meta_Data); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -814,6 +873,7 @@ TEST(JSONSchema_walker_2020_12, metadata_writeOnly) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Meta_Data); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -825,6 +885,7 @@ TEST(JSONSchema_walker_2020_12, metadata_examples) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2020_12_Meta_Data); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -836,6 +897,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_base) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -847,6 +909,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_links) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -858,6 +921,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_href) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -869,6 +933,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_anchor) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -881,6 +946,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_anchorPointer) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -892,6 +958,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_rel) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -904,6 +971,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_templatePointers) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -916,6 +984,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_templateRequired) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -928,6 +997,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_targetMediaType) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -940,6 +1010,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_targetHints) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -952,6 +1023,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_submissionMediaType) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -964,6 +1036,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_hrefSchema) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -976,6 +1049,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_targetSchema) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -988,6 +1062,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_headerSchema) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1000,6 +1075,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_submissionSchema) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_2019_09_Hyper_Schema); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1009,6 +1085,7 @@ TEST(JSONSchema_walker_2020_12, applicator_allOf_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1018,6 +1095,7 @@ TEST(JSONSchema_walker_2020_12, applicator_anyOf_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1027,6 +1105,7 @@ TEST(JSONSchema_walker_2020_12, applicator_oneOf_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1036,6 +1115,7 @@ TEST(JSONSchema_walker_2020_12, applicator_not_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1045,6 +1125,7 @@ TEST(JSONSchema_walker_2020_12, applicator_if_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1054,6 +1135,7 @@ TEST(JSONSchema_walker_2020_12, applicator_then_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1063,6 +1145,7 @@ TEST(JSONSchema_walker_2020_12, applicator_else_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1074,6 +1157,7 @@ TEST(JSONSchema_walker_2020_12, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1083,6 +1167,7 @@ TEST(JSONSchema_walker_2020_12, applicator_prefixItems_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1092,6 +1177,7 @@ TEST(JSONSchema_walker_2020_12, applicator_items_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1101,6 +1187,7 @@ TEST(JSONSchema_walker_2020_12, applicator_contains_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1110,6 +1197,7 @@ TEST(JSONSchema_walker_2020_12, applicator_properties_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1121,6 +1209,7 @@ TEST(JSONSchema_walker_2020_12, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1132,6 +1221,7 @@ TEST(JSONSchema_walker_2020_12, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1141,6 +1231,7 @@ TEST(JSONSchema_walker_2020_12, applicator_propertyNames_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1152,6 +1243,7 @@ TEST(JSONSchema_walker_2020_12, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1163,6 +1255,7 @@ TEST(JSONSchema_walker_2020_12, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1172,6 +1265,7 @@ TEST(JSONSchema_walker_2020_12, validation_type_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1181,6 +1275,7 @@ TEST(JSONSchema_walker_2020_12, validation_enum_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1190,6 +1285,7 @@ TEST(JSONSchema_walker_2020_12, validation_const_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1199,6 +1295,7 @@ TEST(JSONSchema_walker_2020_12, validation_multipleOf_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1208,6 +1305,7 @@ TEST(JSONSchema_walker_2020_12, validation_maximum_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1217,6 +1315,7 @@ TEST(JSONSchema_walker_2020_12, validation_minimum_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1228,6 +1327,7 @@ TEST(JSONSchema_walker_2020_12, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1239,6 +1339,7 @@ TEST(JSONSchema_walker_2020_12, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1248,6 +1349,7 @@ TEST(JSONSchema_walker_2020_12, validation_maxLength_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1257,6 +1359,7 @@ TEST(JSONSchema_walker_2020_12, validation_minLength_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1266,6 +1369,7 @@ TEST(JSONSchema_walker_2020_12, validation_pattern_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1275,6 +1379,7 @@ TEST(JSONSchema_walker_2020_12, validation_maxItems_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1284,6 +1389,7 @@ TEST(JSONSchema_walker_2020_12, validation_minItems_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1293,6 +1399,7 @@ TEST(JSONSchema_walker_2020_12, validation_uniqueItems_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1302,6 +1409,7 @@ TEST(JSONSchema_walker_2020_12, validation_maxContains_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1311,6 +1419,7 @@ TEST(JSONSchema_walker_2020_12, validation_minContains_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1320,6 +1429,7 @@ TEST(JSONSchema_walker_2020_12, validation_maxProperties_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1329,6 +1439,7 @@ TEST(JSONSchema_walker_2020_12, validation_minProperties_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1338,6 +1449,7 @@ TEST(JSONSchema_walker_2020_12, validation_required_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1349,6 +1461,7 @@ TEST(JSONSchema_walker_2020_12, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1358,6 +1471,7 @@ TEST(JSONSchema_walker_2020_12, format_annotation_format_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1367,6 +1481,7 @@ TEST(JSONSchema_walker_2020_12, format_assertion_format_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1377,6 +1492,7 @@ TEST(JSONSchema_walker_2020_12, content_contentEncoding_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1387,6 +1503,7 @@ TEST(JSONSchema_walker_2020_12, content_contentMediaType_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1396,6 +1513,7 @@ TEST(JSONSchema_walker_2020_12, content_contentSchema_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1405,6 +1523,7 @@ TEST(JSONSchema_walker_2020_12, metadata_title_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1414,6 +1533,7 @@ TEST(JSONSchema_walker_2020_12, metadata_description_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1423,6 +1543,7 @@ TEST(JSONSchema_walker_2020_12, metadata_default_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1432,6 +1553,7 @@ TEST(JSONSchema_walker_2020_12, metadata_deprecated_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1441,6 +1563,7 @@ TEST(JSONSchema_walker_2020_12, metadata_readOnly_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1450,6 +1573,7 @@ TEST(JSONSchema_walker_2020_12, metadata_writeOnly_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1459,6 +1583,7 @@ TEST(JSONSchema_walker_2020_12, metadata_examples_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1468,6 +1593,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_base_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1477,6 +1603,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_links_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1486,6 +1613,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_ref_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1495,6 +1623,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_href_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1504,6 +1633,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_anchor_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1513,6 +1643,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_anchorPointer_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1522,6 +1653,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_rel_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1533,6 +1665,7 @@ TEST(JSONSchema_walker_2020_12, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1544,6 +1677,7 @@ TEST(JSONSchema_walker_2020_12, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1555,6 +1689,7 @@ TEST(JSONSchema_walker_2020_12, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1564,6 +1699,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_targetHints_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1575,6 +1711,7 @@ TEST(JSONSchema_walker_2020_12, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1584,6 +1721,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_hrefSchema_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1593,6 +1731,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_targetSchema_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1602,6 +1741,7 @@ TEST(JSONSchema_walker_2020_12, hyperschema_headerSchema_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -1613,6 +1753,7 @@ TEST(JSONSchema_walker_2020_12, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } diff --git a/test/jsonschema/jsonschema_walker_draft0_test.cc b/test/jsonschema/jsonschema_walker_draft0_test.cc index 640684407..e3802315e 100644 --- a/test/jsonschema/jsonschema_walker_draft0_test.cc +++ b/test/jsonschema/jsonschema_walker_draft0_test.cc @@ -20,6 +20,7 @@ TEST(JSONSchema_walker_draft0, schema) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -30,6 +31,7 @@ TEST(JSONSchema_walker_draft0, id) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -40,6 +42,7 @@ TEST(JSONSchema_walker_draft0, ref) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -51,6 +54,7 @@ TEST(JSONSchema_walker_draft0, items) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -63,6 +67,7 @@ TEST(JSONSchema_walker_draft0, properties) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -77,6 +82,7 @@ TEST(JSONSchema_walker_draft0, additionalProperties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); const std::unordered_set expected{"properties"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -88,6 +94,7 @@ TEST(JSONSchema_walker_draft0, type) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -98,6 +105,7 @@ TEST(JSONSchema_walker_draft0, enum) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -108,6 +116,7 @@ TEST(JSONSchema_walker_draft0, maximum) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -121,6 +130,7 @@ TEST(JSONSchema_walker_draft0, minimum) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -134,6 +144,7 @@ TEST(JSONSchema_walker_draft0, maximumCanEqual) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -147,6 +158,7 @@ TEST(JSONSchema_walker_draft0, minimumCanEqual) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -160,6 +172,7 @@ TEST(JSONSchema_walker_draft0, maxLength) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -171,6 +184,7 @@ TEST(JSONSchema_walker_draft0, minLength) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -182,6 +196,7 @@ TEST(JSONSchema_walker_draft0, pattern) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -193,6 +208,7 @@ TEST(JSONSchema_walker_draft0, maxItems) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -204,6 +220,7 @@ TEST(JSONSchema_walker_draft0, minItems) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -215,6 +232,7 @@ TEST(JSONSchema_walker_draft0, requires) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -226,6 +244,7 @@ TEST(JSONSchema_walker_draft0, format) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -237,6 +256,7 @@ TEST(JSONSchema_walker_draft0, title) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -247,6 +267,7 @@ TEST(JSONSchema_walker_draft0, description) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -257,6 +278,7 @@ TEST(JSONSchema_walker_draft0, default) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -267,6 +289,7 @@ TEST(JSONSchema_walker_draft0, disallow) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -277,6 +300,7 @@ TEST(JSONSchema_walker_draft0, extends) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -287,6 +311,7 @@ TEST(JSONSchema_walker_draft0, contentEncoding) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -298,6 +323,7 @@ TEST(JSONSchema_walker_draft0, optional) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -309,6 +335,7 @@ TEST(JSONSchema_walker_draft0, maxDecimal) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Real})); } @@ -320,6 +347,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_links) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -331,6 +359,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_fragmentResolution) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -341,6 +370,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_root) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -352,6 +382,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_readonly) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -363,6 +394,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_pathStart) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -374,6 +406,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_mediaType) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -385,6 +418,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_alternate) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -395,6 +429,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_href) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -405,6 +440,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_rel) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -415,6 +451,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_method) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -425,6 +462,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_enctype) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -435,6 +473,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_schema) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -445,6 +484,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_id) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -455,6 +495,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_ref) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -466,6 +507,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_items) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -479,6 +521,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_properties) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -493,6 +536,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_additionalProperties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); const std::unordered_set expected{"properties"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -504,6 +548,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_type) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -514,6 +559,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_enum) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -524,6 +570,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_maximum) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -537,6 +584,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_minimum) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -551,6 +599,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_maximumCanEqual) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -565,6 +614,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_minimumCanEqual) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -579,6 +629,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_maxLength) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -591,6 +642,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_minLength) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -602,6 +654,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_pattern) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -614,6 +667,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_maxItems) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -626,6 +680,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_minItems) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -638,6 +693,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_requires) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -649,6 +705,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_format) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -660,6 +717,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_title) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -671,6 +729,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_description) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -681,6 +740,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_default) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -692,6 +752,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_disallow) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -702,6 +763,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_extends) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -713,6 +775,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_contentEncoding) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -725,6 +788,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_optional) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -737,6 +801,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_maxDecimal) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_0_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Real})); } @@ -747,6 +812,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_links_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -757,6 +823,7 @@ TEST(JSONSchema_walker_draft0, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -766,6 +833,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_root_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -775,6 +843,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_readonly_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -784,6 +853,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_pathStart_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -793,6 +863,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_mediaType_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -802,6 +873,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_alternate_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -811,6 +883,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_href_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -820,6 +893,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_rel_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -829,6 +903,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_method_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -838,6 +913,7 @@ TEST(JSONSchema_walker_draft0, hyperschema_enctype_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } diff --git a/test/jsonschema/jsonschema_walker_draft1_test.cc b/test/jsonschema/jsonschema_walker_draft1_test.cc index 7594f75e7..b219d0f24 100644 --- a/test/jsonschema/jsonschema_walker_draft1_test.cc +++ b/test/jsonschema/jsonschema_walker_draft1_test.cc @@ -20,6 +20,7 @@ TEST(JSONSchema_walker_draft1, schema) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -30,6 +31,7 @@ TEST(JSONSchema_walker_draft1, id) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -40,6 +42,7 @@ TEST(JSONSchema_walker_draft1, ref) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -51,6 +54,7 @@ TEST(JSONSchema_walker_draft1, items) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -63,6 +67,7 @@ TEST(JSONSchema_walker_draft1, properties) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -77,6 +82,7 @@ TEST(JSONSchema_walker_draft1, additionalProperties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); const std::unordered_set expected{"properties"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -88,6 +94,7 @@ TEST(JSONSchema_walker_draft1, type) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -98,6 +105,7 @@ TEST(JSONSchema_walker_draft1, enum) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -108,6 +116,7 @@ TEST(JSONSchema_walker_draft1, maximum) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -121,6 +130,7 @@ TEST(JSONSchema_walker_draft1, minimum) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -134,6 +144,7 @@ TEST(JSONSchema_walker_draft1, maximumCanEqual) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -147,6 +158,7 @@ TEST(JSONSchema_walker_draft1, minimumCanEqual) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -160,6 +172,7 @@ TEST(JSONSchema_walker_draft1, maxLength) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -171,6 +184,7 @@ TEST(JSONSchema_walker_draft1, minLength) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -182,6 +196,7 @@ TEST(JSONSchema_walker_draft1, pattern) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -193,6 +208,7 @@ TEST(JSONSchema_walker_draft1, maxItems) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -204,6 +220,7 @@ TEST(JSONSchema_walker_draft1, minItems) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -215,6 +232,7 @@ TEST(JSONSchema_walker_draft1, requires) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -226,6 +244,7 @@ TEST(JSONSchema_walker_draft1, format) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -237,6 +256,7 @@ TEST(JSONSchema_walker_draft1, title) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -247,6 +267,7 @@ TEST(JSONSchema_walker_draft1, description) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -257,6 +278,7 @@ TEST(JSONSchema_walker_draft1, default) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -267,6 +289,7 @@ TEST(JSONSchema_walker_draft1, disallow) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -277,6 +300,7 @@ TEST(JSONSchema_walker_draft1, extends) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -287,6 +311,7 @@ TEST(JSONSchema_walker_draft1, contentEncoding) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -298,6 +323,7 @@ TEST(JSONSchema_walker_draft1, optional) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -309,6 +335,7 @@ TEST(JSONSchema_walker_draft1, maxDecimal) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Real})); } @@ -320,6 +347,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_links) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -331,6 +359,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_fragmentResolution) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -341,6 +370,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_root) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -352,6 +382,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_readonly) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -363,6 +394,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_pathStart) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -374,6 +406,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_mediaType) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -385,6 +418,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_alternate) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -395,6 +429,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_href) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -405,6 +440,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_rel) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -415,6 +451,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_method) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -425,6 +462,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_enctype) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -435,6 +473,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_schema) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -445,6 +484,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_id) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -455,6 +495,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_ref) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -466,6 +507,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_items) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -479,6 +521,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_properties) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -493,6 +536,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_additionalProperties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); const std::unordered_set expected{"properties"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -504,6 +548,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_type) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -514,6 +559,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_enum) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -524,6 +570,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_maximum) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -537,6 +584,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_minimum) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -551,6 +599,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_maximumCanEqual) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -565,6 +614,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_minimumCanEqual) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -579,6 +629,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_maxLength) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -591,6 +642,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_minLength) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -602,6 +654,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_pattern) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -614,6 +667,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_maxItems) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -626,6 +680,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_minItems) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -638,6 +693,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_requires) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -649,6 +705,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_format) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -660,6 +717,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_title) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -671,6 +729,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_description) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -681,6 +740,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_default) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -692,6 +752,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_disallow) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -702,6 +763,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_extends) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -713,6 +775,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_contentEncoding) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -725,6 +788,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_optional) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -737,6 +801,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_maxDecimal) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_1_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Real})); } @@ -747,6 +812,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_links_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -757,6 +823,7 @@ TEST(JSONSchema_walker_draft1, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -766,6 +833,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_root_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -775,6 +843,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_readonly_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -784,6 +853,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_pathStart_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -793,6 +863,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_mediaType_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -802,6 +873,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_alternate_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -811,6 +883,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_href_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -820,6 +893,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_rel_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -829,6 +903,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_method_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -838,6 +913,7 @@ TEST(JSONSchema_walker_draft1, hyperschema_enctype_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } diff --git a/test/jsonschema/jsonschema_walker_draft2_test.cc b/test/jsonschema/jsonschema_walker_draft2_test.cc index bdaceac70..7be912520 100644 --- a/test/jsonschema/jsonschema_walker_draft2_test.cc +++ b/test/jsonschema/jsonschema_walker_draft2_test.cc @@ -20,6 +20,7 @@ TEST(JSONSchema_walker_draft2, schema) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -30,6 +31,7 @@ TEST(JSONSchema_walker_draft2, id) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -40,6 +42,7 @@ TEST(JSONSchema_walker_draft2, ref) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -51,6 +54,7 @@ TEST(JSONSchema_walker_draft2, items) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -63,6 +67,7 @@ TEST(JSONSchema_walker_draft2, properties) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -77,6 +82,7 @@ TEST(JSONSchema_walker_draft2, additionalProperties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); const std::unordered_set expected{"properties"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -88,6 +94,7 @@ TEST(JSONSchema_walker_draft2, type) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -98,6 +105,7 @@ TEST(JSONSchema_walker_draft2, enum) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -108,6 +116,7 @@ TEST(JSONSchema_walker_draft2, maximum) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -121,6 +130,7 @@ TEST(JSONSchema_walker_draft2, minimum) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -134,6 +144,7 @@ TEST(JSONSchema_walker_draft2, maximumCanEqual) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -147,6 +158,7 @@ TEST(JSONSchema_walker_draft2, minimumCanEqual) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -160,6 +172,7 @@ TEST(JSONSchema_walker_draft2, maxLength) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -171,6 +184,7 @@ TEST(JSONSchema_walker_draft2, minLength) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -182,6 +196,7 @@ TEST(JSONSchema_walker_draft2, pattern) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -193,6 +208,7 @@ TEST(JSONSchema_walker_draft2, maxItems) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -204,6 +220,7 @@ TEST(JSONSchema_walker_draft2, minItems) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -215,6 +232,7 @@ TEST(JSONSchema_walker_draft2, uniqueItems) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -226,6 +244,7 @@ TEST(JSONSchema_walker_draft2, requires) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -237,6 +256,7 @@ TEST(JSONSchema_walker_draft2, format) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -248,6 +268,7 @@ TEST(JSONSchema_walker_draft2, title) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -258,6 +279,7 @@ TEST(JSONSchema_walker_draft2, description) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -268,6 +290,7 @@ TEST(JSONSchema_walker_draft2, default) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -278,6 +301,7 @@ TEST(JSONSchema_walker_draft2, divisibleBy) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -291,6 +315,7 @@ TEST(JSONSchema_walker_draft2, disallow) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -301,6 +326,7 @@ TEST(JSONSchema_walker_draft2, extends) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -311,6 +337,7 @@ TEST(JSONSchema_walker_draft2, contentEncoding) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -322,6 +349,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_links) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -333,6 +361,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_fragmentResolution) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -343,6 +372,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_root) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -354,6 +384,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_readonly) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -365,6 +396,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_pathStart) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -376,6 +408,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_mediaType) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -387,6 +420,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_alternate) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -397,6 +431,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_href) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -407,6 +442,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_rel) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -417,6 +453,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_method) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -427,6 +464,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_enctype) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -437,6 +475,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_schema) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -447,6 +486,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_id) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -457,6 +497,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_ref) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -468,6 +509,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_items) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -481,6 +523,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_properties) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -495,6 +538,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_additionalProperties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); const std::unordered_set expected{"properties"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -506,6 +550,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_type) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -516,6 +561,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_enum) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -526,6 +572,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_maximum) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -539,6 +586,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_minimum) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -553,6 +601,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_maximumCanEqual) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -567,6 +616,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_minimumCanEqual) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -581,6 +631,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_maxLength) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -593,6 +644,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_minLength) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -604,6 +656,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_pattern) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -616,6 +669,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_maxItems) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -628,6 +682,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_minItems) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -640,6 +695,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_uniqueItems) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -652,6 +708,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_requires) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -663,6 +720,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_format) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -674,6 +732,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_title) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -685,6 +744,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_description) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -695,6 +755,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_default) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -706,6 +767,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_divisibleBy) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -720,6 +782,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_disallow) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -730,6 +793,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_extends) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -741,6 +805,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_contentEncoding) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_2_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -752,6 +817,7 @@ TEST(JSONSchema_walker_draft2, EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -761,6 +827,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_root_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -770,6 +837,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_readonly_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -779,6 +847,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_pathStart_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -788,6 +857,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_mediaType_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -797,6 +867,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_alternate_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -806,6 +877,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_href_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -815,6 +887,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_rel_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -824,6 +897,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_method_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -833,6 +907,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_enctype_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -842,6 +917,7 @@ TEST(JSONSchema_walker_draft2, hyperschema_targetSchema_without_hyperschema) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } diff --git a/test/jsonschema/jsonschema_walker_draft3_test.cc b/test/jsonschema/jsonschema_walker_draft3_test.cc index 1c7a3639e..30a215c07 100644 --- a/test/jsonschema/jsonschema_walker_draft3_test.cc +++ b/test/jsonschema/jsonschema_walker_draft3_test.cc @@ -21,6 +21,7 @@ TEST(JSONSchema_walker_draft3, schema) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -32,6 +33,7 @@ TEST(JSONSchema_walker_draft3, id) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -42,6 +44,7 @@ TEST(JSONSchema_walker_draft3, ref) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -54,6 +57,7 @@ TEST(JSONSchema_walker_draft3, items) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -66,6 +70,7 @@ TEST(JSONSchema_walker_draft3, additionalItems) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"items"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -79,6 +84,7 @@ TEST(JSONSchema_walker_draft3, properties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -92,6 +98,7 @@ TEST(JSONSchema_walker_draft3, patternProperties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -104,6 +111,7 @@ TEST(JSONSchema_walker_draft3, dependencies) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -119,6 +127,7 @@ TEST(JSONSchema_walker_draft3, additionalProperties) { const std::unordered_set expected{"properties", "patternProperties"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -131,6 +140,7 @@ TEST(JSONSchema_walker_draft3, type) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -142,6 +152,7 @@ TEST(JSONSchema_walker_draft3, enum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -153,6 +164,7 @@ TEST(JSONSchema_walker_draft3, maximum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -167,6 +179,7 @@ TEST(JSONSchema_walker_draft3, minimum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -181,6 +194,7 @@ TEST(JSONSchema_walker_draft3, exclusiveMaximum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -195,6 +209,7 @@ TEST(JSONSchema_walker_draft3, exclusiveMinimum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -209,6 +224,7 @@ TEST(JSONSchema_walker_draft3, maxLength) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -221,6 +237,7 @@ TEST(JSONSchema_walker_draft3, minLength) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -233,6 +250,7 @@ TEST(JSONSchema_walker_draft3, pattern) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -245,6 +263,7 @@ TEST(JSONSchema_walker_draft3, maxItems) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -257,6 +276,7 @@ TEST(JSONSchema_walker_draft3, minItems) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -269,6 +289,7 @@ TEST(JSONSchema_walker_draft3, uniqueItems) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -281,6 +302,7 @@ TEST(JSONSchema_walker_draft3, required) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -293,6 +315,7 @@ TEST(JSONSchema_walker_draft3, format) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -305,6 +328,7 @@ TEST(JSONSchema_walker_draft3, title) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -316,6 +340,7 @@ TEST(JSONSchema_walker_draft3, description) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -327,6 +352,7 @@ TEST(JSONSchema_walker_draft3, default) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -338,6 +364,7 @@ TEST(JSONSchema_walker_draft3, divisibleBy) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -353,6 +380,7 @@ TEST(JSONSchema_walker_draft3, disallow) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -364,6 +392,7 @@ TEST(JSONSchema_walker_draft3, extends) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -375,6 +404,7 @@ TEST(JSONSchema_walker_draft3, hyperschema_links) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3_Hyper); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -387,6 +417,7 @@ TEST(JSONSchema_walker_draft3, hyperschema_fragmentResolution) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3_Hyper); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -398,6 +429,7 @@ TEST(JSONSchema_walker_draft3, hyperschema_root) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3_Hyper); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -410,6 +442,7 @@ TEST(JSONSchema_walker_draft3, hyperschema_readonly) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3_Hyper); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -422,6 +455,7 @@ TEST(JSONSchema_walker_draft3, hyperschema_contentEncoding) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3_Hyper); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -434,6 +468,7 @@ TEST(JSONSchema_walker_draft3, hyperschema_pathStart) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3_Hyper); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -446,6 +481,7 @@ TEST(JSONSchema_walker_draft3, hyperschema_mediaType) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3_Hyper); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -456,6 +492,7 @@ TEST(JSONSchema_walker_draft3, hyperschema_href) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -466,6 +503,7 @@ TEST(JSONSchema_walker_draft3, hyperschema_rel) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -476,6 +514,7 @@ TEST(JSONSchema_walker_draft3, hyperschema_method) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -486,6 +525,7 @@ TEST(JSONSchema_walker_draft3, hyperschema_enctype) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -497,6 +537,7 @@ TEST(JSONSchema_walker_draft3, hyperschema_targetSchema) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_3_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -507,6 +548,7 @@ TEST(JSONSchema_walker_draft3, hyperschema_links_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -518,6 +560,7 @@ TEST(JSONSchema_walker_draft3, EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -528,6 +571,7 @@ TEST(JSONSchema_walker_draft3, hyperschema_root_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -538,6 +582,7 @@ TEST(JSONSchema_walker_draft3, hyperschema_readonly_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -549,6 +594,7 @@ TEST(JSONSchema_walker_draft3, EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -559,6 +605,7 @@ TEST(JSONSchema_walker_draft3, hyperschema_pathStart_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -569,6 +616,7 @@ TEST(JSONSchema_walker_draft3, hyperschema_mediaType_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -579,6 +627,7 @@ TEST(JSONSchema_walker_draft3, hyperschema_href_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -589,6 +638,7 @@ TEST(JSONSchema_walker_draft3, hyperschema_rel_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -599,6 +649,7 @@ TEST(JSONSchema_walker_draft3, hyperschema_method_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -609,6 +660,7 @@ TEST(JSONSchema_walker_draft3, hyperschema_enctype_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -619,6 +671,7 @@ TEST(JSONSchema_walker_draft3, hyperschema_targetSchema_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } diff --git a/test/jsonschema/jsonschema_walker_draft4_test.cc b/test/jsonschema/jsonschema_walker_draft4_test.cc index 958010d33..d72ae5206 100644 --- a/test/jsonschema/jsonschema_walker_draft4_test.cc +++ b/test/jsonschema/jsonschema_walker_draft4_test.cc @@ -21,6 +21,7 @@ TEST(JSONSchema_walker_draft4, schema) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -32,6 +33,7 @@ TEST(JSONSchema_walker_draft4, id) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -42,6 +44,7 @@ TEST(JSONSchema_walker_draft4, ref) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -53,6 +56,7 @@ TEST(JSONSchema_walker_draft4, definitions) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -64,6 +68,7 @@ TEST(JSONSchema_walker_draft4, allOf) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -75,6 +80,7 @@ TEST(JSONSchema_walker_draft4, anyOf) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -86,6 +92,7 @@ TEST(JSONSchema_walker_draft4, oneOf) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -97,6 +104,7 @@ TEST(JSONSchema_walker_draft4, not) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -109,6 +117,7 @@ TEST(JSONSchema_walker_draft4, items) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -121,6 +130,7 @@ TEST(JSONSchema_walker_draft4, additionalItems) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"items"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -132,8 +142,11 @@ TEST(JSONSchema_walker_draft4, properties) { SchemaKeywordType::ApplicatorMembersTraversePropertyStatic); EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); - const std::unordered_set expected{"$ref", "required"}; - EXPECT_EQ(result.dependencies, expected); + const std::unordered_set expected_dependencies{"$ref"}; + EXPECT_EQ(result.dependencies, expected_dependencies); + const std::unordered_set expected_order_dependencies{ + "required"}; + EXPECT_EQ(result.order_dependencies, expected_order_dependencies); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -147,6 +160,7 @@ TEST(JSONSchema_walker_draft4, patternProperties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -159,6 +173,7 @@ TEST(JSONSchema_walker_draft4, dependencies) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -174,6 +189,7 @@ TEST(JSONSchema_walker_draft4, additionalProperties) { const std::unordered_set expected{"properties", "patternProperties"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -184,8 +200,9 @@ TEST(JSONSchema_walker_draft4, type) { EXPECT_EQ(result.type, SchemaKeywordType::Assertion); EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); + EXPECT_TRUE(result.dependencies.empty()); const std::unordered_set expected{"properties"}; - EXPECT_EQ(result.dependencies, expected); + EXPECT_EQ(result.order_dependencies, expected); EXPECT_TRUE(result.instances.none()); } @@ -197,6 +214,7 @@ TEST(JSONSchema_walker_draft4, enum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -208,6 +226,7 @@ TEST(JSONSchema_walker_draft4, multipleOf) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -222,6 +241,7 @@ TEST(JSONSchema_walker_draft4, maximum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -236,6 +256,7 @@ TEST(JSONSchema_walker_draft4, minimum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -250,6 +271,7 @@ TEST(JSONSchema_walker_draft4, exclusiveMaximum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -264,6 +286,7 @@ TEST(JSONSchema_walker_draft4, exclusiveMinimum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -278,6 +301,7 @@ TEST(JSONSchema_walker_draft4, maxLength) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -290,6 +314,7 @@ TEST(JSONSchema_walker_draft4, minLength) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -302,6 +327,7 @@ TEST(JSONSchema_walker_draft4, pattern) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -314,6 +340,7 @@ TEST(JSONSchema_walker_draft4, maxItems) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -326,6 +353,7 @@ TEST(JSONSchema_walker_draft4, minItems) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -338,6 +366,7 @@ TEST(JSONSchema_walker_draft4, uniqueItems) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -350,6 +379,7 @@ TEST(JSONSchema_walker_draft4, maxProperties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -362,6 +392,7 @@ TEST(JSONSchema_walker_draft4, minProperties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -374,6 +405,7 @@ TEST(JSONSchema_walker_draft4, required) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -386,6 +418,7 @@ TEST(JSONSchema_walker_draft4, format) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -398,6 +431,7 @@ TEST(JSONSchema_walker_draft4, title) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -409,6 +443,7 @@ TEST(JSONSchema_walker_draft4, description) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -420,6 +455,7 @@ TEST(JSONSchema_walker_draft4, default) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -431,6 +467,7 @@ TEST(JSONSchema_walker_draft4, hyperschema_links) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4_Hyper); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -442,6 +479,7 @@ TEST(JSONSchema_walker_draft4, hyperschema_media) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4_Hyper); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -454,6 +492,7 @@ TEST(JSONSchema_walker_draft4, hyperschema_pathStart) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4_Hyper); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -464,6 +503,7 @@ TEST(JSONSchema_walker_draft4, hyperschema_href) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -474,6 +514,7 @@ TEST(JSONSchema_walker_draft4, hyperschema_rel) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -485,6 +526,7 @@ TEST(JSONSchema_walker_draft4, hyperschema_mediaType) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -495,6 +537,7 @@ TEST(JSONSchema_walker_draft4, hyperschema_method) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -505,6 +548,7 @@ TEST(JSONSchema_walker_draft4, hyperschema_encType) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -516,6 +560,7 @@ TEST(JSONSchema_walker_draft4, hyperschema_readOnly) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -527,6 +572,7 @@ TEST(JSONSchema_walker_draft4, hyperschema_targetSchema) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -537,6 +583,7 @@ TEST(JSONSchema_walker_draft4, hyperschema_schema) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_4_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -547,6 +594,7 @@ TEST(JSONSchema_walker_draft4, hyperschema_links_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -557,6 +605,7 @@ TEST(JSONSchema_walker_draft4, hyperschema_media_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -567,6 +616,7 @@ TEST(JSONSchema_walker_draft4, hyperschema_pathStart_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -577,6 +627,7 @@ TEST(JSONSchema_walker_draft4, hyperschema_href_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -587,6 +638,7 @@ TEST(JSONSchema_walker_draft4, hyperschema_rel_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -597,6 +649,7 @@ TEST(JSONSchema_walker_draft4, hyperschema_mediaType_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -607,6 +660,7 @@ TEST(JSONSchema_walker_draft4, hyperschema_method_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -617,6 +671,7 @@ TEST(JSONSchema_walker_draft4, hyperschema_encType_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -627,6 +682,7 @@ TEST(JSONSchema_walker_draft4, hyperschema_readOnly_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -637,6 +693,7 @@ TEST(JSONSchema_walker_draft4, hyperschema_targetSchema_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -647,6 +704,7 @@ TEST(JSONSchema_walker_draft4, hyperschema_schema_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } diff --git a/test/jsonschema/jsonschema_walker_draft6_test.cc b/test/jsonschema/jsonschema_walker_draft6_test.cc index 02fa0a880..49f416ce6 100644 --- a/test/jsonschema/jsonschema_walker_draft6_test.cc +++ b/test/jsonschema/jsonschema_walker_draft6_test.cc @@ -21,6 +21,7 @@ TEST(JSONSchema_walker_draft6, schema) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -32,6 +33,7 @@ TEST(JSONSchema_walker_draft6, id) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -42,6 +44,7 @@ TEST(JSONSchema_walker_draft6, ref) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -53,6 +56,7 @@ TEST(JSONSchema_walker_draft6, definitions) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -64,6 +68,7 @@ TEST(JSONSchema_walker_draft6, allOf) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -75,6 +80,7 @@ TEST(JSONSchema_walker_draft6, anyOf) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -86,6 +92,7 @@ TEST(JSONSchema_walker_draft6, oneOf) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -97,6 +104,7 @@ TEST(JSONSchema_walker_draft6, not) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -109,6 +117,7 @@ TEST(JSONSchema_walker_draft6, items) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -121,6 +130,7 @@ TEST(JSONSchema_walker_draft6, additionalItems) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"items"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -133,6 +143,7 @@ TEST(JSONSchema_walker_draft6, contains) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -144,8 +155,11 @@ TEST(JSONSchema_walker_draft6, properties) { SchemaKeywordType::ApplicatorMembersTraversePropertyStatic); EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); - const std::unordered_set expected{"$ref", "required"}; - EXPECT_EQ(result.dependencies, expected); + const std::unordered_set expected_dependencies{"$ref"}; + EXPECT_EQ(result.dependencies, expected_dependencies); + const std::unordered_set expected_order_dependencies{ + "required"}; + EXPECT_EQ(result.order_dependencies, expected_order_dependencies); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -159,6 +173,7 @@ TEST(JSONSchema_walker_draft6, patternProperties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -171,6 +186,7 @@ TEST(JSONSchema_walker_draft6, dependencies) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -186,6 +202,7 @@ TEST(JSONSchema_walker_draft6, additionalProperties) { const std::unordered_set expected{"properties", "patternProperties"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -199,6 +216,7 @@ TEST(JSONSchema_walker_draft6, propertyNames) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -209,8 +227,9 @@ TEST(JSONSchema_walker_draft6, type) { EXPECT_EQ(result.type, SchemaKeywordType::Assertion); EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); + EXPECT_TRUE(result.dependencies.empty()); const std::unordered_set expected{"properties"}; - EXPECT_EQ(result.dependencies, expected); + EXPECT_EQ(result.order_dependencies, expected); EXPECT_TRUE(result.instances.none()); } @@ -222,6 +241,7 @@ TEST(JSONSchema_walker_draft6, enum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -233,6 +253,7 @@ TEST(JSONSchema_walker_draft6, const) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -244,6 +265,7 @@ TEST(JSONSchema_walker_draft6, multipleOf) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -258,6 +280,7 @@ TEST(JSONSchema_walker_draft6, maximum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -272,6 +295,7 @@ TEST(JSONSchema_walker_draft6, minimum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -286,6 +310,7 @@ TEST(JSONSchema_walker_draft6, exclusiveMaximum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -300,6 +325,7 @@ TEST(JSONSchema_walker_draft6, exclusiveMinimum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -314,6 +340,7 @@ TEST(JSONSchema_walker_draft6, maxLength) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -326,6 +353,7 @@ TEST(JSONSchema_walker_draft6, minLength) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -338,6 +366,7 @@ TEST(JSONSchema_walker_draft6, pattern) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -350,6 +379,7 @@ TEST(JSONSchema_walker_draft6, maxItems) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -362,6 +392,7 @@ TEST(JSONSchema_walker_draft6, minItems) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -374,6 +405,7 @@ TEST(JSONSchema_walker_draft6, uniqueItems) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -386,6 +418,7 @@ TEST(JSONSchema_walker_draft6, maxProperties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -398,6 +431,7 @@ TEST(JSONSchema_walker_draft6, minProperties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -410,6 +444,7 @@ TEST(JSONSchema_walker_draft6, required) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -422,6 +457,7 @@ TEST(JSONSchema_walker_draft6, format) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -434,6 +470,7 @@ TEST(JSONSchema_walker_draft6, title) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -445,6 +482,7 @@ TEST(JSONSchema_walker_draft6, description) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -456,6 +494,7 @@ TEST(JSONSchema_walker_draft6, default) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -467,6 +506,7 @@ TEST(JSONSchema_walker_draft6, examples) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -477,6 +517,7 @@ TEST(JSONSchema_walker_draft6, hyperschema_links) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6_Hyper); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -487,6 +528,7 @@ TEST(JSONSchema_walker_draft6, hyperschema_href) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6_Hyper); const std::unordered_set expected{"$ref"}; EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -496,6 +538,7 @@ TEST(JSONSchema_walker_draft6, hyperschema_rel) { EXPECT_EQ(result.type, SchemaKeywordType::Other); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -506,6 +549,7 @@ TEST(JSONSchema_walker_draft6, hyperschema_mediaType) { EXPECT_EQ(result.type, SchemaKeywordType::Other); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -516,6 +560,7 @@ TEST(JSONSchema_walker_draft6, hyperschema_submissionEncType) { EXPECT_EQ(result.type, SchemaKeywordType::Other); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -526,6 +571,7 @@ TEST(JSONSchema_walker_draft6, hyperschema_base) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6_Hyper); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -536,6 +582,7 @@ TEST(JSONSchema_walker_draft6, hyperschema_media) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6_Hyper); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -548,6 +595,7 @@ TEST(JSONSchema_walker_draft6, hyperschema_readOnly) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6_Hyper); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -559,6 +607,7 @@ TEST(JSONSchema_walker_draft6, hyperschema_hrefSchema) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -570,6 +619,7 @@ TEST(JSONSchema_walker_draft6, hyperschema_targetSchema) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -581,6 +631,7 @@ TEST(JSONSchema_walker_draft6, hyperschema_submissionSchema) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -591,6 +642,7 @@ TEST(JSONSchema_walker_draft6, hyperschema_links_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -601,6 +653,7 @@ TEST(JSONSchema_walker_draft6, hyperschema_href_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -611,6 +664,7 @@ TEST(JSONSchema_walker_draft6, hyperschema_rel_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -621,6 +675,7 @@ TEST(JSONSchema_walker_draft6, hyperschema_mediaType_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -632,6 +687,7 @@ TEST(JSONSchema_walker_draft6, EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -642,6 +698,7 @@ TEST(JSONSchema_walker_draft6, hyperschema_base_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -652,6 +709,7 @@ TEST(JSONSchema_walker_draft6, hyperschema_media_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -663,6 +721,7 @@ TEST(JSONSchema_walker_draft6, hyperschema_readOnly_without_hyperschema) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_6); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -673,6 +732,7 @@ TEST(JSONSchema_walker_draft6, hyperschema_hrefSchema_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -683,6 +743,7 @@ TEST(JSONSchema_walker_draft6, hyperschema_targetSchema_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -694,6 +755,7 @@ TEST(JSONSchema_walker_draft6, EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } diff --git a/test/jsonschema/jsonschema_walker_draft7_test.cc b/test/jsonschema/jsonschema_walker_draft7_test.cc index 9ea662a87..ec1aea295 100644 --- a/test/jsonschema/jsonschema_walker_draft7_test.cc +++ b/test/jsonschema/jsonschema_walker_draft7_test.cc @@ -21,6 +21,7 @@ TEST(JSONSchema_walker_draft7, schema) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -32,6 +33,7 @@ TEST(JSONSchema_walker_draft7, id) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -42,6 +44,7 @@ TEST(JSONSchema_walker_draft7, ref) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -53,6 +56,7 @@ TEST(JSONSchema_walker_draft7, definitions) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -64,6 +68,7 @@ TEST(JSONSchema_walker_draft7, comment) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -75,6 +80,7 @@ TEST(JSONSchema_walker_draft7, allOf) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -86,6 +92,7 @@ TEST(JSONSchema_walker_draft7, anyOf) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -97,6 +104,7 @@ TEST(JSONSchema_walker_draft7, oneOf) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -108,6 +116,7 @@ TEST(JSONSchema_walker_draft7, not) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -119,6 +128,7 @@ TEST(JSONSchema_walker_draft7, if) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -130,6 +140,7 @@ TEST(JSONSchema_walker_draft7, then) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"if"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -141,6 +152,7 @@ TEST(JSONSchema_walker_draft7, else) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"if"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -153,6 +165,7 @@ TEST(JSONSchema_walker_draft7, items) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -165,6 +178,7 @@ TEST(JSONSchema_walker_draft7, additionalItems) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"items"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -177,6 +191,7 @@ TEST(JSONSchema_walker_draft7, contains) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -188,8 +203,11 @@ TEST(JSONSchema_walker_draft7, properties) { SchemaKeywordType::ApplicatorMembersTraversePropertyStatic); EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); - const std::unordered_set expected{"$ref", "required"}; - EXPECT_EQ(result.dependencies, expected); + const std::unordered_set expected_dependencies{"$ref"}; + EXPECT_EQ(result.dependencies, expected_dependencies); + const std::unordered_set expected_order_dependencies{ + "required"}; + EXPECT_EQ(result.order_dependencies, expected_order_dependencies); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -203,6 +221,7 @@ TEST(JSONSchema_walker_draft7, patternProperties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -215,6 +234,7 @@ TEST(JSONSchema_walker_draft7, dependencies) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -230,6 +250,7 @@ TEST(JSONSchema_walker_draft7, additionalProperties) { const std::unordered_set expected{"properties", "patternProperties"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -243,6 +264,7 @@ TEST(JSONSchema_walker_draft7, propertyNames) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -253,8 +275,9 @@ TEST(JSONSchema_walker_draft7, type) { EXPECT_EQ(result.type, SchemaKeywordType::Assertion); EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); + EXPECT_TRUE(result.dependencies.empty()); const std::unordered_set expected{"properties"}; - EXPECT_EQ(result.dependencies, expected); + EXPECT_EQ(result.order_dependencies, expected); EXPECT_TRUE(result.instances.none()); } @@ -266,6 +289,7 @@ TEST(JSONSchema_walker_draft7, enum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -277,6 +301,7 @@ TEST(JSONSchema_walker_draft7, const) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -288,6 +313,7 @@ TEST(JSONSchema_walker_draft7, multipleOf) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -302,6 +328,7 @@ TEST(JSONSchema_walker_draft7, maximum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -316,6 +343,7 @@ TEST(JSONSchema_walker_draft7, minimum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -330,6 +358,7 @@ TEST(JSONSchema_walker_draft7, exclusiveMaximum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -344,6 +373,7 @@ TEST(JSONSchema_walker_draft7, exclusiveMinimum) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); const auto instances = sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Integer, sourcemeta::core::JSON::Type::Real}); @@ -358,6 +388,7 @@ TEST(JSONSchema_walker_draft7, maxLength) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -370,6 +401,7 @@ TEST(JSONSchema_walker_draft7, minLength) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -382,6 +414,7 @@ TEST(JSONSchema_walker_draft7, pattern) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -394,6 +427,7 @@ TEST(JSONSchema_walker_draft7, maxItems) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -406,6 +440,7 @@ TEST(JSONSchema_walker_draft7, minItems) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -418,6 +453,7 @@ TEST(JSONSchema_walker_draft7, uniqueItems) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Array})); } @@ -430,6 +466,7 @@ TEST(JSONSchema_walker_draft7, maxProperties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -442,6 +479,7 @@ TEST(JSONSchema_walker_draft7, minProperties) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -454,6 +492,7 @@ TEST(JSONSchema_walker_draft7, required) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::Object})); } @@ -466,6 +505,7 @@ TEST(JSONSchema_walker_draft7, format) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -478,6 +518,7 @@ TEST(JSONSchema_walker_draft7, contentEncoding) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -490,6 +531,7 @@ TEST(JSONSchema_walker_draft7, contentMediaType) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_EQ(result.instances, sourcemeta::core::make_set({sourcemeta::core::JSON::Type::String})); } @@ -502,6 +544,7 @@ TEST(JSONSchema_walker_draft7, title) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -513,6 +556,7 @@ TEST(JSONSchema_walker_draft7, description) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -524,6 +568,7 @@ TEST(JSONSchema_walker_draft7, default) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -535,6 +580,7 @@ TEST(JSONSchema_walker_draft7, readOnly) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -546,6 +592,7 @@ TEST(JSONSchema_walker_draft7, writeOnly) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -557,6 +604,7 @@ TEST(JSONSchema_walker_draft7, examples) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -568,6 +616,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_links) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7_Hyper); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -579,6 +628,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_base) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7_Hyper); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -589,6 +639,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_anchor) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -600,6 +651,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_anchorPointer) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -610,6 +662,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_rel) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -620,6 +673,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_href) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -631,6 +685,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_templatePointers) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -643,6 +698,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_templateRequired) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7_Hyper); const std::unordered_set expected{"$ref"}; EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -654,6 +710,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_targetMediaType) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -665,6 +722,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_targetHints) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -677,6 +735,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_submissionMediaType) { EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7_Hyper); const std::unordered_set expected{"$ref"}; EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -688,6 +747,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_hrefSchema) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -699,6 +759,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_targetSchema) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -710,6 +771,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_headerSchema) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -721,6 +783,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_submissionSchema) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), JSON_Schema_Draft_7_Hyper); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -731,6 +794,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_links_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -741,6 +805,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_base_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -751,6 +816,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_anchor_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -761,6 +827,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_anchorPointer_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -771,6 +838,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_rel_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -781,6 +849,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_href_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -792,6 +861,7 @@ TEST(JSONSchema_walker_draft7, EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -803,6 +873,7 @@ TEST(JSONSchema_walker_draft7, EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -814,6 +885,7 @@ TEST(JSONSchema_walker_draft7, EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -824,6 +896,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_targetHints_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -835,6 +908,7 @@ TEST(JSONSchema_walker_draft7, EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -845,6 +919,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_hrefSchema_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -855,6 +930,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_targetSchema_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -865,6 +941,7 @@ TEST(JSONSchema_walker_draft7, hyperschema_headerSchema_without_hyperschema) { EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -876,6 +953,7 @@ TEST(JSONSchema_walker_draft7, EXPECT_FALSE(result.vocabulary.has_value()); const std::unordered_set expected{"$ref"}; EXPECT_EQ(result.dependencies, expected); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } diff --git a/test/jsonschema/jsonschema_walker_openapi_test.cc b/test/jsonschema/jsonschema_walker_openapi_test.cc index 677640fc9..2703e77ec 100644 --- a/test/jsonschema/jsonschema_walker_openapi_test.cc +++ b/test/jsonschema/jsonschema_walker_openapi_test.cc @@ -22,6 +22,7 @@ TEST(JSONSchema_walker_openapi_3_1, discriminator) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), OpenAPI_3_1_Base); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -31,6 +32,7 @@ TEST(JSONSchema_walker_openapi_3_1, discriminator_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -41,6 +43,7 @@ TEST(JSONSchema_walker_openapi_3_1, xml) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), OpenAPI_3_1_Base); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -50,6 +53,7 @@ TEST(JSONSchema_walker_openapi_3_1, xml_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -60,6 +64,7 @@ TEST(JSONSchema_walker_openapi_3_1, externalDocs) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), OpenAPI_3_1_Base); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -69,6 +74,7 @@ TEST(JSONSchema_walker_openapi_3_1, externalDocs_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -79,6 +85,7 @@ TEST(JSONSchema_walker_openapi_3_1, example) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), OpenAPI_3_1_Base); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -88,6 +95,7 @@ TEST(JSONSchema_walker_openapi_3_1, example_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -98,6 +106,7 @@ TEST(JSONSchema_walker_openapi_3_2, discriminator) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), OpenAPI_3_2_Base); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -107,6 +116,7 @@ TEST(JSONSchema_walker_openapi_3_2, discriminator_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -117,6 +127,7 @@ TEST(JSONSchema_walker_openapi_3_2, xml) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), OpenAPI_3_2_Base); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -126,6 +137,7 @@ TEST(JSONSchema_walker_openapi_3_2, xml_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -136,6 +148,7 @@ TEST(JSONSchema_walker_openapi_3_2, externalDocs) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), OpenAPI_3_2_Base); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -145,6 +158,7 @@ TEST(JSONSchema_walker_openapi_3_2, externalDocs_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -155,6 +169,7 @@ TEST(JSONSchema_walker_openapi_3_2, example) { EXPECT_TRUE(result.vocabulary.has_value()); EXPECT_VOCABULARY_KNOWN(result.vocabulary.value(), OpenAPI_3_2_Base); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } @@ -164,5 +179,6 @@ TEST(JSONSchema_walker_openapi_3_2, example_without_vocabulary) { EXPECT_EQ(result.type, SchemaKeywordType::Unknown); EXPECT_FALSE(result.vocabulary.has_value()); EXPECT_TRUE(result.dependencies.empty()); + EXPECT_TRUE(result.order_dependencies.empty()); EXPECT_TRUE(result.instances.none()); } diff --git a/test/jsonschema/jsonschema_walker_test.cc b/test/jsonschema/jsonschema_walker_test.cc index 8a88a0c03..5df96ca84 100644 --- a/test/jsonschema/jsonschema_walker_test.cc +++ b/test/jsonschema/jsonschema_walker_test.cc @@ -42,6 +42,7 @@ static auto test_walker(std::string_view keyword, SchemaKeywordType::ApplicatorValueTraverseSomeProperty, "https://sourcemeta.com/vocab/test-1", {}, + {}, {}}; return result; } @@ -51,6 +52,7 @@ static auto test_walker(std::string_view keyword, SchemaKeywordType::ApplicatorElementsTraverseItem, "https://sourcemeta.com/vocab/test-1", {}, + {}, {}}; return result; } @@ -60,6 +62,7 @@ static auto test_walker(std::string_view keyword, SchemaKeywordType::ApplicatorMembersTraversePropertyStatic, "https://sourcemeta.com/vocab/test-1", {}, + {}, {}}; return result; } @@ -69,6 +72,7 @@ static auto test_walker(std::string_view keyword, SchemaKeywordType::ApplicatorValueOrElementsTraverseAnyItemOrItem, "https://sourcemeta.com/vocab/test-1", {}, + {}, {}}; return result; } @@ -80,13 +84,14 @@ static auto test_walker(std::string_view keyword, SchemaKeywordType::ApplicatorValueTraverseSomeProperty, "https://sourcemeta.com/vocab/test-2", {}, + {}, {}}; return result; } } static const SchemaWalkerResult unknown{ - SchemaKeywordType::Unknown, std::nullopt, {}, {}}; + SchemaKeywordType::Unknown, std::nullopt, {}, {}, {}}; return unknown; }