TetraIF migration and Unittest Implementation for it
Entire-Checkpoint: 14d1fef0cf36
This commit is contained in:
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);
|
||||
}
|
||||
Reference in new issue
Block a user