TetraIF migration and Unittest Implementation for it

Entire-Checkpoint: 14d1fef0cf36
This commit is contained in:
berrux-dev committed 2026-09-12 13:54:34 +02:00
1 parent a86f9b5bac
commit ba212f9dce
78 files changed
+1611 -640

No files matched your search

@@ -0,0 +1,94 @@
/**
* @file PrtCnvMemberTest.cpp
* @brief Unit tests for PrtCnv::PrtCnvMember.
*
* Covers the public state carried per member and the fragmented-telegram
* bookkeeping (collecting fragments, reporting the telegram id, clearing).
*/
#include <gtest/gtest.h>
#include <QtCore/QByteArray>
#include "PrtCnvMember.hpp"
#include <CoPrtCnv/CoPrtCnvRadioTelegram.hpp>
#include <CoPrtCnv/tetra_telegram_ids.h>
using PrtCnv::PrtCnvMember;
using N_CoPrtCnv::CoPrtCnvRadioTelegram;
TEST(PrtCnvMemberTest, ConstructorStoresIdAndIssi)
{
const PrtCnvMember member(17, 4711);
EXPECT_EQ(member.m_Id, 17);
EXPECT_EQ(member.m_ISSI, 4711);
EXPECT_EQ(member.m_ClaimCount, 0);
EXPECT_EQ(member.m_loggedInExerciseId, 0);
EXPECT_FALSE(member.m_Licensed);
}
TEST(PrtCnvMemberTest, PublicStateIsWritable)
{
PrtCnvMember member(1, 2);
member.m_ClaimCount = 3;
member.m_loggedInExerciseId = 42;
member.m_Licensed = true;
EXPECT_EQ(member.m_ClaimCount, 3);
EXPECT_EQ(member.m_loggedInExerciseId, 42);
EXPECT_TRUE(member.m_Licensed);
}
TEST(PrtCnvMemberTest, FragmentedListStartsEmpty)
{
const PrtCnvMember member(1, 2);
EXPECT_TRUE(member.isFragmentedListEmpty());
EXPECT_TRUE(member.getUnfragmentedTelegramData().isEmpty());
}
TEST(PrtCnvMemberTest, AddingAFragmentFillsTheList)
{
PrtCnvMember member(1, 2);
const CoPrtCnvRadioTelegram fragment(GEF_GEFECHTSFELDTELEGRAMM, 8, 0);
member.addFragmentedTelegram(fragment);
EXPECT_FALSE(member.isFragmentedListEmpty());
}
TEST(PrtCnvMemberTest, ClearFragmentedListEmptiesTheList)
{
PrtCnvMember member(1, 2);
const CoPrtCnvRadioTelegram fragment(GEF_GEFECHTSFELDTELEGRAMM, 8, 0);
member.addFragmentedTelegram(fragment);
ASSERT_FALSE(member.isFragmentedListEmpty());
member.clearFragmentedList();
EXPECT_TRUE(member.isFragmentedListEmpty());
}
TEST(PrtCnvMemberTest, ClearFragmentedListIsIdempotent)
{
PrtCnvMember member(1, 2);
member.clearFragmentedList();
member.clearFragmentedList();
EXPECT_TRUE(member.isFragmentedListEmpty());
}
TEST(PrtCnvMemberTest, TelegramIdFallsBackWhenNoFirstFragmentIsPresent)
{
PrtCnvMember member(1, 2);
// A telegram built from the plain telegram-id constructor is not fragmented,
// so no entry qualifies as the first fragment of a fragmented telegram.
const CoPrtCnvRadioTelegram fragment(GEF_GEFECHTSFELDTELEGRAMM, 8, 0);
member.addFragmentedTelegram(fragment);
EXPECT_EQ(member.getFragmentedTelegramId(), GEF_BESTAETIGUNG);
}