From 146a0e3828c832b329ff29106bd35a2289df72bf Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 26 Jul 2022 14:10:24 +0200 Subject: [PATCH] created PSB mock --- unittests/mocks/CMakeLists.txt | 2 ++ unittests/mocks/PusServiceBaseMock.cpp | 3 +++ unittests/mocks/PusServiceBaseMock.h | 1 + .../mocks/PusVerificationReporterMock.cpp | 23 +++++++++++++++++++ unittests/mocks/PusVerificationReporterMock.h | 23 +++++++++++++++++++ unittests/tmtcservices/CMakeLists.txt | 1 + unittests/tmtcservices/testPsb.cpp | 8 +++++-- 7 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 unittests/mocks/PusVerificationReporterMock.cpp create mode 100644 unittests/mocks/PusVerificationReporterMock.h diff --git a/unittests/mocks/CMakeLists.txt b/unittests/mocks/CMakeLists.txt index 7bc8fd30..00732c80 100644 --- a/unittests/mocks/CMakeLists.txt +++ b/unittests/mocks/CMakeLists.txt @@ -7,4 +7,6 @@ target_sources(${FSFW_TEST_TGT} PRIVATE MessageQueueMock.cpp InternalErrorReporterMock.cpp LocalPoolOwnerBase.cpp + PusVerificationReporterMock.cpp + PusServiceBaseMock.cpp ) diff --git a/unittests/mocks/PusServiceBaseMock.cpp b/unittests/mocks/PusServiceBaseMock.cpp index 0303364f..4eb51fa4 100644 --- a/unittests/mocks/PusServiceBaseMock.cpp +++ b/unittests/mocks/PusServiceBaseMock.cpp @@ -1,5 +1,8 @@ #include "PusServiceBaseMock.h" +PsbMock::PsbMock(uint8_t service, uint16_t apid, VerificationReporterIF& verifyReporter) + : PusServiceBase(0, service, apid, &verifyReporter) {} + ReturnValue_t PsbMock::handleRequest(uint8_t subservice) { handleRequestCallCnt++; subserviceQueue.push(subservice); diff --git a/unittests/mocks/PusServiceBaseMock.h b/unittests/mocks/PusServiceBaseMock.h index f441c2a8..9d1bac5d 100644 --- a/unittests/mocks/PusServiceBaseMock.h +++ b/unittests/mocks/PusServiceBaseMock.h @@ -7,6 +7,7 @@ class PsbMock : public PusServiceBase { public: + PsbMock(uint8_t service, uint16_t apid, VerificationReporterIF& verifyReporter); unsigned int handleRequestCallCnt = 0; std::queue subserviceQueue; unsigned int performServiceCallCnt = 0; diff --git a/unittests/mocks/PusVerificationReporterMock.cpp b/unittests/mocks/PusVerificationReporterMock.cpp new file mode 100644 index 00000000..fdc61aca --- /dev/null +++ b/unittests/mocks/PusVerificationReporterMock.cpp @@ -0,0 +1,23 @@ +#include "PusVerificationReporterMock.h" + +size_t PusVerificationReporterMock::successCallCount() const { return successParams.size(); } +size_t PusVerificationReporterMock::failCallCount() const { return failParams.size(); } + +VerifSuccessParams& PusVerificationReporterMock::getNextSuccessCallParams() { + return successParams.front(); +} + +void PusVerificationReporterMock::popNextFailParams() { + if (not failParams.empty()) { + failParams.pop(); + } +} + +VerifFailureParams& PusVerificationReporterMock::getNextFailCallParams() { + return failParams.front(); +} +void PusVerificationReporterMock::popNextSuccessParams() { + if (not successParams.empty()) { + successParams.pop(); + } +} diff --git a/unittests/mocks/PusVerificationReporterMock.h b/unittests/mocks/PusVerificationReporterMock.h new file mode 100644 index 00000000..87595637 --- /dev/null +++ b/unittests/mocks/PusVerificationReporterMock.h @@ -0,0 +1,23 @@ +#ifndef FSFW_TESTS_PUSVERIFICATIONREPORTERMOCK_H +#define FSFW_TESTS_PUSVERIFICATIONREPORTERMOCK_H + +#include + +#include "fsfw/tmtcservices/VerificationReporterIF.h" + +class PusVerificationReporterMock : public VerificationReporterIF { + public: + std::queue successParams; + std::queue failParams; + + [[nodiscard]] size_t successCallCount() const; + VerifSuccessParams& getNextSuccessCallParams(); + void popNextSuccessParams(); + [[nodiscard]] size_t failCallCount() const; + VerifFailureParams& getNextFailCallParams(); + void popNextFailParams(); + + ReturnValue_t sendSuccessReport(VerifSuccessParams params) override { return 0; } + ReturnValue_t sendFailureReport(VerifFailureParams params) override { return 0; } +}; +#endif // FSFW_TESTS_PUSVERIFICATIONREPORTERMOCK_H diff --git a/unittests/tmtcservices/CMakeLists.txt b/unittests/tmtcservices/CMakeLists.txt index 4cb2dc05..9e60ced1 100644 --- a/unittests/tmtcservices/CMakeLists.txt +++ b/unittests/tmtcservices/CMakeLists.txt @@ -2,4 +2,5 @@ target_sources(${FSFW_TEST_TGT} PRIVATE testStoreHelper.cpp testSendHelper.cpp testStoreAndSendHelper.cpp + testPsb.cpp ) diff --git a/unittests/tmtcservices/testPsb.cpp b/unittests/tmtcservices/testPsb.cpp index 43e03b48..ea4aee61 100644 --- a/unittests/tmtcservices/testPsb.cpp +++ b/unittests/tmtcservices/testPsb.cpp @@ -1,5 +1,9 @@ #include -#include "fsfw/tmtcservices/PusServiceBase.h" +#include "mocks/PusServiceBaseMock.h" +#include "mocks/PusVerificationReporterMock.h" -TEST_CASE("Pus Service Base", "[pus-service-base]") { auto psb = PusServiceBase() } \ No newline at end of file +TEST_CASE("Pus Service Base", "[pus-service-base]") { + auto verificationReporter = PusVerificationReporterMock(); + auto psb = PsbMock(17, 0x02, verificationReporter); +} \ No newline at end of file