- 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
76 lines
3.4 KiB
C++
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);
|
|
}
|
|
}
|
|
}
|