#include #include #include "Entity.h" #include "GameDependencies.h" #include "dCommonVars.h" #include "eReplicaComponentType.h" class EntityTests : public GameDependenciesTest { protected: std::unique_ptr entity; virtual void SetUp() { entity = std::move(std::make_unique(LWOOBJID_EMPTY, EntityInfo())); this->SetUpDependencies(); } virtual void TearDown() { this->TearDownDependencies(); } void RunWhitelistTest(const int32_t componentIndex, std::vector& whitelist) { entity->SetVar(u"componentWhitelist", componentIndex); entity->ApplyComponentWhitelist(whitelist); const auto whitelists = Entity::GetComponentWhitelists(); for (const auto& component : whitelists.at(componentIndex)) { EXPECT_FALSE(std::find(whitelist.begin(), whitelist.end(), component) != whitelist.end()); } } }; TEST_F(EntityTests, WhitelistTest) { const auto whitelists = Entity::GetComponentWhitelists(); std::vector whitelist = { eReplicaComponentType::CONTROLLABLE_PHYSICS, eReplicaComponentType::SIMPLE_PHYSICS, eReplicaComponentType::MODEL_BEHAVIOR, eReplicaComponentType::SPAWN, eReplicaComponentType::RENDER, eReplicaComponentType::ITEM, eReplicaComponentType::BLUEPRINT, eReplicaComponentType::PET, eReplicaComponentType::SKILL, eReplicaComponentType::DESTROYABLE, eReplicaComponentType::CONTROLLABLE_PHYSICS, eReplicaComponentType::SIMPLE_PHYSICS, eReplicaComponentType::MODEL_BEHAVIOR, eReplicaComponentType::SPAWN, eReplicaComponentType::RENDER, eReplicaComponentType::ITEM, eReplicaComponentType::BLUEPRINT, eReplicaComponentType::PET, eReplicaComponentType::SKILL, eReplicaComponentType::DESTROYABLE, }; RunWhitelistTest(0, whitelist); RunWhitelistTest(1, whitelist); RunWhitelistTest(2, whitelist); RunWhitelistTest(3, whitelist); RunWhitelistTest(4, whitelist); }