Files
cariflex/tools/EVerest-main/lib/everest/framework/tests/test_conversions.cpp
Eric F d398a6ced2 Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter
- CitrineOS core extracted (CSMS OCPP 2.0.1)
- OpenOCPP extracted (firmware OCPP 1.6J/2.0.1)
- ShapeShifter library installed (pip install -e)
- ShapeShifter specification extracted
- EVerest extracted

TODO updated with progress
2026-06-08 00:38:27 -04:00

76 lines
3.4 KiB
C++

// SPDX-License-Identifier: Apache-2.0
// Copyright Pionix GmbH and Contributors to EVerest
#include <catch2/catch_all.hpp>
#include <chrono>
#include <iostream>
#include <utils/conversions.hpp>
#include <utils/date.hpp>
#include <utils/types.hpp>
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<Everest::CmdErrorType>(-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);
}
}
}