Newer
Older
#include <catch2/catch.hpp>
#include <ErrorHandler.hpp>
#include "Services/ServiceTests.hpp"
#include "Services/RequestVerificationService.hpp"
TEST_CASE("Error: Failed Acceptance", "[errors]") {
Message failedMessage(38, 32, Message::TC, 47);
ErrorHandler::reportError(failedMessage, ErrorHandler::MessageTooShort);
REQUIRE(ServiceTests::hasOneMessage());
CHECK(ServiceTests::thrownError(ErrorHandler::MessageTooShort));
Message report = ServiceTests::get(0);
// Check that a TM[1,2] message was returned
CHECK(report.serviceType == RequestVerificationService::ServiceType);
CHECK(report.messageType == RequestVerificationService::MessageType::FailedAcceptanceReport);
CHECK(report.packetType == Message::TM);
REQUIRE(report.dataSize == 6);
CHECK(report.readBits(1) == static_cast<uint16_t>(Message::TC));
CHECK(report.readBits(1) == 1);
CHECK(report.readBits(14) == failedMessage.packetSequenceCount);
CHECK(report.readEnum16() == ErrorHandler::MessageTooShort);
TEST_CASE("Error: Failed Execution Start", "[errors]") {
Message failedMessage(38, 32, Message::TC, 56);
ErrorHandler::reportError(failedMessage, ErrorHandler::UnknownExecutionStartError);
CHECK(ServiceTests::thrownError(ErrorHandler::UnknownExecutionStartError));
Message report = ServiceTests::get(0);
// Check that a TM[1,3] message was returned
CHECK(report.serviceType == RequestVerificationService::ServiceType);
CHECK(report.messageType == RequestVerificationService::MessageType::FailedStartOfExecution);
CHECK(report.packetType == Message::TM);
REQUIRE(report.dataSize == 6);
CHECK(report.readBits(1) == static_cast<uint16_t>(Message::TC));
CHECK(report.readBits(1) == 1);
CHECK(report.readBits(14) == failedMessage.packetSequenceCount);
CHECK(report.readEnum16() == ErrorHandler::UnknownExecutionStartError);
}
TEST_CASE("Error: Failed Execution Progress", "[errors]") {
Message failedMessage(38, 32, Message::TC, 56);
ErrorHandler::reportProgressError(failedMessage, ErrorHandler::UnknownExecutionProgressError, 0);
CHECK(ServiceTests::thrownError(ErrorHandler::UnknownExecutionProgressError));
Message report = ServiceTests::get(0);
// Check that a TM[1,6] message was returned
CHECK(report.serviceType == RequestVerificationService::ServiceType);
CHECK(report.messageType == RequestVerificationService::MessageType::FailedProgressOfExecution);
CHECK(report.readBits(1) == static_cast<uint16_t>(Message::TC));
CHECK(report.readBits(1) == 1);
CHECK(report.readBits(14) == failedMessage.packetSequenceCount);
CHECK(report.readEnum16() == ErrorHandler::UnknownExecutionProgressError);
TEST_CASE("Error: Failed Execution Completion", "[errors]") {
Message failedMessage(38, 32, Message::TC, 56);
ErrorHandler::reportError(failedMessage, ErrorHandler::UnknownExecutionCompletionError);
CHECK(ServiceTests::thrownError(ErrorHandler::UnknownExecutionCompletionError));
Message report = ServiceTests::get(0);
// Check that a TM[1,8] message was returned
CHECK(report.serviceType == RequestVerificationService::ServiceType);
CHECK(report.messageType == RequestVerificationService::MessageType::FailedCompletionOfExecution);
CHECK(report.packetType == Message::TM);
REQUIRE(report.dataSize == 6);
CHECK(report.readBits(1) == static_cast<uint16_t>(Message::TC));
CHECK(report.readBits(1) == 1);
CHECK(report.readBits(14) == failedMessage.packetSequenceCount);
CHECK(report.readEnum16() == ErrorHandler::UnknownExecutionCompletionError);
}
TEST_CASE("Error: Failed Routing", "[errors]") {
Message failedMessage(38, 32, Message::TC, 71);
ErrorHandler::reportError(failedMessage, ErrorHandler::UnknownRoutingError);
REQUIRE(ServiceTests::hasOneMessage());
CHECK(ServiceTests::thrownError(ErrorHandler::UnknownRoutingError));
Message report = ServiceTests::get(0);
// Check that a TM[1,8] message was returned
CHECK(report.serviceType == RequestVerificationService::ServiceType);
CHECK(report.messageType == RequestVerificationService::MessageType::FailedRoutingReport);
CHECK(report.packetType == Message::TM);
REQUIRE(report.dataSize == 6);
CHECK(report.readBits(1) == static_cast<uint16_t>(Message::TC));
CHECK(report.readBits(1) == 1);
CHECK(report.readBits(14) == failedMessage.packetSequenceCount);
CHECK(report.readEnum16() == ErrorHandler::UnknownRoutingError);