/** * @file test_bld_enums.cpp * @brief Verhaltenstests für die generierten Buildings-Enumerationen * * Diese Tests prüfen den von rtiddsgen aus bld_enums.idl generierten Header * (Lts/Proxies/Buildings/bld_enums.hpp) aus dem Build-Tree. Die frühere * CONFIGURE_FILE-Stub-Kopie (BuildingType/BuildingStatus/BuildingInfo) wurde * entfernt, da sie bei jedem CMake-Reconfigure die echten generierten * Enumerationen überschrieben hat. */ #include "Buildings/bld_enums.hpp" #include #include /** * @test EffectTypeEnum muss mit den Werten aus bld_enums.idl generiert werden. */ TEST(bld_enums_Generated, EffectTypeEnumValues) { static_assert(std::is_enum<::Buildings::EffectTypeEnum>::value, "EffectTypeEnum muss aus bld_enums.hpp vorliegen"); static_assert(static_cast(::Buildings::EffectTypeEnum::Undefined) == 0, "EffectTypeEnum::Undefined muss 0 sein"); static_assert(static_cast(::Buildings::EffectTypeEnum::Relay) == 1, "EffectTypeEnum::Relay muss 1 sein"); static_assert(static_cast(::Buildings::EffectTypeEnum::BackgroundSound) == 2, "EffectTypeEnum::BackgroundSound muss 2 sein"); static_assert(static_cast(::Buildings::EffectTypeEnum::BsmFlash) == 3, "EffectTypeEnum::BsmFlash muss 3 sein"); EXPECT_TRUE(true); } /** * @test StateSetRelay muss mit den Werten aus bld_enums.idl generiert werden. */ TEST(bld_enums_Generated, StateSetRelayValues) { static_assert(std::is_enum<::Buildings::StateSetRelay>::value, "StateSetRelay muss aus bld_enums.hpp vorliegen"); static_assert(static_cast(::Buildings::StateSetRelay::SwitchOff) == 0, "StateSetRelay::SwitchOff muss 0 sein"); static_assert(static_cast(::Buildings::StateSetRelay::SwitchOn) == 1, "StateSetRelay::SwitchOn muss 1 sein"); static_assert(static_cast(::Buildings::StateSetRelay::Pulse) == 2, "StateSetRelay::Pulse muss 2 sein"); static_assert(static_cast(::Buildings::StateSetRelay::GetState) == 3, "StateSetRelay::GetState muss 3 sein"); EXPECT_TRUE(true); } /** * @test Include-Guard: mehrfaches Einbinden des generierten Headers ist erlaubt. */ TEST(bld_enums_Generated, MultipleIncludeGuard) { // Including the header multiple times should not cause errors #include "Buildings/bld_enums.hpp" EXPECT_TRUE(true); }