From e886b5b372d5bea0605a0a6bf2d5af0b4bac179a Mon Sep 17 00:00:00 2001
From: thodkatz <thodkatz@gmail.com>
Date: Thu, 24 Jan 2019 15:28:28 +0200
Subject: [PATCH] Added tests for ST[01]

---
 test/Services/RequestVerificationService.cpp | 112 ++++++++++++++++++-
 1 file changed, 106 insertions(+), 6 deletions(-)

diff --git a/test/Services/RequestVerificationService.cpp b/test/Services/RequestVerificationService.cpp
index c98e6c77..a653c6d4 100644
--- a/test/Services/RequestVerificationService.cpp
+++ b/test/Services/RequestVerificationService.cpp
@@ -22,7 +22,7 @@ TEST_CASE("TM[1,1]", "[service][st01]") {
 	CHECK(response.readEnumerated(1) == Message::TC); // packet type
 	CHECK(response.readBits(1) == 0); // secondary header flag
 	CHECK(response.readEnumerated(11) == 3); // application process ID
-	CHECK(response.readEnumerated(2) == 3); // sequence flags
+	CHECK(response.readEnumerated(2) == ECSS_SEQUENCE_FLAGS); // sequence flags
 	CHECK(response.readBits(14) == 0); // packet sequence count
 }
 
@@ -46,11 +46,111 @@ TEST_CASE("TM[1,2]", "[service][st01]") {
 	CHECK(response.readEnumerated(1) == Message::TC); // packet type
 	CHECK(response.readBits(1) == 0); // secondary header flag
 	CHECK(response.readEnumerated(11) == 3); // application process ID
-	CHECK(response.readEnumerated(2) == 3); // sequence flags
+	CHECK(response.readEnumerated(2) == ECSS_SEQUENCE_FLAGS); // sequence flags
 	CHECK(response.readBits(14) == 0); // packet sequence count
 	CHECK(response.readEnum16() == ErrorHandler::UnknownAcceptanceError); // error code
 }
 
+TEST_CASE("TM[1,3]", "[service][st01]") {
+	RequestVerificationService reqVerifService;
+
+	Message receivedMessage = Message(1, 3, Message::TC, 3);
+	reqVerifService.successStartExecutionVerification(receivedMessage);
+	REQUIRE(ServiceTests::hasOneMessage());
+
+	Message response = ServiceTests::get(0);
+	// Checks for the data-members of the object response
+	CHECK(response.serviceType == 1);
+	CHECK(response.messageType == 3);
+	CHECK(response.packetType == Message::TM); // packet type
+	CHECK(response.applicationId == 0);
+	REQUIRE(response.dataSize == 4); // dataSize is the number of bytes of data array
+	// Check for the value that is stored in <<data>> array(data-member of object response)
+	CHECK(response.readEnumerated(3) == CCSDS_PACKET_VERSION); // packet version number
+	CHECK(response.readEnumerated(1) == Message::TC); // packet type
+	CHECK(response.readBits(1) == 0); // secondary header flag
+	CHECK(response.readEnumerated(11) == 3); // application process ID
+	CHECK(response.readEnumerated(2) == ECSS_SEQUENCE_FLAGS); // sequence flags
+	CHECK(response.readBits(14) == 0); // packet sequence count
+}
+
+TEST_CASE("TM[1,4]", "[service][st01]") {
+	RequestVerificationService reqVerifService;
+
+	Message receivedMessage = Message(1, 2, Message::TC, 3);
+	reqVerifService.failStartExecutionVerification(receivedMessage,
+	                                               ErrorHandler::UnknownStartExecutionError);
+	REQUIRE(ServiceTests::hasOneMessage());
+
+	Message response = ServiceTests::get(0);
+	// Checks for the data-members of the object response
+	CHECK(response.serviceType == 1);
+	CHECK(response.messageType == 4);
+	CHECK(response.packetType == Message::TM); // packet type
+	CHECK(response.applicationId == 0);
+	REQUIRE(response.dataSize == 6); // dataSize is the number of bytes of data array
+	// Check for the value that is stored in <<data>> array(data-member of object response)
+	CHECK(response.readEnumerated(3) == CCSDS_PACKET_VERSION); // packet version number
+	CHECK(response.readEnumerated(1) == Message::TC); // packet type
+	CHECK(response.readBits(1) == 0); // secondary header flag
+	CHECK(response.readEnumerated(11) == 3); // application process ID
+	CHECK(response.readEnumerated(2) == ECSS_SEQUENCE_FLAGS); // sequence flags
+	CHECK(response.readBits(14) == 0); // packet sequence count
+	CHECK(response.readEnum16() == ErrorHandler::UnknownAcceptanceError); // error code
+}
+
+TEST_CASE("TM[1,5]", "[service][st01]") {
+	RequestVerificationService reqVerifService;
+
+	Message receivedMessage = Message(1, 5, Message::TC, 3);
+	reqVerifService.successProgressExecutionVerification(receivedMessage,
+	                                                     ErrorHandler::UnknownStepID);
+	REQUIRE(ServiceTests::hasOneMessage());
+
+	Message response = ServiceTests::get(0);
+	// Checks for the data-members of the object response
+	CHECK(response.serviceType == 1);
+	CHECK(response.messageType == 5);
+	CHECK(response.packetType == Message::TM); // packet type
+	CHECK(response.applicationId == 0);
+	REQUIRE(response.dataSize == 6); // dataSize is the number of bytes of data array
+	// Check for the value that is stored in <<data>> array(data-member of object response)
+	CHECK(response.readEnumerated(3) == CCSDS_PACKET_VERSION); // packet version number
+	CHECK(response.readEnumerated(1) == Message::TC); // packet type
+	CHECK(response.readBits(1) == 0); // secondary header flag
+	CHECK(response.readEnumerated(11) == 3); // application process ID
+	CHECK(response.readEnumerated(2) == ECSS_SEQUENCE_FLAGS); // sequence flags
+	CHECK(response.readBits(14) == 0); // packet sequence count
+	CHECK(response.readEnum16() == ErrorHandler::UnknownStepID); // step ID
+}
+
+TEST_CASE("TM[1,6]", "[service][st01]") {
+	RequestVerificationService reqVerifService;
+
+	Message receivedMessage = Message(1, 5, Message::TC, 3);
+	reqVerifService.failProgressExecutionVerification(receivedMessage,
+	                                                  ErrorHandler::UnknownProgressExecutionError,
+	                                                  ErrorHandler::UnknownStepID);
+	REQUIRE(ServiceTests::hasOneMessage());
+
+	Message response = ServiceTests::get(0);
+	// Checks for the data-members of the object response
+	CHECK(response.serviceType == 1);
+	CHECK(response.messageType == 6);
+	CHECK(response.packetType == Message::TM); // packet type
+	CHECK(response.applicationId == 0);
+	REQUIRE(response.dataSize == 8); // dataSize is the number of bytes of data array
+	// Check for the value that is stored in <<data>> array(data-member of object response)
+	CHECK(response.readEnumerated(3) == CCSDS_PACKET_VERSION); // packet version number
+	CHECK(response.readEnumerated(1) == Message::TC); // packet type
+	CHECK(response.readBits(1) == 0); // secondary header flag
+	CHECK(response.readEnumerated(11) == 3); // application process ID
+	CHECK(response.readEnumerated(2) == ECSS_SEQUENCE_FLAGS); // sequence flags
+	CHECK(response.readBits(14) == 0); // packet sequence count
+	CHECK(response.readEnum16() == ErrorHandler::UnknownStepID); // step ID
+	CHECK(response.readEnum16() == ErrorHandler::UnknownProgressExecutionError);
+}
+
 TEST_CASE("TM[1,7]", "[service][st01]") {
 	RequestVerificationService reqVerifService;
 
@@ -70,7 +170,7 @@ TEST_CASE("TM[1,7]", "[service][st01]") {
 	CHECK(response.readEnumerated(1) == Message::TC); // packet type
 	CHECK(response.readBits(1) == 0); // secondary header flag
 	CHECK(response.readEnumerated(11) == 3); // application process ID
-	CHECK(response.readEnumerated(2) == 3); // sequence flags
+	CHECK(response.readEnumerated(2) == ECSS_SEQUENCE_FLAGS); // sequence flags
 	CHECK(response.readBits(14) == 0); // packet sequence count
 }
 
@@ -79,7 +179,7 @@ TEST_CASE("TM[1,8]", "[service][st01]") {
 
 	Message receivedMessage = Message(1, 8, Message::TC, 3);
 	reqVerifService.failCompletionExecutionVerification(receivedMessage,
-		ErrorHandler::UnknownCompletionExecutionError);
+	                                                    ErrorHandler::UnknownCompletionExecutionError);
 	REQUIRE(ServiceTests::hasOneMessage());
 
 	Message response = ServiceTests::get(0);
@@ -93,7 +193,7 @@ TEST_CASE("TM[1,8]", "[service][st01]") {
 	CHECK(response.readEnumerated(1) == Message::TC); // packet type
 	CHECK(response.readBits(1) == 0); // secondary header flag
 	CHECK(response.readEnumerated(11) == 3); // application process ID
-	CHECK(response.readEnumerated(2) == 3); // sequence flags
+	CHECK(response.readEnumerated(2) == ECSS_SEQUENCE_FLAGS); // sequence flags
 	CHECK(response.readBits(14) == 0); // packet sequence count
 	CHECK(response.readEnum16() == ErrorHandler::UnknownCompletionExecutionError); // error code
 }
@@ -117,7 +217,7 @@ TEST_CASE("TM[1,10]", "[service][st01]") {
 	CHECK(response.readEnumerated(1) == Message::TC); // packet type
 	CHECK(response.readBits(1) == 0); // secondary header flag
 	CHECK(response.readEnumerated(11) == 3); // application process ID
-	CHECK(response.readEnumerated(2) == 3); // sequence flags
+	CHECK(response.readEnumerated(2) == ECSS_SEQUENCE_FLAGS); // sequence flags
 	CHECK(response.readBits(14) == 0); // packet sequence count
 	CHECK(response.readEnum16() == ErrorHandler::UnknownRoutingError); // error code
 }
-- 
GitLab