diff --git a/tests/dGameTests/GameDependencies.h b/tests/dGameTests/GameDependencies.h index 9f8dbb2b..eb0d054e 100644 --- a/tests/dGameTests/GameDependencies.h +++ b/tests/dGameTests/GameDependencies.h @@ -9,6 +9,7 @@ #include "EntityManager.h" #include "dConfig.h" #include "dZoneManager.h" +#include "../../dChatFilter/dChatFilter.h" #include "GameDatabase/TestSQL/TestSQLDatabase.h" #include "Database.h" #include @@ -40,6 +41,9 @@ protected: Game::entityManager = new EntityManager(); Game::zoneManager = new dZoneManager(); Game::zoneManager->LoadZone(LWOZONEID(1, 0, 0)); + // Initialize a chat filter for tests. Use dontGenerateDCF=true to avoid + // attempting to generate DCF files during unit tests. + Game::chatFilter = new dChatFilter("", true); Database::_setDatabase(new TestSQLDatabase()); // this new is managed by the Database // Create a CDClientManager instance and load from defaults @@ -50,6 +54,8 @@ protected: if (Game::server) delete Game::server; if (Game::entityManager) delete Game::entityManager; if (Game::zoneManager) delete Game::zoneManager; + if (Game::chatFilter) delete Game::chatFilter; + Game::chatFilter = nullptr; if (Game::logger) { Game::logger->Flush(); delete Game::logger; diff --git a/tests/dGameTests/dComponentsTests/BaseCombatAIComponentTests.cpp b/tests/dGameTests/dComponentsTests/BaseCombatAIComponentTests.cpp index 8ab3cda0..c27bec08 100644 --- a/tests/dGameTests/dComponentsTests/BaseCombatAIComponentTests.cpp +++ b/tests/dGameTests/dComponentsTests/BaseCombatAIComponentTests.cpp @@ -6,7 +6,7 @@ #include "Entity.h" #include "eReplicaComponentType.h" -class BaseCombatAITest : public GameDependenciesTest { +class BaseCombatAIComponentTest : public GameDependenciesTest { protected: Entity* baseEntity; BaseCombatAIComponent* combatAIComponent; @@ -27,7 +27,7 @@ protected: /** * Test serialization of BaseCombatAIComponent in initial update with default spawn state */ -TEST_F(BaseCombatAITest, BaseCombatAIComponentSerializeInitialUpdateTest) { +TEST_F(BaseCombatAIComponentTest, SerializeInitialUpdateTest) { bitStream.Reset(); // Component should be dirty by default and in spawn state @@ -50,7 +50,7 @@ TEST_F(BaseCombatAITest, BaseCombatAIComponentSerializeInitialUpdateTest) { /** * Test serialization of BaseCombatAIComponent in regular update with clean state */ -TEST_F(BaseCombatAITest, BaseCombatAIComponentSerializeRegularUpdateTest) { +TEST_F(BaseCombatAIComponentTest, SerializeRegularUpdateTest) { bitStream.Reset(); // First serialize to clear dirty flag @@ -68,7 +68,7 @@ TEST_F(BaseCombatAITest, BaseCombatAIComponentSerializeRegularUpdateTest) { /** * Test serialization when target changes during regular updates */ -TEST_F(BaseCombatAITest, BaseCombatAIComponentSerializeTargetChangeTest) { +TEST_F(BaseCombatAIComponentTest, SerializeTargetChangeTest) { bitStream.Reset(); // Initial state is spawn, serialize once to clear dirty flag @@ -97,7 +97,7 @@ TEST_F(BaseCombatAITest, BaseCombatAIComponentSerializeTargetChangeTest) { /** * Test serialization with target management and getters/setters */ -TEST_F(BaseCombatAITest, BaseCombatAIComponentSerializeWithTargetTest) { +TEST_F(BaseCombatAIComponentTest, SerializeWithTargetTest) { bitStream.Reset(); // Set a target and change state manually @@ -123,4 +123,4 @@ TEST_F(BaseCombatAITest, BaseCombatAIComponentSerializeWithTargetTest) { // Verify component state EXPECT_EQ(combatAIComponent->GetTarget(), testTarget); EXPECT_EQ(combatAIComponent->GetState(), AiState::tether); -} \ No newline at end of file +} diff --git a/tests/dGameTests/dComponentsTests/BouncerComponentTests.cpp b/tests/dGameTests/dComponentsTests/BouncerComponentTests.cpp index bbaf22c3..fb15306d 100644 --- a/tests/dGameTests/dComponentsTests/BouncerComponentTests.cpp +++ b/tests/dGameTests/dComponentsTests/BouncerComponentTests.cpp @@ -28,7 +28,7 @@ protected: /** * Test serialization of a BouncerComponent with pet enabled false */ -TEST_F(BouncerTest, BouncerComponentSerializePetDisabledTest) { +TEST_F(BouncerTest, SerializePetDisabledTest) { bitStream.Reset(); // Default state should have pet disabled @@ -49,7 +49,7 @@ TEST_F(BouncerTest, BouncerComponentSerializePetDisabledTest) { /** * Test serialization of a BouncerComponent with pet enabled true */ -TEST_F(BouncerTest, BouncerComponentSerializePetEnabledTest) { +TEST_F(BouncerTest, SerializePetEnabledTest) { bitStream.Reset(); // Enable pet and set bouncer state @@ -72,7 +72,7 @@ TEST_F(BouncerTest, BouncerComponentSerializePetEnabledTest) { /** * Test serialization of a BouncerComponent with pet enabled but bouncer disabled */ -TEST_F(BouncerTest, BouncerComponentSerializePetEnabledBouncerDisabledTest) { +TEST_F(BouncerTest, SerializePetEnabledBouncerDisabledTest) { bitStream.Reset(); // Enable pet but disable bouncer @@ -95,7 +95,7 @@ TEST_F(BouncerTest, BouncerComponentSerializePetEnabledBouncerDisabledTest) { /** * Test serialization during initial update */ -TEST_F(BouncerTest, BouncerComponentSerializeInitialUpdateTest) { +TEST_F(BouncerTest, SerializeInitialUpdateTest) { bitStream.Reset(); // Enable pet and set bouncer state @@ -113,4 +113,4 @@ TEST_F(BouncerTest, BouncerComponentSerializeInitialUpdateTest) { bool petBouncerEnabled; bitStream.Read(petBouncerEnabled); EXPECT_EQ(petBouncerEnabled, true); -} \ No newline at end of file +} diff --git a/tests/dGameTests/dComponentsTests/BuffComponentTests.cpp b/tests/dGameTests/dComponentsTests/BuffComponentTests.cpp index fc6d568b..b6976c55 100644 --- a/tests/dGameTests/dComponentsTests/BuffComponentTests.cpp +++ b/tests/dGameTests/dComponentsTests/BuffComponentTests.cpp @@ -28,7 +28,7 @@ protected: /** * Test BuffComponent serialization with no buffs applied */ -TEST_F(BuffComponentTest, BuffComponentSerializeNoBuffsTest) { +TEST_F(BuffComponentTest, SerializeNoBuffsTest) { bitStream.Reset(); // With no buffs, should serialize empty state @@ -47,7 +47,7 @@ TEST_F(BuffComponentTest, BuffComponentSerializeNoBuffsTest) { /** * Test BuffComponent serialization with single buff applied */ -TEST_F(BuffComponentTest, BuffComponentSerializeSingleBuffTest) { +TEST_F(BuffComponentTest, SerializeSingleBuffTest) { bitStream.Reset(); // Apply a buff with specific properties @@ -134,7 +134,7 @@ TEST_F(BuffComponentTest, BuffComponentSerializeSingleBuffTest) { /** * Test BuffComponent serialization with multiple buffs */ -TEST_F(BuffComponentTest, BuffComponentSerializeMultipleBuffsTest) { +TEST_F(BuffComponentTest, SerializeMultipleBuffsTest) { bitStream.Reset(); // Apply multiple buffs @@ -218,7 +218,7 @@ TEST_F(BuffComponentTest, BuffComponentSerializeMultipleBuffsTest) { /** * Test BuffComponent regular update serialization (should not serialize) */ -TEST_F(BuffComponentTest, BuffComponentSerializeRegularUpdateTest) { +TEST_F(BuffComponentTest, SerializeRegularUpdateTest) { bitStream.Reset(); // Apply a buff first @@ -229,4 +229,4 @@ TEST_F(BuffComponentTest, BuffComponentSerializeRegularUpdateTest) { // BitStream should be empty for regular updates EXPECT_EQ(bitStream.GetNumberOfBitsUsed(), 0); -} \ No newline at end of file +} diff --git a/tests/dGameTests/dComponentsTests/BuildBorderComponentTests.cpp b/tests/dGameTests/dComponentsTests/BuildBorderComponentTests.cpp deleted file mode 100644 index 4b255a43..00000000 --- a/tests/dGameTests/dComponentsTests/BuildBorderComponentTests.cpp +++ /dev/null @@ -1,42 +0,0 @@ -#include - -#include "BuildBorderComponent.h" -#include "Entity.h" -#include "BitStream.h" -#include "GameDependencies.h" - -class BuildBorderComponentTest : public GameDependenciesTest { -protected: -}; - -/** - * Test BuildBorderComponent serialization for initial update - */ -TEST_F(BuildBorderComponentTest, SerializeInitialUpdate) { - Entity testEntity(15, info); - BuildBorderComponent buildBorderComponent(&testEntity); - - RakNet::BitStream bitStream; - buildBorderComponent.Serialize(bitStream, true); - - bitStream.ResetReadPointer(); - - // BuildBorderComponent doesn't override Serialize, so it writes nothing - EXPECT_EQ(bitStream.GetNumberOfBitsUsed(), 0); -} - -/** - * Test BuildBorderComponent serialization for regular update (should write nothing) - */ -TEST_F(BuildBorderComponentTest, SerializeRegularUpdate) { - Entity testEntity(15, info); - BuildBorderComponent buildBorderComponent(&testEntity); - - RakNet::BitStream bitStream; - buildBorderComponent.Serialize(bitStream, false); - - bitStream.ResetReadPointer(); - - // For regular updates, BuildBorderComponent writes nothing - EXPECT_EQ(bitStream.GetNumberOfBitsUsed(), 0); -} \ No newline at end of file diff --git a/tests/dGameTests/dComponentsTests/CMakeLists.txt b/tests/dGameTests/dComponentsTests/CMakeLists.txt index 1b4b1bad..19d1604c 100644 --- a/tests/dGameTests/dComponentsTests/CMakeLists.txt +++ b/tests/dGameTests/dComponentsTests/CMakeLists.txt @@ -1,11 +1,8 @@ set(DCOMPONENTS_TESTS "AchievementVendorComponentTests.cpp" - "ActivityComponentTests.cpp" "BaseCombatAIComponentTests.cpp" "BouncerComponentTests.cpp" "BuffComponentTests.cpp" - "BuildBorderComponentTests.cpp" - "CharacterComponentTests.cpp" "CollectibleComponentTests.cpp" "ControllablePhysicsComponentTests.cpp" "DestroyableComponentTests.cpp" @@ -14,7 +11,6 @@ set(DCOMPONENTS_TESTS "ItemComponentTests.cpp" "LevelProgressionComponentTests.cpp" "LUPExhibitComponentTests.cpp" - "MiniGameControlComponentTests.cpp" "ModelComponentTests.cpp" "MovingPlatformComponentTests.cpp" "PetComponentTests.cpp" @@ -22,12 +18,12 @@ set(DCOMPONENTS_TESTS "QuickBuildComponentTests.cpp" "RenderComponentTests.cpp" "SavingTests.cpp" + "ScriptedActivityComponentTests.cpp" "ScriptComponentTests.cpp" "SimplePhysicsComponentTests.cpp" "SkillComponentTests.cpp" "SoundTriggerComponentTests.cpp" "SwitchComponentTests.cpp" - "TriggerComponentTests.cpp" "VendorComponentTests.cpp" ) diff --git a/tests/dGameTests/dComponentsTests/CharacterComponentTests.cpp b/tests/dGameTests/dComponentsTests/CharacterComponentTests.cpp deleted file mode 100644 index cd26194d..00000000 --- a/tests/dGameTests/dComponentsTests/CharacterComponentTests.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#include - -#include "CharacterComponent.h" -#include "Entity.h" -#include "BitStream.h" -#include "GameDependencies.h" -#include "Character.h" -#include "User.h" -#include "eGameActivity.h" -#include "eGameMasterLevel.h" -#include "eLootSourceType.h" -#include "MessageType/Game.h" - -class CharacterComponentTest : public GameDependenciesTest { -protected: -}; - -TEST_F(CharacterComponentTest, SerializeInitialUpdate) { - // Create a simple mock character to avoid complex initialization - std::unique_ptr mockCharacter = std::make_unique(1, nullptr); - - Entity testEntity(15, info); - CharacterComponent characterComponent(&testEntity, mockCharacter.get(), UNASSIGNED_SYSTEM_ADDRESS); - - RakNet::BitStream bitStream; - - // This test may crash due to complex Character dependencies - // For now, we'll just verify the component can be created - EXPECT_NE(&characterComponent, nullptr); - // Note: CharacterComponent doesn't have GetComponentType method -} - -TEST_F(CharacterComponentTest, SerializeRegularUpdate) { - // Create a simple mock character to avoid complex initialization - std::unique_ptr mockCharacter = std::make_unique(1, nullptr); - - Entity testEntity(15, info); - CharacterComponent characterComponent(&testEntity, mockCharacter.get(), UNASSIGNED_SYSTEM_ADDRESS); - - RakNet::BitStream bitStream; - characterComponent.Serialize(bitStream, false); - - // For regular updates, CharacterComponent may write minimal or no data - // depending on dirty flags - EXPECT_GE(bitStream.GetNumberOfBitsUsed(), 0); -} \ No newline at end of file diff --git a/tests/dGameTests/dComponentsTests/CollectibleComponentTests.cpp b/tests/dGameTests/dComponentsTests/CollectibleComponentTests.cpp index 590ce0c4..e546eb94 100644 --- a/tests/dGameTests/dComponentsTests/CollectibleComponentTests.cpp +++ b/tests/dGameTests/dComponentsTests/CollectibleComponentTests.cpp @@ -6,7 +6,7 @@ #include "Entity.h" #include "eReplicaComponentType.h" -class CollectibleTest : public GameDependenciesTest { +class CollectibleComponentTest : public GameDependenciesTest { protected: Entity* baseEntity; CollectibleComponent* collectibleComponent; @@ -27,7 +27,7 @@ protected: /** * Test basic CollectibleComponent serialization */ -TEST_F(CollectibleTest, CollectibleComponentSerializeBasicTest) { +TEST_F(CollectibleComponentTest, SerializeBasicTest) { bitStream.Reset(); // Serialize the collectible component @@ -45,7 +45,7 @@ TEST_F(CollectibleTest, CollectibleComponentSerializeBasicTest) { /** * Test CollectibleComponent serialization with construction flag true */ -TEST_F(CollectibleTest, CollectibleComponentSerializeConstructionTest) { +TEST_F(CollectibleComponentTest, SerializeConstructionTest) { bitStream.Reset(); // Serialize with construction = true @@ -60,7 +60,7 @@ TEST_F(CollectibleTest, CollectibleComponentSerializeConstructionTest) { /** * Test CollectibleComponent serialization with construction flag false */ -TEST_F(CollectibleTest, CollectibleComponentSerializeRegularUpdateTest) { +TEST_F(CollectibleComponentTest, SerializeRegularUpdateTest) { bitStream.Reset(); // Serialize with construction = false @@ -75,7 +75,7 @@ TEST_F(CollectibleTest, CollectibleComponentSerializeRegularUpdateTest) { /** * Test CollectibleComponent with different collectible IDs */ -TEST_F(CollectibleTest, CollectibleComponentDifferentIDsTest) { +TEST_F(CollectibleComponentTest, DifferentIDsTest) { // Create another entity with a different collectible ID Entity* anotherEntity = new Entity(16, GameDependenciesTest::info); CollectibleComponent* anotherCollectible = anotherEntity->AddComponent(456); @@ -103,4 +103,4 @@ TEST_F(CollectibleTest, CollectibleComponentDifferentIDsTest) { EXPECT_EQ(anotherCollectible->GetCollectibleId(), 456); delete anotherEntity; -} \ No newline at end of file +} diff --git a/tests/dGameTests/dComponentsTests/ControllablePhysicsComponentTests.cpp b/tests/dGameTests/dComponentsTests/ControllablePhysicsComponentTests.cpp index 278a64c2..adabda07 100644 --- a/tests/dGameTests/dComponentsTests/ControllablePhysicsComponentTests.cpp +++ b/tests/dGameTests/dComponentsTests/ControllablePhysicsComponentTests.cpp @@ -28,7 +28,7 @@ protected: /** * Test ControllablePhysicsComponent initial update serialization */ -TEST_F(ControllablePhysicsComponentTest, ControllablePhysicsComponentSerializeInitialUpdateTest) { +TEST_F(ControllablePhysicsComponentTest, SerializeInitialUpdateTest) { bitStream.Reset(); // Test initial update serialization @@ -47,7 +47,7 @@ TEST_F(ControllablePhysicsComponentTest, ControllablePhysicsComponentSerializeIn /** * Test ControllablePhysicsComponent jetpack mode serialization */ -TEST_F(ControllablePhysicsComponentTest, ControllablePhysicsComponentSerializeJetpackTest) { +TEST_F(ControllablePhysicsComponentTest, SerializeJetpackTest) { bitStream.Reset(); // Set jetpack mode @@ -64,7 +64,7 @@ TEST_F(ControllablePhysicsComponentTest, ControllablePhysicsComponentSerializeJe /** * Test ControllablePhysicsComponent regular update serialization */ -TEST_F(ControllablePhysicsComponentTest, ControllablePhysicsComponentSerializeRegularUpdateTest) { +TEST_F(ControllablePhysicsComponentTest, SerializeRegularUpdateTest) { bitStream.Reset(); // Do an initial update to clear dirty flags @@ -82,7 +82,7 @@ TEST_F(ControllablePhysicsComponentTest, ControllablePhysicsComponentSerializeRe /** * Test ControllablePhysicsComponent position change serialization */ -TEST_F(ControllablePhysicsComponentTest, ControllablePhysicsComponentSerializePositionChangeTest) { +TEST_F(ControllablePhysicsComponentTest, SerializePositionChangeTest) { bitStream.Reset(); // Change position to trigger dirty position flag @@ -100,4 +100,4 @@ TEST_F(ControllablePhysicsComponentTest, ControllablePhysicsComponentSerializePo EXPECT_EQ(pos.x, 100.0f); EXPECT_EQ(pos.y, 200.0f); EXPECT_EQ(pos.z, 300.0f); -} \ No newline at end of file +} diff --git a/tests/dGameTests/dComponentsTests/ControllablePhysicsComponentTests_old.cpp b/tests/dGameTests/dComponentsTests/ControllablePhysicsComponentTests_old.cpp deleted file mode 100644 index 7f8d8421..00000000 --- a/tests/dGameTests/dComponentsTests/ControllablePhysicsComponentTests_old.cpp +++ /dev/null @@ -1,356 +0,0 @@ -#include "GameDependencies.h" -#include - -#include "BitStream.h" -#include "ControllablePhysicsComponent.h" -#include "Entity.h" -#include "eReplicaComponentType.h" - -class ControllablePhysicsComponentTest : public GameDependenciesTest { -protected: - Entity* baseEntity; - ControllablePhysicsComponent* controllablePhysicsComponent; - CBITSTREAM - uint32_t flags = 0; - - void SetUp() override { - SetUpDependencies(); - baseEntity = new Entity(15, GameDependenciesTest::info); - controllablePhysicsComponent = baseEntity->AddComponent(1); - } - - void TearDown() override { - delete baseEntity; - TearDownDependencies(); - } -}; - -/** - * Test ControllablePhysicsComponent initial update serialization - */ -TEST_F(ControllablePhysicsComponentTest, ControllablePhysicsComponentSerializeInitialUpdateTest) { - bitStream.Reset(); - - // Test initial update serialization - controllablePhysicsComponent->Serialize(bitStream, true); - - // ControllablePhysicsComponent inherits from PhysicsComponent, so it serializes - // position data first, then its own data. Just verify it produces output. - EXPECT_GT(bitStream.GetNumberOfBitsUsed(), 0); - - // Verify the component exists and has reasonable default values - EXPECT_FALSE(controllablePhysicsComponent->GetIsOnRail()); - EXPECT_EQ(controllablePhysicsComponent->GetSpeedMultiplier(), 1.0f); - EXPECT_EQ(controllablePhysicsComponent->GetGravityScale(), 1.0f); -} - - uint32_t immuneToStunJumpCount; - bitStream.Read(immuneToStunJumpCount); - EXPECT_EQ(immuneToStunJumpCount, 0); - - uint32_t immuneToStunTurnCount; - bitStream.Read(immuneToStunTurnCount); - EXPECT_EQ(immuneToStunTurnCount, 0); - - uint32_t immuneToStunAttackCount; - bitStream.Read(immuneToStunAttackCount); - EXPECT_EQ(immuneToStunAttackCount, 0); - - uint32_t immuneToStunUseItemCount; - bitStream.Read(immuneToStunUseItemCount); - EXPECT_EQ(immuneToStunUseItemCount, 0); - - uint32_t immuneToStunEquipCount; - bitStream.Read(immuneToStunEquipCount); - EXPECT_EQ(immuneToStunEquipCount, 0); - - uint32_t immuneToStunInteractCount; - bitStream.Read(immuneToStunInteractCount); - EXPECT_EQ(immuneToStunInteractCount, 0); - - // Cheats section (always dirty on initial update) - bool hasCheats; - bitStream.Read(hasCheats); - EXPECT_EQ(hasCheats, true); // Always true for initial update - - float gravityScale; - bitStream.Read(gravityScale); - EXPECT_EQ(gravityScale, 1.0f); // Default value - - float speedMultiplier; - bitStream.Read(speedMultiplier); - EXPECT_EQ(speedMultiplier, 1.0f); // Default value - - // Equipped item info section (always dirty on initial update) - bool hasEquippedItemInfo; - bitStream.Read(hasEquippedItemInfo); - EXPECT_EQ(hasEquippedItemInfo, true); - - float pickupRadius; - bitStream.Read(pickupRadius); - EXPECT_EQ(pickupRadius, 0.0f); // Default value - - bool inJetpackMode2; - bitStream.Read(inJetpackMode2); - EXPECT_EQ(inJetpackMode2, false); // Should match first jetpack mode - - // Bubble section (always dirty on initial update) - bool hasBubble; - bitStream.Read(hasBubble); - EXPECT_EQ(hasBubble, true); - - bool isInBubble; - bitStream.Read(isInBubble); - EXPECT_EQ(isInBubble, false); // Default value - - // Position section (always dirty on initial update) - bool hasPosition; - bitStream.Read(hasPosition); - EXPECT_EQ(hasPosition, true); - - // Position - float posX, posY, posZ; - bitStream.Read(posX); - bitStream.Read(posY); - bitStream.Read(posZ); - EXPECT_EQ(posX, 0.0f); - EXPECT_EQ(posY, 0.0f); - EXPECT_EQ(posZ, 0.0f); - - // Rotation (quaternion) - float rotX, rotY, rotZ, rotW; - bitStream.Read(rotX); - bitStream.Read(rotY); - bitStream.Read(rotZ); - bitStream.Read(rotW); - // Default quaternion values - EXPECT_EQ(rotX, 0.0f); - EXPECT_EQ(rotY, 0.0f); - EXPECT_EQ(rotZ, 0.0f); - EXPECT_EQ(rotW, 1.0f); - - // Ground and rail flags - bool isOnGround; - bitStream.Read(isOnGround); - EXPECT_EQ(isOnGround, true); // Default value - - bool isOnRail; - bitStream.Read(isOnRail); - EXPECT_EQ(isOnRail, false); // Default value - - // Velocity (should be zero by default) - bool hasVelocity; - bitStream.Read(hasVelocity); - EXPECT_EQ(hasVelocity, false); // Zero velocity by default - - // Angular velocity (should be zero by default) - bool hasAngularVelocity; - bitStream.Read(hasAngularVelocity); - EXPECT_EQ(hasAngularVelocity, false); // Zero angular velocity by default - - // Local space info (always zero) - bool localSpaceInfo; - bitStream.Read(localSpaceInfo); - EXPECT_EQ(localSpaceInfo, false); -} - -/** - * Test ControllablePhysicsComponent initial update with jetpack mode enabled - */ -TEST_F(ControllablePhysicsComponentTest, ControllablePhysicsComponentSerializeJetpackTest) { - bitStream.Reset(); - - // Enable jetpack mode with specific values - // Note: These would typically be set through appropriate setters if they exist - // For now, we'll test the default case and focus on other conditional logic - - // Set some non-zero velocity to test conditional serialization - controllablePhysicsComponent->SetVelocity(NiPoint3(1.0f, 2.0f, 3.0f)); - controllablePhysicsComponent->SetAngularVelocity(NiPoint3(0.1f, 0.2f, 0.3f)); - - controllablePhysicsComponent->Serialize(bitStream, true); - - // Skip to velocity section (navigate through the structure) - // We'll focus on testing the velocity serialization logic - - bool dummy; - float dummyFloat; - uint32_t dummyInt; - - // Skip jetpack mode - bitStream.Read(dummy); // inJetpackMode - - // Skip immune counts (7 uint32_t values) - for (int i = 0; i < 7; i++) { - bitStream.Read(dummyInt); - } - - // Skip cheats section - bitStream.Read(dummy); // hasCheats - bitStream.Read(dummyFloat); // gravityScale - bitStream.Read(dummyFloat); // speedMultiplier - - // Skip equipped item info - bitStream.Read(dummy); // hasEquippedItemInfo - bitStream.Read(dummyFloat); // pickupRadius - bitStream.Read(dummy); // inJetpackMode2 - - // Skip bubble section - bitStream.Read(dummy); // hasBubble - bitStream.Read(dummy); // isInBubble - - // Skip position section - bitStream.Read(dummy); // hasPosition - bitStream.Read(dummyFloat); // posX - bitStream.Read(dummyFloat); // posY - bitStream.Read(dummyFloat); // posZ - bitStream.Read(dummyFloat); // rotX - bitStream.Read(dummyFloat); // rotY - bitStream.Read(dummyFloat); // rotZ - bitStream.Read(dummyFloat); // rotW - bitStream.Read(dummy); // isOnGround - bitStream.Read(dummy); // isOnRail - - // Now test velocity section - bool hasVelocity; - bitStream.Read(hasVelocity); - EXPECT_EQ(hasVelocity, true); // Should have velocity now - - if (hasVelocity) { - float velX, velY, velZ; - bitStream.Read(velX); - bitStream.Read(velY); - bitStream.Read(velZ); - EXPECT_EQ(velX, 1.0f); - EXPECT_EQ(velY, 2.0f); - EXPECT_EQ(velZ, 3.0f); - } - - // Test angular velocity section - bool hasAngularVelocity; - bitStream.Read(hasAngularVelocity); - EXPECT_EQ(hasAngularVelocity, true); // Should have angular velocity now - - if (hasAngularVelocity) { - float angVelX, angVelY, angVelZ; - bitStream.Read(angVelX); - bitStream.Read(angVelY); - bitStream.Read(angVelZ); - EXPECT_EQ(angVelX, 0.1f); - EXPECT_EQ(angVelY, 0.2f); - EXPECT_EQ(angVelZ, 0.3f); - } - - // Local space info - bool localSpaceInfo; - bitStream.Read(localSpaceInfo); - EXPECT_EQ(localSpaceInfo, false); -} - -/** - * Test ControllablePhysicsComponent regular update serialization - */ -TEST_F(ControllablePhysicsComponentTest, ControllablePhysicsComponentSerializeRegularUpdateTest) { - bitStream.Reset(); - - // Regular update should only serialize dirty flags - controllablePhysicsComponent->Serialize(bitStream, false); - - // Read back the serialized data - // Cheats section (should not be dirty by default) - bool hasCheats; - bitStream.Read(hasCheats); - EXPECT_EQ(hasCheats, false); // Not dirty by default - - // Equipped item info section (should not be dirty by default) - bool hasEquippedItemInfo; - bitStream.Read(hasEquippedItemInfo); - EXPECT_EQ(hasEquippedItemInfo, false); // Not dirty by default - - // Bubble section (should not be dirty by default) - bool hasBubble; - bitStream.Read(hasBubble); - EXPECT_EQ(hasBubble, false); // Not dirty by default - - // Position section (should not be dirty by default) - bool hasPosition; - bitStream.Read(hasPosition); - EXPECT_EQ(hasPosition, false); // Not dirty by default -} - -/** - * Test ControllablePhysicsComponent regular update with position change - */ -TEST_F(ControllablePhysicsComponentTest, ControllablePhysicsComponentSerializePositionChangeTest) { - bitStream.Reset(); - - // Change position to make it dirty - controllablePhysicsComponent->SetPosition(NiPoint3(10.0f, 20.0f, 30.0f)); - controllablePhysicsComponent->SetRotation(NiQuaternion(0.0f, 0.0f, 0.0f, 1.0f)); - - // Regular update should now serialize position - controllablePhysicsComponent->Serialize(bitStream, false); - - // Skip non-dirty sections - bool hasCheats; - bitStream.Read(hasCheats); - EXPECT_EQ(hasCheats, false); - - bool hasEquippedItemInfo; - bitStream.Read(hasEquippedItemInfo); - EXPECT_EQ(hasEquippedItemInfo, false); - - bool hasBubble; - bitStream.Read(hasBubble); - EXPECT_EQ(hasBubble, false); - - // Position section should now be dirty - bool hasPosition; - bitStream.Read(hasPosition); - EXPECT_EQ(hasPosition, true); // Should be dirty due to position change - - if (hasPosition) { - float posX, posY, posZ; - bitStream.Read(posX); - bitStream.Read(posY); - bitStream.Read(posZ); - EXPECT_EQ(posX, 10.0f); - EXPECT_EQ(posY, 20.0f); - EXPECT_EQ(posZ, 30.0f); - - float rotX, rotY, rotZ, rotW; - bitStream.Read(rotX); - bitStream.Read(rotY); - bitStream.Read(rotZ); - bitStream.Read(rotW); - EXPECT_EQ(rotX, 0.0f); - EXPECT_EQ(rotY, 0.0f); - EXPECT_EQ(rotZ, 0.0f); - EXPECT_EQ(rotW, 1.0f); - - bool isOnGround; - bitStream.Read(isOnGround); - EXPECT_EQ(isOnGround, true); - - bool isOnRail; - bitStream.Read(isOnRail); - EXPECT_EQ(isOnRail, false); - - bool hasVelocity; - bitStream.Read(hasVelocity); - EXPECT_EQ(hasVelocity, false); // Zero velocity - - bool hasAngularVelocity; - bitStream.Read(hasAngularVelocity); - EXPECT_EQ(hasAngularVelocity, false); // Zero angular velocity - - bool localSpaceInfo; - bitStream.Read(localSpaceInfo); - EXPECT_EQ(localSpaceInfo, false); - - // In regular updates, teleporting flag is written - bool isTeleporting; - bitStream.Read(isTeleporting); - EXPECT_EQ(isTeleporting, false); // Default value - } -} \ No newline at end of file diff --git a/tests/dGameTests/dComponentsTests/DestroyableComponentTests.cpp b/tests/dGameTests/dComponentsTests/DestroyableComponentTests.cpp index d14004ee..da7bc3ef 100644 --- a/tests/dGameTests/dComponentsTests/DestroyableComponentTests.cpp +++ b/tests/dGameTests/dComponentsTests/DestroyableComponentTests.cpp @@ -7,7 +7,7 @@ #include "eReplicaComponentType.h" #include "eStateChangeType.h" -class DestroyableTest : public GameDependenciesTest { +class DestroyableComponentTest : public GameDependenciesTest { protected: Entity* baseEntity; DestroyableComponent* destroyableComponent; @@ -36,7 +36,7 @@ protected: } }; -TEST_F(DestroyableTest, PlacementNewAddComponentTest) { +TEST_F(DestroyableComponentTest, PlacementNewAddComponentTest) { ASSERT_NE(destroyableComponent, nullptr); ASSERT_EQ(destroyableComponent->GetArmor(), 7); baseEntity->AddComponent(); @@ -47,7 +47,7 @@ TEST_F(DestroyableTest, PlacementNewAddComponentTest) { /** * Test Construction of a DestroyableComponent */ -TEST_F(DestroyableTest, DestroyableComponentSerializeConstructionTest) { +TEST_F(DestroyableComponentTest, SerializeConstructionTest) { destroyableComponent->Serialize(bitStream, true); // Assert that the full number of bits are present ASSERT_EQ(bitStream.GetNumberOfUnreadBits(), 748); @@ -172,7 +172,7 @@ TEST_F(DestroyableTest, DestroyableComponentSerializeConstructionTest) { /** * Test serialization of a DestroyableComponent */ -TEST_F(DestroyableTest, DestroyableComponentSerializeTest) { +TEST_F(DestroyableComponentTest, SerializeTest) { bitStream.Reset(); // Initialize some values to be not default so we can test a full serialization destroyableComponent->SetMaxHealth(1233.0f); @@ -250,7 +250,7 @@ TEST_F(DestroyableTest, DestroyableComponentSerializeTest) { /** * Test the Damage method of DestroyableComponent */ -TEST_F(DestroyableTest, DestroyableComponentDamageTest) { +TEST_F(DestroyableComponentTest, DamageTest) { // Do some actions destroyableComponent->SetMaxHealth(100.0f); destroyableComponent->SetHealth(100); @@ -318,12 +318,12 @@ TEST_F(DestroyableTest, DestroyableComponentDamageTest) { ASSERT_EQ(destroyableComponent->GetImagination(), 100); } -TEST_F(DestroyableTest, DestroyableComponentFactionTest) { +TEST_F(DestroyableComponentTest, FactionTest) { ASSERT_TRUE(destroyableComponent->HasFaction(-1)); ASSERT_TRUE(destroyableComponent->HasFaction(6)); } -TEST_F(DestroyableTest, DestroyableComponentValiditiyTest) { +TEST_F(DestroyableComponentTest, ValiditiyTest) { auto* enemyEntity = new Entity(19, info); enemyEntity->AddComponent()->AddFactionNoLookup(16); destroyableComponent->AddEnemyFaction(16); @@ -332,7 +332,7 @@ TEST_F(DestroyableTest, DestroyableComponentValiditiyTest) { delete enemyEntity; } -TEST_F(DestroyableTest, DestroyableComponentImmunityTest) { +TEST_F(DestroyableComponentTest, ImmunityTest) { // assert to show that they are empty ASSERT_FALSE(destroyableComponent->GetImmuneToBasicAttack()); ASSERT_FALSE(destroyableComponent->GetImmuneToDamageOverTime()); @@ -539,7 +539,7 @@ TEST_F(DestroyableTest, DestroyableComponentImmunityTest) { /** * Test the Damage cooldown timer of DestroyableComponent */ -TEST_F(DestroyableTest, DestroyableComponentDamageCooldownTest) { +TEST_F(DestroyableComponentTest, DamageCooldownTest) { // Test the damage immune timer state (anything above 0.0f) destroyableComponent->SetDamageCooldownTimer(1.0f); EXPECT_FLOAT_EQ(destroyableComponent->GetDamageCooldownTimer(), 1.0f); diff --git a/tests/dGameTests/dComponentsTests/DonationVendorComponentTests.cpp b/tests/dGameTests/dComponentsTests/DonationVendorComponentTests.cpp index e328508e..96735b8a 100644 --- a/tests/dGameTests/dComponentsTests/DonationVendorComponentTests.cpp +++ b/tests/dGameTests/dComponentsTests/DonationVendorComponentTests.cpp @@ -82,8 +82,16 @@ TEST_F(DonationVendorComponentTest, SerializationAfterDonations) { // Read VendorComponent serialization first bool vendorDirtyFlag; bitStream.Read(vendorDirtyFlag); - EXPECT_FALSE(vendorDirtyFlag); // Should be false for regular update with no vendor changes + EXPECT_TRUE(vendorDirtyFlag); // Should be true for regular update with no vendor changes + if (vendorDirtyFlag) { + bool hasStandardCostItems; + bool hasMultiCostItems; + bitStream.Read(hasStandardCostItems); + bitStream.Read(hasMultiCostItems); + // These may be true if vendor has items during construction + // Just verify we can read them without asserting specific values + } // Read DonationVendorComponent serialization bool donationDirtyFlag; bitStream.Read(donationDirtyFlag); @@ -174,4 +182,4 @@ TEST_F(DonationVendorComponentTest, RegularUpdateWithoutChanges) { EXPECT_FALSE(donationDirtyFlag); // Should be false since nothing changed bitStream.Reset(); -} \ No newline at end of file +} diff --git a/tests/dGameTests/dComponentsTests/HavokVehiclePhysicsComponentTests.cpp b/tests/dGameTests/dComponentsTests/HavokVehiclePhysicsComponentTests.cpp index bfd54032..2ecf7365 100644 --- a/tests/dGameTests/dComponentsTests/HavokVehiclePhysicsComponentTests.cpp +++ b/tests/dGameTests/dComponentsTests/HavokVehiclePhysicsComponentTests.cpp @@ -7,7 +7,7 @@ #include "eReplicaComponentType.h" #include "PositionUpdate.h" -class HavokVehiclePhysicsTest : public GameDependenciesTest { +class HavokVehiclePhysicsComponentTest : public GameDependenciesTest { protected: Entity* baseEntity; HavokVehiclePhysicsComponent* havokVehiclePhysicsComponent; @@ -43,7 +43,7 @@ protected: /** * Test serialization of HavokVehiclePhysicsComponent during initial update */ -TEST_F(HavokVehiclePhysicsTest, HavokVehiclePhysicsComponentSerializeInitialUpdateTest) { +TEST_F(HavokVehiclePhysicsComponentTest, SerializeInitialUpdateTest) { bitStream.Reset(); // Now we test a serialization for correctness with initial update. @@ -163,7 +163,7 @@ TEST_F(HavokVehiclePhysicsTest, HavokVehiclePhysicsComponentSerializeInitialUpda /** * Test serialization of HavokVehiclePhysicsComponent during regular update */ -TEST_F(HavokVehiclePhysicsTest, HavokVehiclePhysicsComponentSerializeRegularUpdateTest) { +TEST_F(HavokVehiclePhysicsComponentTest, SerializeRegularUpdateTest) { bitStream.Reset(); // Now we test a serialization for correctness with regular update. @@ -278,7 +278,7 @@ TEST_F(HavokVehiclePhysicsTest, HavokVehiclePhysicsComponentSerializeRegularUpda /** * Test serialization with zero velocities */ -TEST_F(HavokVehiclePhysicsTest, HavokVehiclePhysicsComponentSerializeZeroVelocitiesTest) { +TEST_F(HavokVehiclePhysicsComponentTest, SerializeZeroVelocitiesTest) { bitStream.Reset(); // Set velocities to zero @@ -336,7 +336,7 @@ TEST_F(HavokVehiclePhysicsTest, HavokVehiclePhysicsComponentSerializeZeroVelocit /** * Test HavokVehiclePhysicsComponent getters and setters */ -TEST_F(HavokVehiclePhysicsTest, HavokVehiclePhysicsComponentGettersSettersTest) { +TEST_F(HavokVehiclePhysicsComponentTest, GettersSettersTest) { // Test velocity NiPoint3 testVelocity(100.0f, 200.0f, 300.0f); havokVehiclePhysicsComponent->SetVelocity(testVelocity); @@ -360,4 +360,4 @@ TEST_F(HavokVehiclePhysicsTest, HavokVehiclePhysicsComponentGettersSettersTest) havokVehiclePhysicsComponent->SetIsOnRail(false); EXPECT_EQ(havokVehiclePhysicsComponent->GetIsOnRail(), false); -} \ No newline at end of file +} diff --git a/tests/dGameTests/dComponentsTests/LUPExhibitComponentTests.cpp b/tests/dGameTests/dComponentsTests/LUPExhibitComponentTests.cpp index fd78689f..a09e40e9 100644 --- a/tests/dGameTests/dComponentsTests/LUPExhibitComponentTests.cpp +++ b/tests/dGameTests/dComponentsTests/LUPExhibitComponentTests.cpp @@ -6,7 +6,7 @@ #include "Entity.h" #include "eReplicaComponentType.h" -class LUPExhibitTest : public GameDependenciesTest { +class LUPExhibitComponentTest : public GameDependenciesTest { protected: Entity* baseEntity; LUPExhibitComponent* lupExhibitComponent; @@ -27,7 +27,7 @@ protected: /** * Test LUPExhibitComponent initial serialization */ -TEST_F(LUPExhibitTest, LUPExhibitComponentSerializeInitialUpdateTest) { +TEST_F(LUPExhibitComponentTest, SerializeInitialUpdateTest) { bitStream.Reset(); // Component should be dirty by default @@ -46,7 +46,7 @@ TEST_F(LUPExhibitTest, LUPExhibitComponentSerializeInitialUpdateTest) { /** * Test LUPExhibitComponent regular update when not dirty */ -TEST_F(LUPExhibitTest, LUPExhibitComponentSerializeNotDirtyTest) { +TEST_F(LUPExhibitComponentTest, SerializeNotDirtyTest) { bitStream.Reset(); // First serialize to clear dirty flag @@ -64,7 +64,7 @@ TEST_F(LUPExhibitTest, LUPExhibitComponentSerializeNotDirtyTest) { /** * Test LUPExhibitComponent cycling through exhibits */ -TEST_F(LUPExhibitTest, LUPExhibitComponentNextExhibitTest) { +TEST_F(LUPExhibitComponentTest, NextExhibitTest) { bitStream.Reset(); // Get first exhibit @@ -95,7 +95,7 @@ TEST_F(LUPExhibitTest, LUPExhibitComponentNextExhibitTest) { /** * Test LUPExhibitComponent cycling through all exhibits and wrapping around */ -TEST_F(LUPExhibitTest, LUPExhibitComponentCycleAllExhibitsTest) { +TEST_F(LUPExhibitComponentTest, CycleAllExhibitsTest) { bitStream.Reset(); // Expected exhibit sequence: 11121, 11295, 11423, 11979, then back to 11121 @@ -117,4 +117,4 @@ TEST_F(LUPExhibitTest, LUPExhibitComponentCycleAllExhibitsTest) { bitStream.Read(exhibitLOT); EXPECT_EQ(exhibitLOT, expectedLOTs[i]) << "Exhibit " << i << " should be " << expectedLOTs[i]; } -} \ No newline at end of file +} diff --git a/tests/dGameTests/dComponentsTests/MiniGameControlComponentTests.cpp b/tests/dGameTests/dComponentsTests/MiniGameControlComponentTests.cpp deleted file mode 100644 index c6266cb0..00000000 --- a/tests/dGameTests/dComponentsTests/MiniGameControlComponentTests.cpp +++ /dev/null @@ -1,83 +0,0 @@ -#include "GameDependencies.h" -#include - -#include "BitStream.h" -#include "MiniGameControlComponent.h" -#include "Entity.h" -#include "eReplicaComponentType.h" - -class MiniGameControlComponentTest : public GameDependenciesTest { -protected: - Entity* baseEntity; - MiniGameControlComponent* miniGameControlComponent; - CBITSTREAM - uint32_t flags = 0; - - void SetUp() override { - SetUpDependencies(); - baseEntity = new Entity(15, GameDependenciesTest::info); - miniGameControlComponent = baseEntity->AddComponent(); - } - - void TearDown() override { - delete baseEntity; - TearDownDependencies(); - } -}; - -// Test serialization behavior (should always write 0x40000000) -TEST_F(MiniGameControlComponentTest, SerializationBehavior) { - miniGameControlComponent->Serialize(bitStream, true); - - // MiniGameControlComponent::Serialize writes a fixed uint32_t value - ASSERT_EQ(bitStream.GetNumberOfUnreadBits(), 32); - - uint32_t value; - bitStream.Read(value); - EXPECT_EQ(value, 0x40000000); - - bitStream.Reset(); -} - -// Test serialization with isConstruction = false -TEST_F(MiniGameControlComponentTest, SerializationWithoutConstruction) { - miniGameControlComponent->Serialize(bitStream, false); - - // Should write the same value regardless of isConstruction parameter - ASSERT_EQ(bitStream.GetNumberOfUnreadBits(), 32); - - uint32_t value; - bitStream.Read(value); - EXPECT_EQ(value, 0x40000000); - - bitStream.Reset(); -} - -// Test multiple serializations produce consistent results -TEST_F(MiniGameControlComponentTest, ConsistentSerialization) { - // First serialization - miniGameControlComponent->Serialize(bitStream, true); - ASSERT_EQ(bitStream.GetNumberOfUnreadBits(), 32); - uint32_t value1; - bitStream.Read(value1); - bitStream.Reset(); - - // Second serialization - miniGameControlComponent->Serialize(bitStream, false); - ASSERT_EQ(bitStream.GetNumberOfUnreadBits(), 32); - uint32_t value2; - bitStream.Read(value2); - bitStream.Reset(); - - // Third serialization - miniGameControlComponent->Serialize(bitStream, true); - ASSERT_EQ(bitStream.GetNumberOfUnreadBits(), 32); - uint32_t value3; - bitStream.Read(value3); - - EXPECT_EQ(value1, value2); - EXPECT_EQ(value2, value3); - EXPECT_EQ(value1, 0x40000000); // All should be 0x40000000 - - bitStream.Reset(); -} \ No newline at end of file diff --git a/tests/dGameTests/dComponentsTests/ModelComponentTests.cpp b/tests/dGameTests/dComponentsTests/ModelComponentTests.cpp index 98a421cb..3dea24e1 100644 --- a/tests/dGameTests/dComponentsTests/ModelComponentTests.cpp +++ b/tests/dGameTests/dComponentsTests/ModelComponentTests.cpp @@ -7,7 +7,7 @@ #include "eReplicaComponentType.h" #include "PetComponent.h" -class ModelTest : public GameDependenciesTest { +class ModelComponentTest : public GameDependenciesTest { protected: Entity* baseEntity; ModelComponent* modelComponent; @@ -32,7 +32,7 @@ protected: /** * Test serialization of a ModelComponent for a non-pet entity */ -TEST_F(ModelTest, ModelComponentSerializeNonPetTest) { +TEST_F(ModelComponentTest, SerializeNonPetTest) { bitStream.Reset(); // Now we test a serialization for correctness. @@ -99,7 +99,7 @@ TEST_F(ModelTest, ModelComponentSerializeNonPetTest) { /** * Test serialization of a ModelComponent for a pet entity */ -TEST_F(ModelTest, ModelComponentSerializePetTest) { +TEST_F(ModelComponentTest, SerializePetTest) { bitStream.Reset(); // Add a PetComponent to make this entity a pet @@ -153,7 +153,7 @@ TEST_F(ModelTest, ModelComponentSerializePetTest) { /** * Test serialization of a ModelComponent during initial update */ -TEST_F(ModelTest, ModelComponentSerializeInitialUpdateTest) { +TEST_F(ModelComponentTest, SerializeInitialUpdateTest) { bitStream.Reset(); // Now we test a serialization for correctness with initial update. @@ -225,7 +225,7 @@ TEST_F(ModelTest, ModelComponentSerializeInitialUpdateTest) { /** * Test ModelComponent getters and setters */ -TEST_F(ModelTest, ModelComponentGettersSettersTest) { +TEST_F(ModelComponentTest, GettersSettersTest) { // Test position NiPoint3 testPosition(100.0f, 200.0f, 300.0f); modelComponent->SetPosition(testPosition); @@ -262,4 +262,4 @@ TEST_F(ModelTest, ModelComponentGettersSettersTest) { bool isPickable; bitStream.Read(isPickable); EXPECT_EQ(isPickable, false); // Should be false now -} \ No newline at end of file +} diff --git a/tests/dGameTests/dComponentsTests/MovingPlatformComponentTests.cpp b/tests/dGameTests/dComponentsTests/MovingPlatformComponentTests.cpp index 3e23d1e7..88adf853 100644 --- a/tests/dGameTests/dComponentsTests/MovingPlatformComponentTests.cpp +++ b/tests/dGameTests/dComponentsTests/MovingPlatformComponentTests.cpp @@ -7,7 +7,7 @@ #include "eReplicaComponentType.h" #include "eMovementPlatformState.h" -class MovingPlatformTest : public GameDependenciesTest { +class MovingPlatformCompoenetTest : public GameDependenciesTest { protected: Entity* baseEntity; MovingPlatformComponent* movingPlatformComponent; @@ -44,7 +44,7 @@ protected: /** * Test serialization of a MovingPlatformComponent with m_Serialize = false */ -TEST_F(MovingPlatformTest, MovingPlatformComponentSerializeDisabledTest) { +TEST_F(MovingPlatformCompoenetTest, SerializeDisabledTest) { bitStream.Reset(); // Set m_Serialize to false to test the early return path @@ -68,7 +68,7 @@ TEST_F(MovingPlatformTest, MovingPlatformComponentSerializeDisabledTest) { /** * Test serialization of a MovingPlatformComponent with enabled serialization but no path */ -TEST_F(MovingPlatformTest, MovingPlatformComponentSerializeNoPathTest) { +TEST_F(MovingPlatformCompoenetTest, SerializeNoPathTest) { bitStream.Reset(); // Create a component with no path to test the path logic @@ -106,7 +106,7 @@ TEST_F(MovingPlatformTest, MovingPlatformComponentSerializeNoPathTest) { /** * Test complete serialization of a MovingPlatformComponent with path */ -TEST_F(MovingPlatformTest, MovingPlatformComponentSerializeFullTest) { +TEST_F(MovingPlatformCompoenetTest, SerializeFullTest) { bitStream.Reset(); // Now we test a serialization for correctness. @@ -206,18 +206,3 @@ TEST_F(MovingPlatformTest, MovingPlatformComponentSerializeFullTest) { EXPECT_EQ(moveTimeElapsed, 0.0f); // Always 0 in current implementation } } - -/** - * Test MoverSubComponent initialization and basic functionality - */ -TEST_F(MovingPlatformTest, MoverSubComponentInitializationTest) { - auto* moverSubComponent = movingPlatformComponent->GetMoverSubComponent(); - ASSERT_NE(moverSubComponent, nullptr); - - // Test that we can access and modify the mover sub component - moverSubComponent->mState = eMovementPlatformState::Stopped; - EXPECT_EQ(moverSubComponent->mState, eMovementPlatformState::Stopped); - - moverSubComponent->mDesiredWaypointIndex = 10; - EXPECT_EQ(moverSubComponent->mDesiredWaypointIndex, 10); -} \ No newline at end of file diff --git a/tests/dGameTests/dComponentsTests/PetComponentTests.cpp b/tests/dGameTests/dComponentsTests/PetComponentTests.cpp index 1d6a518c..d204588b 100644 --- a/tests/dGameTests/dComponentsTests/PetComponentTests.cpp +++ b/tests/dGameTests/dComponentsTests/PetComponentTests.cpp @@ -8,7 +8,7 @@ #include "ePetAbilityType.h" #include "eStateChangeType.h" -class PetTest : public GameDependenciesTest { +class PetComponentTest : public GameDependenciesTest { protected: Entity* baseEntity; PetComponent* petComponent; @@ -31,7 +31,7 @@ protected: } }; -TEST_F(PetTest, PlacementNewAddComponentTest) { +TEST_F(PetComponentTest, PlacementNewAddComponentTest) { // Test adding component ASSERT_NE(petComponent, nullptr); baseEntity->AddComponent(1); @@ -43,7 +43,7 @@ TEST_F(PetTest, PlacementNewAddComponentTest) { } // Test untamed pet serialization (initial update) -TEST_F(PetTest, UntamedPetInitialSerialization) { +TEST_F(PetComponentTest, UntamedPetInitialSerialization) { petComponent->Serialize(bitStream, true); // Read the serialized data manually @@ -58,8 +58,8 @@ TEST_F(PetTest, UntamedPetInitialSerialization) { EXPECT_TRUE(alwaysDirty); // Always true bitStream.Read(status); - EXPECT_EQ(status, 0); // Default status should be 0 - + EXPECT_EQ(status, 67108866); // Default status should be 67108866 since that is the untamed state + bitStream.Read(ability); EXPECT_EQ(ability, ePetAbilityType::Invalid); // Should be Invalid for untamed pets @@ -76,117 +76,8 @@ TEST_F(PetTest, UntamedPetInitialSerialization) { bitStream.Reset(); } -// Test tamed pet serialization (initial update) -TEST_F(PetTest, TamedPetInitialSerialization) { - // Set up a tamed pet - skip activation since it requires complex Item setup - petComponent->SetPetNameForModeration("TestPet"); - // Note: Cannot easily test SetOwnerName as it's a private member - - petComponent->Serialize(bitStream, true); - - petComponent->Serialize(bitStream, true); - - // Read the serialized data manually - bool alwaysDirty; - uint32_t status; - ePetAbilityType ability; - bool interacting; - bool tamed; - LWOOBJID owner; - bool tamedForInitial; - uint32_t moderationStatus; - uint8_t nameLength; - std::vector nameData; - uint8_t ownerNameLength; - std::vector ownerNameData; - - bitStream.Read(alwaysDirty); - EXPECT_TRUE(alwaysDirty); // Always true - - bitStream.Read(status); - bitStream.Read(ability); - EXPECT_NE(ability, ePetAbilityType::Invalid); // Should have a valid ability when tamed - - bitStream.Read(interacting); - EXPECT_FALSE(interacting); // No interaction by default - - bitStream.Read(tamed); - EXPECT_TRUE(tamed); // Pet should be tamed - - if (tamed) { - bitStream.Read(owner); - EXPECT_EQ(owner, 0); // Default value since we didnt activate - } - - // For initial update with tamed pet - bitStream.Read(tamedForInitial); - EXPECT_TRUE(tamedForInitial); - - if (tamedForInitial) { - bitStream.Read(moderationStatus); - EXPECT_EQ(moderationStatus, 0); // Default moderation status - - bitStream.Read(nameLength); - EXPECT_GT(nameLength, 0); // Should have a name - - nameData.resize(nameLength); - for (uint8_t i = 0; i < nameLength; i++) { - bitStream.Read(nameData[i]); - } - - bitStream.Read(ownerNameLength); - EXPECT_GT(ownerNameLength, 0); // Should have an owner name - - ownerNameData.resize(ownerNameLength); - for (uint8_t i = 0; i < ownerNameLength; i++) { - bitStream.Read(ownerNameData[i]); - } - } - - bitStream.Reset(); -} - -// Test tamed pet regular update serialization -TEST_F(PetTest, TamedPetRegularSerialization) { - // Set up a tamed pet - skip activation since it requires complex Item setup - petComponent->SetPetNameForModeration("TestPet"); - - petComponent->Serialize(bitStream, false); - - // Read the serialized data manually - bool alwaysDirty; - uint32_t status; - ePetAbilityType ability; - bool interacting; - bool tamed; - LWOOBJID owner; - - bitStream.Read(alwaysDirty); - EXPECT_TRUE(alwaysDirty); // Always true - - bitStream.Read(status); - bitStream.Read(ability); - EXPECT_NE(ability, ePetAbilityType::Invalid); // Should have a valid ability when tamed - - bitStream.Read(interacting); - EXPECT_FALSE(interacting); // No interaction by default - - bitStream.Read(tamed); - EXPECT_TRUE(tamed); // Pet should be tamed - - if (tamed) { - bitStream.Read(owner); - EXPECT_EQ(owner, 0); // Default value since we didnt activate - } - - // Regular update should not include initial update data - EXPECT_EQ(bitStream.GetNumberOfUnreadBits(), 0); - - bitStream.Reset(); -} - // Test pet with interaction serialization -TEST_F(PetTest, PetWithInteractionSerialization) { +TEST_F(PetComponentTest, PetWithInteractionSerialization) { // Set up a pet with interaction LWOOBJID interactionID = 67890; petComponent->SetInteraction(interactionID); diff --git a/tests/dGameTests/dComponentsTests/RenderComponentTests.cpp b/tests/dGameTests/dComponentsTests/RenderComponentTests.cpp index aee1acfa..4c992d89 100644 --- a/tests/dGameTests/dComponentsTests/RenderComponentTests.cpp +++ b/tests/dGameTests/dComponentsTests/RenderComponentTests.cpp @@ -28,7 +28,7 @@ protected: /** * Test RenderComponent serialization with no effects */ -TEST_F(RenderComponentTest, RenderComponentSerializeNoEffectsTest) { +TEST_F(RenderComponentTest, SerializeNoEffectsTest) { bitStream.Reset(); // Test initial update with no effects @@ -43,7 +43,7 @@ TEST_F(RenderComponentTest, RenderComponentSerializeNoEffectsTest) { /** * Test RenderComponent serialization with single effect */ -TEST_F(RenderComponentTest, RenderComponentSerializeSingleEffectTest) { +TEST_F(RenderComponentTest, SerializeSingleEffectTest) { bitStream.Reset(); // Add a single effect @@ -109,7 +109,7 @@ TEST_F(RenderComponentTest, RenderComponentSerializeSingleEffectTest) { /** * Test RenderComponent serialization with multiple effects */ -TEST_F(RenderComponentTest, RenderComponentSerializeMultipleEffectsTest) { +TEST_F(RenderComponentTest, SerializeMultipleEffectsTest) { bitStream.Reset(); // Add multiple effects @@ -148,7 +148,7 @@ TEST_F(RenderComponentTest, RenderComponentSerializeMultipleEffectsTest) { /** * Test RenderComponent serialization with empty effect name */ -TEST_F(RenderComponentTest, RenderComponentSerializeEmptyEffectNameTest) { +TEST_F(RenderComponentTest, SerializeEmptyEffectNameTest) { bitStream.Reset(); // Add an effect with empty name @@ -172,7 +172,7 @@ TEST_F(RenderComponentTest, RenderComponentSerializeEmptyEffectNameTest) { /** * Test RenderComponent regular update serialization (should not serialize) */ -TEST_F(RenderComponentTest, RenderComponentSerializeRegularUpdateTest) { +TEST_F(RenderComponentTest, SerializeRegularUpdateTest) { bitStream.Reset(); // Add an effect first @@ -183,4 +183,4 @@ TEST_F(RenderComponentTest, RenderComponentSerializeRegularUpdateTest) { // BitStream should be empty for regular updates EXPECT_EQ(bitStream.GetNumberOfBitsUsed(), 0); -} \ No newline at end of file +} diff --git a/tests/dGameTests/dComponentsTests/ActivityComponentTests.cpp b/tests/dGameTests/dComponentsTests/ScriptedActivityComponentTests.cpp similarity index 72% rename from tests/dGameTests/dComponentsTests/ActivityComponentTests.cpp rename to tests/dGameTests/dComponentsTests/ScriptedActivityComponentTests.cpp index f7aa9a75..58ba44b4 100644 --- a/tests/dGameTests/dComponentsTests/ActivityComponentTests.cpp +++ b/tests/dGameTests/dComponentsTests/ScriptedActivityComponentTests.cpp @@ -6,10 +6,10 @@ #include "Entity.h" #include "eReplicaComponentType.h" -class ActivityTest : public GameDependenciesTest { +class ScriptedActivityComponentTest : public GameDependenciesTest { protected: Entity* baseEntity; - ScriptedActivityComponent* activityComponent; + ScriptedActivityComponent* scriptedActivityComponent; CBITSTREAM uint32_t flags = 0; void SetUp() override { @@ -17,7 +17,7 @@ protected: baseEntity = new Entity(15, GameDependenciesTest::info); // ScriptedActivityComponent is the concrete implementation of ActivityComponent // that provides the ComponentType required for the Entity template system - activityComponent = baseEntity->AddComponent(1); + scriptedActivityComponent = baseEntity->AddComponent(1); } void TearDown() override { @@ -29,12 +29,12 @@ protected: /** * Test serialization of an ActivityComponent with no players */ -TEST_F(ActivityTest, ActivityComponentSerializeNoPlayersTest) { +TEST_F(ScriptedActivityComponentTest, SerializeNoPlayersTest) { bitStream.Reset(); // Component should be dirty by default // Now we test a serialization for correctness. - activityComponent->Serialize(bitStream, false); + scriptedActivityComponent->Serialize(bitStream, false); // Read back the serialized data bool isDirty; @@ -49,7 +49,7 @@ TEST_F(ActivityTest, ActivityComponentSerializeNoPlayersTest) { /** * Test serialization of an ActivityComponent with players */ -TEST_F(ActivityTest, ActivityComponentSerializeWithPlayersTest) { +TEST_F(ScriptedActivityComponentTest, SerializeWithPlayersTest) { bitStream.Reset(); // Add some test players @@ -57,16 +57,16 @@ TEST_F(ActivityTest, ActivityComponentSerializeWithPlayersTest) { LWOOBJID player2 = 200; // Force dirty state for testing by adding and setting values - activityComponent->SetActivityValue(player1, 0, 10.5f); // Score - activityComponent->SetActivityValue(player1, 1, 25.0f); // Time - activityComponent->SetActivityValue(player1, 2, 3.0f); // Some other metric + scriptedActivityComponent->SetActivityValue(player1, 0, 10.5f); // Score + scriptedActivityComponent->SetActivityValue(player1, 1, 25.0f); // Time + scriptedActivityComponent->SetActivityValue(player1, 2, 3.0f); // Some other metric - activityComponent->SetActivityValue(player2, 0, 15.5f); // Score - activityComponent->SetActivityValue(player2, 1, 20.0f); // Time - activityComponent->SetActivityValue(player2, 2, 5.0f); // Some other metric + scriptedActivityComponent->SetActivityValue(player2, 0, 15.5f); // Score + scriptedActivityComponent->SetActivityValue(player2, 1, 20.0f); // Time + scriptedActivityComponent->SetActivityValue(player2, 2, 5.0f); // Some other metric // Now we test a serialization for correctness. - activityComponent->Serialize(bitStream, false); + scriptedActivityComponent->Serialize(bitStream, false); // Read back the serialized data bool isDirty; @@ -113,15 +113,15 @@ TEST_F(ActivityTest, ActivityComponentSerializeWithPlayersTest) { /** * Test serialization of an ActivityComponent during initial update */ -TEST_F(ActivityTest, ActivityComponentSerializeInitialUpdateTest) { +TEST_F(ScriptedActivityComponentTest, SerializeInitialUpdateTest) { bitStream.Reset(); // Add a test player and set a value LWOOBJID player1 = 100; - activityComponent->SetActivityValue(player1, 0, 10.5f); + scriptedActivityComponent->SetActivityValue(player1, 0, 10.5f); // Now we test a serialization for correctness with initial update. - activityComponent->Serialize(bitStream, true); + scriptedActivityComponent->Serialize(bitStream, true); // Read back the serialized data bool isDirty; @@ -149,19 +149,19 @@ TEST_F(ActivityTest, ActivityComponentSerializeInitialUpdateTest) { /** * Test serialization of an ActivityComponent when not dirty */ -TEST_F(ActivityTest, ActivityComponentSerializeNotDirtyTest) { +TEST_F(ScriptedActivityComponentTest, SerializeNotDirtyTest) { bitStream.Reset(); // Add a test player LWOOBJID player1 = 100; - activityComponent->AddActivityPlayerData(player1); + scriptedActivityComponent->AddActivityPlayerData(player1); // Do a serialization to reset the dirty flag - activityComponent->Serialize(bitStream, false); + scriptedActivityComponent->Serialize(bitStream, false); bitStream.Reset(); // Reset bitstream for the actual test // Now serialize again - should not be dirty this time - activityComponent->Serialize(bitStream, false); + scriptedActivityComponent->Serialize(bitStream, false); // Read back the serialized data bool isDirty; @@ -170,4 +170,4 @@ TEST_F(ActivityTest, ActivityComponentSerializeNotDirtyTest) { // No additional data should be written when not dirty EXPECT_EQ(bitStream.GetNumberOfUnreadBits(), 0); -} \ No newline at end of file +} diff --git a/tests/dGameTests/dComponentsTests/SimplePhysicsComponentTests.cpp b/tests/dGameTests/dComponentsTests/SimplePhysicsComponentTests.cpp index 0116dfcc..aa92fd93 100644 --- a/tests/dGameTests/dComponentsTests/SimplePhysicsComponentTests.cpp +++ b/tests/dGameTests/dComponentsTests/SimplePhysicsComponentTests.cpp @@ -7,7 +7,7 @@ #include "eReplicaComponentType.h" #include "eStateChangeType.h" -class SimplePhysicsTest : public GameDependenciesTest { +class SimplePhysicsComponentTest : public GameDependenciesTest { protected: std::unique_ptr baseEntity; SimplePhysicsComponent* simplePhysicsComponent; @@ -29,7 +29,7 @@ protected: } }; -TEST_F(SimplePhysicsTest, SimplePhysicsSerializeTest) { +TEST_F(SimplePhysicsComponentTest, SerializeTest) { simplePhysicsComponent->Serialize(bitStream, false); constexpr uint32_t sizeOfStream = 3 + BYTES_TO_BITS(3 * sizeof(NiPoint3)) + BYTES_TO_BITS(1 * sizeof(NiQuaternion)) + 1 * BYTES_TO_BITS(sizeof(uint32_t)); ASSERT_EQ(bitStream.GetNumberOfBitsUsed(), sizeOfStream); @@ -76,7 +76,7 @@ TEST_F(SimplePhysicsTest, SimplePhysicsSerializeTest) { ASSERT_EQ(rotation, NiQuaternion(1.0f, 2.0f, 3.0f, 4.0f)); } -TEST_F(SimplePhysicsTest, SimplePhysicsConstructionTest) { +TEST_F(SimplePhysicsComponentTest, ConstructionTest) { simplePhysicsComponent->Serialize(bitStream, true); constexpr uint32_t sizeOfStream = 4 + BYTES_TO_BITS(1 * sizeof(int32_t)) + BYTES_TO_BITS(3 * sizeof(NiPoint3)) + BYTES_TO_BITS(1 * sizeof(NiQuaternion)) + 1 * BYTES_TO_BITS(sizeof(uint32_t)); ASSERT_EQ(bitStream.GetNumberOfBitsUsed(), sizeOfStream); @@ -131,7 +131,7 @@ TEST_F(SimplePhysicsTest, SimplePhysicsConstructionTest) { ASSERT_EQ(rotation, NiQuaternion(1.0f, 2.0f, 3.0f, 4.0f)); } -TEST_F(SimplePhysicsTest, SimplePhysicsGettersAndSettersTest) { +TEST_F(SimplePhysicsComponentTest, GettersAndSettersTest) { ASSERT_EQ(simplePhysicsComponent->GetClimabbleType(), eClimbableType::CLIMBABLE_TYPE_WALL); ASSERT_EQ(simplePhysicsComponent->GetPosition(), NiPoint3(1.0f, 2.0f, 3.0f)); ASSERT_EQ(simplePhysicsComponent->GetRotation(), NiQuaternion(1.0f, 2.0f, 3.0f, 4.0f)); diff --git a/tests/dGameTests/dComponentsTests/SkillComponentTests.cpp b/tests/dGameTests/dComponentsTests/SkillComponentTests.cpp index 24b43933..270644f6 100644 --- a/tests/dGameTests/dComponentsTests/SkillComponentTests.cpp +++ b/tests/dGameTests/dComponentsTests/SkillComponentTests.cpp @@ -99,4 +99,4 @@ TEST_F(SkillComponentTest, SerializeAfterSkillUse) { bool skillFlag; ASSERT_TRUE(bitStream.Read(skillFlag)); EXPECT_FALSE(skillFlag); // Still writes 0 regardless of internal state -} \ No newline at end of file +} diff --git a/tests/dGameTests/dComponentsTests/SwitchComponentTests.cpp b/tests/dGameTests/dComponentsTests/SwitchComponentTests.cpp index ab2787bd..223fdf33 100644 --- a/tests/dGameTests/dComponentsTests/SwitchComponentTests.cpp +++ b/tests/dGameTests/dComponentsTests/SwitchComponentTests.cpp @@ -28,7 +28,7 @@ protected: /** * Test SwitchComponent serialization with default inactive state */ -TEST_F(SwitchComponentTest, SwitchComponentSerializeInactiveTest) { +TEST_F(SwitchComponentTest, SerializeInactiveTest) { bitStream.Reset(); // Test initial update with default inactive state @@ -43,7 +43,7 @@ TEST_F(SwitchComponentTest, SwitchComponentSerializeInactiveTest) { /** * Test SwitchComponent serialization with active state */ -TEST_F(SwitchComponentTest, SwitchComponentSerializeActiveTest) { +TEST_F(SwitchComponentTest, SerializeActiveTest) { bitStream.Reset(); // Set switch to active state @@ -59,7 +59,7 @@ TEST_F(SwitchComponentTest, SwitchComponentSerializeActiveTest) { /** * Test SwitchComponent serialization state changes */ -TEST_F(SwitchComponentTest, SwitchComponentSerializeStateChangeTest) { +TEST_F(SwitchComponentTest, SerializeStateChangeTest) { bitStream.Reset(); // Start inactive, then activate @@ -91,7 +91,7 @@ TEST_F(SwitchComponentTest, SwitchComponentSerializeStateChangeTest) { /** * Test SwitchComponent serialization regular update behavior */ -TEST_F(SwitchComponentTest, SwitchComponentSerializeRegularUpdateTest) { +TEST_F(SwitchComponentTest, SerializeRegularUpdateTest) { bitStream.Reset(); // Set to active state @@ -107,4 +107,4 @@ TEST_F(SwitchComponentTest, SwitchComponentSerializeRegularUpdateTest) { // SwitchComponent always serializes the active state regardless of update type EXPECT_EQ(bitStream.GetNumberOfBitsUsed(), 1); // Should have exactly 1 bit used -} \ No newline at end of file +} diff --git a/tests/dGameTests/dComponentsTests/TriggerComponentTests.cpp b/tests/dGameTests/dComponentsTests/TriggerComponentTests.cpp deleted file mode 100644 index 6efed6c1..00000000 --- a/tests/dGameTests/dComponentsTests/TriggerComponentTests.cpp +++ /dev/null @@ -1,42 +0,0 @@ -#include - -#include "TriggerComponent.h" -#include "Entity.h" -#include "BitStream.h" -#include "GameDependencies.h" - -class TriggerComponentTest : public GameDependenciesTest { -protected: -}; - -/** - * Test TriggerComponent serialization for initial update - */ -TEST_F(TriggerComponentTest, SerializeInitialUpdate) { - Entity testEntity(15, info); - TriggerComponent triggerComponent(&testEntity, "0:0"); // Valid triggerInfo format - - RakNet::BitStream bitStream; - triggerComponent.Serialize(bitStream, true); - - bitStream.ResetReadPointer(); - - // TriggerComponent doesn't override Serialize, so it writes nothing - EXPECT_EQ(bitStream.GetNumberOfBitsUsed(), 0); -} - -/** - * Test TriggerComponent serialization for regular update - */ -TEST_F(TriggerComponentTest, SerializeRegularUpdate) { - Entity testEntity(15, info); - TriggerComponent triggerComponent(&testEntity, "0:0"); // Valid triggerInfo format - - RakNet::BitStream bitStream; - triggerComponent.Serialize(bitStream, false); - - bitStream.ResetReadPointer(); - - // TriggerComponent doesn't override Serialize, so it writes nothing - EXPECT_EQ(bitStream.GetNumberOfBitsUsed(), 0); -} \ No newline at end of file