start adding message parser unittests
This commit is contained in:
@ -1,6 +1,10 @@
|
||||
#include <catch2/catch_test_macros.hpp>
|
||||
|
||||
#include "fsfw/cfdp/VarLenFields.h"
|
||||
#include "fsfw/cfdp/handler/ReservedMessageParser.h"
|
||||
#include "fsfw/cfdp/tlv/Lv.h"
|
||||
#include "fsfw/cfdp/tlv/ReservedMessageCreator.h"
|
||||
#include "fsfw/cfdp/tlv/StringLv.h"
|
||||
#include "mocks/MessageQueueMock.h"
|
||||
#include "mocks/StorageManagerMock.h"
|
||||
|
||||
@ -8,11 +12,30 @@ TEST_CASE("Reserved Message Parser", "[cfdp]") {
|
||||
using namespace cfdp;
|
||||
using namespace returnvalue;
|
||||
|
||||
std::string srcFileName = "hello.txt";
|
||||
std::string destFileName = "hello2.txt";
|
||||
MessageQueueId_t destQueueId = 2;
|
||||
MessageQueueMock msgQueue(destQueueId);
|
||||
LocalPool::LocalPoolConfig storeCfg = {{10, 32}, {10, 64}, {10, 128}, {10, 1024}};
|
||||
StorageManagerMock ipcStore(0, storeCfg);
|
||||
ReservedMessageParser parser(ipcStore, msgQueue, destQueueId);
|
||||
std::array<uint8_t, 128> buffer{};
|
||||
uint8_t msgBuf[32]{};
|
||||
EntityId entityId(cfdp::WidthInBytes::ONE_BYTE, 5);
|
||||
uint8_t* msgBufPtr = msgBuf;
|
||||
size_t serLen = 0;
|
||||
cfdp::StringLv srcName(srcFileName);
|
||||
cfdp::StringLv destName(destFileName);
|
||||
CHECK(entityId.serializeAsLv(&msgBufPtr, &serLen, sizeof(msgBuf)) == OK);
|
||||
CHECK(srcName.serialize(&msgBufPtr, &serLen, sizeof(msgBuf), SerializeIF::Endianness::NETWORK) ==
|
||||
OK);
|
||||
CHECK(destName.serialize(&msgBufPtr, &serLen, sizeof(msgBuf), SerializeIF::Endianness::NETWORK) ==
|
||||
OK);
|
||||
ReservedMessageCreator creator(static_cast<uint8_t>(ProxyOpMessageType::PUT_REQUEST), msgBuf,
|
||||
serLen);
|
||||
serLen = 0;
|
||||
ReturnValue_t result = creator.serializeBe(buffer.data(), serLen, buffer.size());
|
||||
CHECK(result == returnvalue::OK);
|
||||
|
||||
// parser.parse()
|
||||
ReservedMessageParser parser(ipcStore, msgQueue, destQueueId);
|
||||
CHECK(parser.parse(buffer.data(), buffer.max_size()) == OK);
|
||||
}
|
||||
|
Reference in New Issue
Block a user