#include #include #include #include #include "utils.h" using namespace std::literals; using Catch::Matchers::ContainsSubstring; using Catch::Matchers::MessageMatches; TEST_CASE_METHOD(JsonValidateFixture, "issue-143") { // Change the working directory to the issue path auto path = std::filesystem::path(__FILE__).parent_path(); REQUIRE_NOTHROW(std::filesystem::current_path(path)); CHECK_THROWS_MATCHES(validate("schema.json"sv, "instance-fail-1.json"sv), std::invalid_argument, MessageMatches(ContainsSubstring("At /ref1 of \"a\" - unexpected instance type"))); CHECK_THROWS_MATCHES(validate("schema.json"sv, "instance-fail-a.json"sv), std::invalid_argument, MessageMatches(ContainsSubstring("At /refa of 12 - unexpected instance type"))); CHECK_NOTHROW(validate("schema.json"sv, "instance.json"sv)); }