|
10 | 10 |
|
11 | 11 | #include "jsonschema_transform_rules.h"
|
12 | 12 |
|
13 |
| -static auto transformer_callback_noop(const sourcemeta::core::Pointer &, |
14 |
| - const std::string_view, |
15 |
| - const std::string_view, |
16 |
| - const std::string_view) -> void {} |
| 13 | +static auto |
| 14 | +transformer_callback_noop(const sourcemeta::core::Pointer &, |
| 15 | + const std::string_view, const std::string_view, |
| 16 | + const sourcemeta::core::SchemaTransformRule::Result &) |
| 17 | + -> void {} |
17 | 18 |
|
18 | 19 | using TestTransformTraces =
|
19 | 20 | std::vector<std::tuple<sourcemeta::core::Pointer, std::string, std::string,
|
20 |
| - std::string>>; |
| 21 | + sourcemeta::core::SchemaTransformRule::Result>>; |
21 | 22 |
|
22 | 23 | static auto transformer_callback_trace(TestTransformTraces &traces) -> auto {
|
23 | 24 | return [&traces](const auto &pointer, const auto &name, const auto &message,
|
24 |
| - const auto &description) { |
25 |
| - traces.emplace_back(pointer, name, message, description); |
| 25 | + const auto &result) { |
| 26 | + traces.emplace_back(pointer, name, message, result); |
26 | 27 | };
|
27 | 28 | }
|
28 | 29 |
|
@@ -482,13 +483,14 @@ TEST(JSONSchema_transformer, check_top_level) {
|
482 | 483 | EXPECT_EQ(std::get<0>(entries.at(0)), sourcemeta::core::Pointer{});
|
483 | 484 | EXPECT_EQ(std::get<1>(entries.at(0)), "example_rule_1");
|
484 | 485 | EXPECT_EQ(std::get<2>(entries.at(0)), "Keyword foo is not permitted");
|
485 |
| - EXPECT_EQ(std::get<3>(entries.at(0)), "This is a message from the rule"); |
| 486 | + EXPECT_EQ(std::get<3>(entries.at(0)).description, |
| 487 | + "This is a message from the rule"); |
486 | 488 |
|
487 | 489 | EXPECT_EQ(std::get<0>(entries.at(1)),
|
488 | 490 | sourcemeta::core::Pointer({"properties", "xxx"}));
|
489 | 491 | EXPECT_EQ(std::get<1>(entries.at(1)), "example_rule_2");
|
490 | 492 | EXPECT_EQ(std::get<2>(entries.at(1)), "Keyword bar is not permitted");
|
491 |
| - EXPECT_EQ(std::get<3>(entries.at(1)), ""); |
| 493 | + EXPECT_EQ(std::get<3>(entries.at(1)).description, ""); |
492 | 494 | }
|
493 | 495 |
|
494 | 496 | TEST(JSONSchema_transformer, check_no_match) {
|
@@ -552,7 +554,7 @@ TEST(JSONSchema_transformer, check_partial_match) {
|
552 | 554 | sourcemeta::core::Pointer({"properties", "bar"}));
|
553 | 555 | EXPECT_EQ(std::get<1>(entries.at(0)), "example_rule_1");
|
554 | 556 | EXPECT_EQ(std::get<2>(entries.at(0)), "Keyword foo is not permitted");
|
555 |
| - EXPECT_EQ(std::get<3>(entries.at(0)), ""); |
| 557 | + EXPECT_EQ(std::get<3>(entries.at(0)).description, ""); |
556 | 558 | }
|
557 | 559 |
|
558 | 560 | TEST(JSONSchema_transformer, check_empty) {
|
@@ -621,13 +623,13 @@ TEST(JSONSchema_transformer, check_with_default_dialect) {
|
621 | 623 | EXPECT_EQ(std::get<0>(entries.at(0)), sourcemeta::core::Pointer{});
|
622 | 624 | EXPECT_EQ(std::get<1>(entries.at(0)), "example_rule_1");
|
623 | 625 | EXPECT_EQ(std::get<2>(entries.at(0)), "Keyword foo is not permitted");
|
624 |
| - EXPECT_EQ(std::get<3>(entries.at(0)), ""); |
| 626 | + EXPECT_EQ(std::get<3>(entries.at(0)).description, ""); |
625 | 627 |
|
626 | 628 | EXPECT_EQ(std::get<0>(entries.at(1)),
|
627 | 629 | sourcemeta::core::Pointer({"properties", "xxx"}));
|
628 | 630 | EXPECT_EQ(std::get<1>(entries.at(1)), "example_rule_2");
|
629 | 631 | EXPECT_EQ(std::get<2>(entries.at(1)), "Keyword bar is not permitted");
|
630 |
| - EXPECT_EQ(std::get<3>(entries.at(1)), ""); |
| 632 | + EXPECT_EQ(std::get<3>(entries.at(1)).description, ""); |
631 | 633 | }
|
632 | 634 |
|
633 | 635 | TEST(JSONSchema_transformer, remove_rule_by_name) {
|
@@ -687,7 +689,7 @@ TEST(JSONSchema_transformer, unfixable_apply_without_description) {
|
687 | 689 | EXPECT_EQ(std::get<0>(entries.at(0)), sourcemeta::core::Pointer{});
|
688 | 690 | EXPECT_EQ(std::get<1>(entries.at(0)), "example_rule_unfixable_1");
|
689 | 691 | EXPECT_EQ(std::get<2>(entries.at(0)), "An example rule that cannot be fixed");
|
690 |
| - EXPECT_EQ(std::get<3>(entries.at(0)), ""); |
| 692 | + EXPECT_EQ(std::get<3>(entries.at(0)).description, ""); |
691 | 693 |
|
692 | 694 | const sourcemeta::core::JSON expected = sourcemeta::core::parse_json(R"JSON({
|
693 | 695 | "$schema": "https://json-schema.org/draft/2020-12/schema",
|
@@ -723,7 +725,8 @@ TEST(JSONSchema_transformer, unfixable_apply_with_description) {
|
723 | 725 | EXPECT_EQ(std::get<1>(entries.at(0)),
|
724 | 726 | "example_rule_unfixable_with_description_1");
|
725 | 727 | EXPECT_EQ(std::get<2>(entries.at(0)), "An example rule that cannot be fixed");
|
726 |
| - EXPECT_EQ(std::get<3>(entries.at(0)), "The subschema cannot define foo"); |
| 728 | + EXPECT_EQ(std::get<3>(entries.at(0)).description, |
| 729 | + "The subschema cannot define foo"); |
727 | 730 |
|
728 | 731 | const sourcemeta::core::JSON expected = sourcemeta::core::parse_json(R"JSON({
|
729 | 732 | "$schema": "https://json-schema.org/draft/2020-12/schema",
|
@@ -758,7 +761,7 @@ TEST(JSONSchema_transformer, unfixable_check) {
|
758 | 761 | EXPECT_EQ(std::get<0>(entries.at(0)), sourcemeta::core::Pointer{});
|
759 | 762 | EXPECT_EQ(std::get<1>(entries.at(0)), "example_rule_unfixable_1");
|
760 | 763 | EXPECT_EQ(std::get<2>(entries.at(0)), "An example rule that cannot be fixed");
|
761 |
| - EXPECT_EQ(std::get<3>(entries.at(0)), ""); |
| 764 | + EXPECT_EQ(std::get<3>(entries.at(0)).description, ""); |
762 | 765 | }
|
763 | 766 |
|
764 | 767 | TEST(JSONSchema_transformer, rereference_not_hit) {
|
|
0 commit comments