From 742431c36c9b9cf7f61a5b3f7d60d7f94d1c8588 Mon Sep 17 00:00:00 2001 From: Dimitrios Stoupis <dimitris.apple@gmail.com> Date: Sun, 17 Mar 2019 07:54:12 +0000 Subject: [PATCH] Defined most of the test cases --- test/Services/TimeBasedSchedulingService.cpp | 182 ++++++++++++++----- 1 file changed, 139 insertions(+), 43 deletions(-) diff --git a/test/Services/TimeBasedSchedulingService.cpp b/test/Services/TimeBasedSchedulingService.cpp index af12cf03..1d553bf7 100644 --- a/test/Services/TimeBasedSchedulingService.cpp +++ b/test/Services/TimeBasedSchedulingService.cpp @@ -6,23 +6,28 @@ namespace unit_test { struct Tester { - TimeBasedSchedulingService gen; + static TimeBasedSchedulingService gen; - static bool executionFunctionStatus(TimeBasedSchedulingService tmService) { + static bool executionFunctionStatus(TimeBasedSchedulingService &tmService) { return tmService.executionFunctionStatus; } - static uint8_t currentNumberOfActivities(TimeBasedSchedulingService tmService) { - return tmService.currentNumberOfActivities; + static uint8_t *currentNumberOfActivities(TimeBasedSchedulingService &tmService) { + return &tmService.currentNumberOfActivities; } - static auto scheduledActivities(TimeBasedSchedulingService tmService) { - return tmService.scheduledActivities; + static auto scheduledActivities(TimeBasedSchedulingService &tmService) { + return &tmService.scheduledActivities; } }; } +Message testMessage1, testMessage2, testMessage3, testMessage4; +TimeBasedSchedulingService timeSchedulingService; +MessageParser msgParser; + +/* TEST_CASE("TC[11,1]", "[service][st11]") { Message receivedMessage; receivedMessage.serviceType = 11; @@ -42,18 +47,36 @@ TEST_CASE("TC[11,2]", "[service][st11]") { timeSchedulingService.disableScheduleExecution(receivedMessage); CHECK(not unit_test::Tester::executionFunctionStatus(timeSchedulingService)); } +*/ + +TEST_CASE("ST[11] Generic Test", "[service][st11]") { + auto scheduledActivities = unit_test::Tester::scheduledActivities(timeSchedulingService); + + SECTION("TC[11,4] Activity Insertion") { + // Initialize the test messages + testMessage1.serviceType = 6; + testMessage1.messageType = 5; + testMessage1.packetType = Message::TC; + testMessage1.applicationId = 4; + + testMessage2.serviceType = 4; + testMessage2.messageType = 5; + testMessage2.packetType = Message::TC; + testMessage2.applicationId = 6; + + testMessage3.serviceType = 3; + testMessage3.messageType = 2; + testMessage3.packetType = Message::TC; + testMessage3.applicationId = 7; -TEST_CASE("ST[11] Integrated test", "[service][st11]") { -#define NUMBER_OF_INSTRUCTIONS 4 // The number of total instructions in the packet + testMessage4.serviceType = 12; + testMessage4.messageType = 23; + testMessage4.packetType = Message::TC; + testMessage4.applicationId = 5; - Message testMessage1(6, 5, Message::TC, 4), testMessage2(4, 5, Message::TC, 6), - testMessage3(3, 2, Message::TC, 7), testMessage4(12, 23, Message::TC, 5); - MessageParser msgParser; - TimeBasedSchedulingService timeBasedSchedulingService; - SECTION("TC[11,4] Activity insertion") { Message receivedMessage(11, 4, Message::TC, 1); - receivedMessage.appendUint16(NUMBER_OF_INSTRUCTIONS); + receivedMessage.appendUint16(4); // Total number of requests // Test activity 1 testMessage1.appendUint16(4253); // Append dummy data @@ -76,60 +99,133 @@ TEST_CASE("ST[11] Integrated test", "[service][st11]") { receivedMessage.appendString(msgParser.convertTCToStr(testMessage4)); // Insert activities in the schedule. They have to be inserted sorted - timeBasedSchedulingService.insertActivities(receivedMessage); - - auto scheduledActivities = unit_test::Tester::scheduledActivities( - timeBasedSchedulingService); - CHECK(scheduledActivities.size() == 4); - REQUIRE(scheduledActivities.at(0).requestReleaseTime == 1556435); - REQUIRE(scheduledActivities.at(1).requestReleaseTime == 1726435); - REQUIRE(scheduledActivities.at(2).requestReleaseTime == 1957232); - REQUIRE(scheduledActivities.at(3).requestReleaseTime == 17248435); - REQUIRE(scheduledActivities.at(0).request == testMessage1); - REQUIRE(scheduledActivities.at(1).request == testMessage3); - REQUIRE(scheduledActivities.at(2).request == testMessage2); - REQUIRE(scheduledActivities.at(3).request == testMessage4); + timeSchedulingService.insertActivities(receivedMessage); + + CHECK(unit_test::Tester::scheduledActivities(timeSchedulingService)->size() == 4); + + REQUIRE(scheduledActivities->at(0).requestReleaseTime == 1556435); + REQUIRE(scheduledActivities->at(1).requestReleaseTime == 1726435); + REQUIRE(scheduledActivities->at(2).requestReleaseTime == 1957232); + REQUIRE(scheduledActivities->at(3).requestReleaseTime == 17248435); + REQUIRE(scheduledActivities->at(0).request == testMessage1); + REQUIRE(scheduledActivities->at(1).request == testMessage3); + REQUIRE(scheduledActivities->at(2).request == testMessage2); + REQUIRE(scheduledActivities->at(3).request == testMessage4); } - SECTION("TC[11,5] Activity deletion by ID") { - Message receivedMessage(11, 5, Message::TC, 1); - receivedMessage.appendUint16(NUMBER_OF_INSTRUCTIONS); + SECTION("TC[11,15] Time shift all scheduled activities ", "[positive_shift]") { + const int32_t timeShift = 6789; - //timeBasedSchedulingService.detailReporActivitiesByID(); + Message receivedMessage(11, 15, Message::TC, 1); + receivedMessage.appendSint32(timeShift); + + timeSchedulingService.timeShiftAllActivities(receivedMessage); + CHECK(scheduledActivities->size() == 4); + REQUIRE(scheduledActivities->at(0).requestReleaseTime == 1556435 + timeShift); + REQUIRE(scheduledActivities->at(1).requestReleaseTime == 1726435 + timeShift); + REQUIRE(scheduledActivities->at(2).requestReleaseTime == 1957232 + timeShift); + REQUIRE(scheduledActivities->at(3).requestReleaseTime == 17248435 + timeShift); + } + + SECTION("TC[11,15] Time shift all scheduled activities ", "[negative_shift]") { + const int32_t timeShift = -6789; + + Message receivedMessage(11, 15, Message::TC, 1); + receivedMessage.appendSint32(timeShift); + + timeSchedulingService.timeShiftAllActivities(receivedMessage); + CHECK(scheduledActivities->size() == 4); + REQUIRE(scheduledActivities->at(0).requestReleaseTime == 1556435); + REQUIRE(scheduledActivities->at(1).requestReleaseTime == 1726435); + REQUIRE(scheduledActivities->at(2).requestReleaseTime == 1957232); + REQUIRE(scheduledActivities->at(3).requestReleaseTime == 17248435); } SECTION("TC[11,7] Time shift activities by ID") { Message receivedMessage(11, 7, Message::TC, 1); - receivedMessage.appendUint16(NUMBER_OF_INSTRUCTIONS); + receivedMessage.appendUint16(4); - //timeBasedSchedulingService.detailReporActivitiesByID(); } SECTION("TC[11,9] Detail report scheduled activities by ID") { Message receivedMessage(11, 9, Message::TC, 1); - receivedMessage.appendUint16(NUMBER_OF_INSTRUCTIONS); + receivedMessage.appendUint16(4); - //timeBasedSchedulingService.detailReporActivitiesByID(); } SECTION("TC[11,12] Summary report scheduled activities by ID") { Message receivedMessage(11, 12, Message::TC, 1); - receivedMessage.appendUint16(NUMBER_OF_INSTRUCTIONS); + receivedMessage.appendUint16(4); - //timeBasedSchedulingService.detailReporActivitiesByID(); } - SECTION("TC[11,15] Time shift all scheduled activities") { - Message receivedMessage(11, 15, Message::TC, 1); - receivedMessage.appendUint16(NUMBER_OF_INSTRUCTIONS); + // todo: Implement the the application ID before proceeding with the test + SECTION("TC[11,5] Activity deletion by ID") { + Message receivedMessage(11, 5, Message::TC, 1); + receivedMessage.appendUint16(1); // Just one instruction to delete an activity + receivedMessage.appendUint8(0); // Source ID is not implemented + receivedMessage.appendUint16(testMessage2.applicationId); + receivedMessage.appendUint16(testMessage2.packetSequenceCount); - //timeBasedSchedulingService.detailReporActivitiesByID(); + timeSchedulingService.deleteActivitiesByID(receivedMessage); + CHECK(scheduledActivities->size() == 4); } SECTION("TC[11,16] Detail report all scheduled activities") { Message receivedMessage(11, 16, Message::TC, 1); - receivedMessage.appendUint16(NUMBER_OF_INSTRUCTIONS); + receivedMessage.appendUint16(4); - //timeBasedSchedulingService.detailReporActivitiesByID(); } } + + +/* +TEST_CASE("TC[11,15] Time shift all scheduled activities", "[service][st11]") { + auto scheduledActivities = unit_test::Tester::scheduledActivities(timeSchedulingService); + + Message receivedMessage(11, 15, Message::TC, 1); + receivedMessage.appendUint32(6789); + + //timeSchedulingService.timeShiftAllActivities(receivedMessage); + CHECK(scheduledActivities->size() == 4); + REQUIRE(scheduledActivities->at(0).requestReleaseTime == 1556435); +}*/ +/* +TEST_CASE("TC[11,7] Time shift activities by ID", "[service][st11]") { + Message receivedMessage(11, 7, Message::TC, 1); + receivedMessage.appendUint16(4); + +//timeBasedSchedulingService.detailReporActivitiesByID(); +} + +TEST_CASE("TC[11,9] Detail report scheduled activities by ID", "[service][st11]") { + Message receivedMessage(11, 9, Message::TC, 1); + receivedMessage.appendUint16(4); + +//timeBasedSchedulingService.detailReporActivitiesByID(); +} + +TEST_CASE("TC[11,12] Summary report scheduled activities by ID", "[service][st11]") { + Message receivedMessage(11, 12, Message::TC, 1); + receivedMessage.appendUint16(4); + +//timeBasedSchedulingService.detailReporActivitiesByID(); +} + +TEST_CASE("TC[11,159] Time shift all scheduled activities", "[service][st11]") { + auto scheduledActivities = unit_test::Tester::scheduledActivities(timeSchedulingService); + + Message receivedMessage(11, 15, Message::TC, 1); + receivedMessage.appendUint32(6789); + + //timeSchedulingService.timeShiftAllActivities(receivedMessage); + CHECK(scheduledActivities->size() == 4); + REQUIRE(scheduledActivities->at(0).requestReleaseTime == 1556435); +} + +TEST_CASE("TC[11,16] Detail report all scheduled activities", "[service][st11]") { + Message receivedMessage(11, 16, Message::TC, 1); + receivedMessage.appendUint16(4); + +//timeBasedSchedulingService.detailReporActivitiesByID(); +}*/ -- GitLab