// SPDX-License-Identifier: Apache-2.0 // Copyright Pionix GmbH and Contributors to EVerest #include #include #include #include #include #include SCENARIO("Check conversions", "[!throws]") { GIVEN("Valid CmdErrors") { THEN("It shouldn't throw") { CHECK(Everest::conversions::cmd_error_type_to_string(Everest::CmdErrorType::MessageParsingError) == "MessageParsingError"); CHECK(Everest::conversions::cmd_error_type_to_string(Everest::CmdErrorType::SchemaValidationError) == "SchemaValidationError"); CHECK(Everest::conversions::cmd_error_type_to_string(Everest::CmdErrorType::HandlerException) == "HandlerException"); CHECK(Everest::conversions::cmd_error_type_to_string(Everest::CmdErrorType::CmdTimeout) == "CmdTimeout"); CHECK(Everest::conversions::cmd_error_type_to_string(Everest::CmdErrorType::Shutdown) == "Shutdown"); CHECK(Everest::conversions::cmd_error_type_to_string(Everest::CmdErrorType::NotReady) == "NotReady"); } } GIVEN("Invalid CmdErrors") { THEN("It should throw") { CHECK_THROWS(Everest::conversions::cmd_error_type_to_string(static_cast(-1))); } } GIVEN("Valid CmdError strings") { THEN("It shouldn't throw") { CHECK(Everest::conversions::string_to_cmd_error_type("MessageParsingError") == Everest::CmdErrorType::MessageParsingError); CHECK(Everest::conversions::string_to_cmd_error_type("SchemaValidationError") == Everest::CmdErrorType::SchemaValidationError); CHECK(Everest::conversions::string_to_cmd_error_type("HandlerException") == Everest::CmdErrorType::HandlerException); CHECK(Everest::conversions::string_to_cmd_error_type("CmdTimeout") == Everest::CmdErrorType::CmdTimeout); CHECK(Everest::conversions::string_to_cmd_error_type("Shutdown") == Everest::CmdErrorType::Shutdown); CHECK(Everest::conversions::string_to_cmd_error_type("NotReady") == Everest::CmdErrorType::NotReady); } } GIVEN("Invalid CmdError strings") { THEN("It should throw") { CHECK_THROWS(Everest::conversions::string_to_cmd_error_type("ThisIsAnInvalidCmdErrorString")); } } GIVEN("Valid CmdErrorError") { THEN("It shouldn't throw") { Everest::CmdResultError cmd_result_error = {Everest::CmdErrorType::Shutdown, "message", nullptr}; json cmd_result_error_json = {{Everest::conversions::ERROR_TYPE, "Shutdown"}, {Everest::conversions::ERROR_MSG, "message"}}; Everest::CmdResultError cmd_result_error_from_json = cmd_result_error_json; CHECK(json(cmd_result_error) == cmd_result_error_json); CHECK(json(cmd_result_error_from_json) == cmd_result_error_json); } } GIVEN("Valid timestamp") { THEN("It should parse") { const auto now_utc = date::utc_clock::now(); const auto now_str = Everest::Date::to_rfc3339(now_utc); const auto tp_from_slow = Everest::Date::from_rfc3339_slow(now_str); const auto tp_from_fast = Everest::Date::from_rfc3339(now_str); CHECK(tp_from_slow == tp_from_fast); } } }