mirror of
				https://github.com/DarkflameUniverse/DarkflameServer.git
				synced 2025-10-31 20:52:01 +00:00 
			
		
		
		
	Add CollectibleComponent and LUPExhibitComponent serialization tests
Co-authored-by: aronwk-aaron <26027722+aronwk-aaron@users.noreply.github.com>
This commit is contained in:
		| @@ -2,8 +2,10 @@ set(DCOMPONENTS_TESTS | ||||
| 	"ActivityComponentTests.cpp" | ||||
| 	"BaseCombatAIComponentTests.cpp" | ||||
| 	"BouncerComponentTests.cpp" | ||||
| 	"CollectibleComponentTests.cpp" | ||||
| 	"DestroyableComponentTests.cpp" | ||||
| 	"HavokVehiclePhysicsComponentTests.cpp" | ||||
| 	"LUPExhibitComponentTests.cpp" | ||||
| 	"ModelComponentTests.cpp" | ||||
| 	"MovingPlatformComponentTests.cpp" | ||||
| 	"PetComponentTests.cpp" | ||||
|   | ||||
							
								
								
									
										106
									
								
								tests/dGameTests/dComponentsTests/CollectibleComponentTests.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										106
									
								
								tests/dGameTests/dComponentsTests/CollectibleComponentTests.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,106 @@ | ||||
| #include "GameDependencies.h" | ||||
| #include <gtest/gtest.h> | ||||
|  | ||||
| #include "BitStream.h" | ||||
| #include "CollectibleComponent.h" | ||||
| #include "Entity.h" | ||||
| #include "eReplicaComponentType.h" | ||||
|  | ||||
| class CollectibleTest : public GameDependenciesTest { | ||||
| protected: | ||||
| 	Entity* baseEntity; | ||||
| 	CollectibleComponent* collectibleComponent; | ||||
| 	CBITSTREAM | ||||
| 	uint32_t flags = 0; | ||||
| 	void SetUp() override { | ||||
| 		SetUpDependencies(); | ||||
| 		baseEntity = new Entity(15, GameDependenciesTest::info); | ||||
| 		collectibleComponent = baseEntity->AddComponent<CollectibleComponent>(123); // Test with collectibleId = 123 | ||||
| 	} | ||||
|  | ||||
| 	void TearDown() override { | ||||
| 		delete baseEntity; | ||||
| 		TearDownDependencies(); | ||||
| 	} | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * Test basic CollectibleComponent serialization | ||||
|  */ | ||||
| TEST_F(CollectibleTest, CollectibleComponentSerializeBasicTest) { | ||||
| 	bitStream.Reset(); | ||||
| 	 | ||||
| 	// Serialize the collectible component | ||||
| 	collectibleComponent->Serialize(bitStream, true); | ||||
| 	 | ||||
| 	// Read back the serialized data | ||||
| 	int16_t collectibleId; | ||||
| 	bitStream.Read(collectibleId); | ||||
| 	EXPECT_EQ(collectibleId, 123); // Should match the ID we set | ||||
| 	 | ||||
| 	// Verify getter | ||||
| 	EXPECT_EQ(collectibleComponent->GetCollectibleId(), 123); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Test CollectibleComponent serialization with construction flag true | ||||
|  */ | ||||
| TEST_F(CollectibleTest, CollectibleComponentSerializeConstructionTest) { | ||||
| 	bitStream.Reset(); | ||||
| 	 | ||||
| 	// Serialize with construction = true | ||||
| 	collectibleComponent->Serialize(bitStream, true); | ||||
| 	 | ||||
| 	// Read back the serialized data | ||||
| 	int16_t collectibleId; | ||||
| 	bitStream.Read(collectibleId); | ||||
| 	EXPECT_EQ(collectibleId, 123); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Test CollectibleComponent serialization with construction flag false | ||||
|  */ | ||||
| TEST_F(CollectibleTest, CollectibleComponentSerializeRegularUpdateTest) { | ||||
| 	bitStream.Reset(); | ||||
| 	 | ||||
| 	// Serialize with construction = false | ||||
| 	collectibleComponent->Serialize(bitStream, false); | ||||
| 	 | ||||
| 	// Read back the serialized data | ||||
| 	int16_t collectibleId; | ||||
| 	bitStream.Read(collectibleId); | ||||
| 	EXPECT_EQ(collectibleId, 123); // Should still serialize the same way | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Test CollectibleComponent with different collectible IDs | ||||
|  */ | ||||
| TEST_F(CollectibleTest, CollectibleComponentDifferentIDsTest) { | ||||
| 	// Create another entity with a different collectible ID | ||||
| 	Entity* anotherEntity = new Entity(16, GameDependenciesTest::info); | ||||
| 	CollectibleComponent* anotherCollectible = anotherEntity->AddComponent<CollectibleComponent>(456); | ||||
| 	 | ||||
| 	bitStream.Reset(); | ||||
| 	 | ||||
| 	// Serialize the first collectible | ||||
| 	collectibleComponent->Serialize(bitStream, true); | ||||
| 	 | ||||
| 	int16_t firstId; | ||||
| 	bitStream.Read(firstId); | ||||
| 	EXPECT_EQ(firstId, 123); | ||||
| 	 | ||||
| 	bitStream.Reset(); | ||||
| 	 | ||||
| 	// Serialize the second collectible | ||||
| 	anotherCollectible->Serialize(bitStream, true); | ||||
| 	 | ||||
| 	int16_t secondId; | ||||
| 	bitStream.Read(secondId); | ||||
| 	EXPECT_EQ(secondId, 456); | ||||
| 	 | ||||
| 	// Verify getters | ||||
| 	EXPECT_EQ(collectibleComponent->GetCollectibleId(), 123); | ||||
| 	EXPECT_EQ(anotherCollectible->GetCollectibleId(), 456); | ||||
| 	 | ||||
| 	delete anotherEntity; | ||||
| } | ||||
							
								
								
									
										120
									
								
								tests/dGameTests/dComponentsTests/LUPExhibitComponentTests.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										120
									
								
								tests/dGameTests/dComponentsTests/LUPExhibitComponentTests.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,120 @@ | ||||
| #include "GameDependencies.h" | ||||
| #include <gtest/gtest.h> | ||||
|  | ||||
| #include "BitStream.h" | ||||
| #include "LUPExhibitComponent.h" | ||||
| #include "Entity.h" | ||||
| #include "eReplicaComponentType.h" | ||||
|  | ||||
| class LUPExhibitTest : public GameDependenciesTest { | ||||
| protected: | ||||
| 	Entity* baseEntity; | ||||
| 	LUPExhibitComponent* lupExhibitComponent; | ||||
| 	CBITSTREAM | ||||
| 	uint32_t flags = 0; | ||||
| 	void SetUp() override { | ||||
| 		SetUpDependencies(); | ||||
| 		baseEntity = new Entity(15, GameDependenciesTest::info); | ||||
| 		lupExhibitComponent = baseEntity->AddComponent<LUPExhibitComponent>(); | ||||
| 	} | ||||
|  | ||||
| 	void TearDown() override { | ||||
| 		delete baseEntity; | ||||
| 		TearDownDependencies(); | ||||
| 	} | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * Test LUPExhibitComponent initial serialization | ||||
|  */ | ||||
| TEST_F(LUPExhibitTest, LUPExhibitComponentSerializeInitialUpdateTest) { | ||||
| 	bitStream.Reset(); | ||||
| 	 | ||||
| 	// Component should be dirty by default | ||||
| 	lupExhibitComponent->Serialize(bitStream, true); | ||||
| 	 | ||||
| 	// Read back the serialized data | ||||
| 	bool isDirty; | ||||
| 	bitStream.Read(isDirty); | ||||
| 	EXPECT_EQ(isDirty, true); // Should be dirty by default | ||||
| 	 | ||||
| 	LOT exhibitLOT; | ||||
| 	bitStream.Read(exhibitLOT); | ||||
| 	EXPECT_EQ(exhibitLOT, 11121); // First exhibit in the array | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Test LUPExhibitComponent regular update when not dirty | ||||
|  */ | ||||
| TEST_F(LUPExhibitTest, LUPExhibitComponentSerializeNotDirtyTest) { | ||||
| 	bitStream.Reset(); | ||||
| 	 | ||||
| 	// First serialize to clear dirty flag | ||||
| 	lupExhibitComponent->Serialize(bitStream, false); // This clears the dirty flag | ||||
| 	bitStream.Reset(); | ||||
| 	 | ||||
| 	// Now serialize again - should not be dirty | ||||
| 	lupExhibitComponent->Serialize(bitStream, false); | ||||
| 	 | ||||
| 	bool isDirty; | ||||
| 	bitStream.Read(isDirty); | ||||
| 	EXPECT_EQ(isDirty, false); // Should not be dirty after previous serialization | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Test LUPExhibitComponent cycling through exhibits | ||||
|  */ | ||||
| TEST_F(LUPExhibitTest, LUPExhibitComponentNextExhibitTest) { | ||||
| 	bitStream.Reset(); | ||||
| 	 | ||||
| 	// Get first exhibit | ||||
| 	lupExhibitComponent->Serialize(bitStream, true); | ||||
| 	 | ||||
| 	bool isDirty; | ||||
| 	bitStream.Read(isDirty); | ||||
| 	EXPECT_EQ(isDirty, true); | ||||
| 	 | ||||
| 	LOT firstExhibit; | ||||
| 	bitStream.Read(firstExhibit); | ||||
| 	EXPECT_EQ(firstExhibit, 11121); // First exhibit | ||||
| 	 | ||||
| 	bitStream.Reset(); | ||||
| 	 | ||||
| 	// Move to next exhibit | ||||
| 	lupExhibitComponent->NextLUPExhibit(); | ||||
| 	lupExhibitComponent->Serialize(bitStream, false); | ||||
| 	 | ||||
| 	bitStream.Read(isDirty); | ||||
| 	EXPECT_EQ(isDirty, true); // Should be dirty after NextLUPExhibit | ||||
| 	 | ||||
| 	LOT secondExhibit; | ||||
| 	bitStream.Read(secondExhibit); | ||||
| 	EXPECT_EQ(secondExhibit, 11295); // Second exhibit | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Test LUPExhibitComponent cycling through all exhibits and wrapping around | ||||
|  */ | ||||
| TEST_F(LUPExhibitTest, LUPExhibitComponentCycleAllExhibitsTest) { | ||||
| 	bitStream.Reset(); | ||||
| 	 | ||||
| 	// Expected exhibit sequence: 11121, 11295, 11423, 11979, then back to 11121 | ||||
| 	std::array<LOT, 5> expectedLOTs = { 11121, 11295, 11423, 11979, 11121 }; | ||||
| 	 | ||||
| 	for (size_t i = 0; i < expectedLOTs.size(); ++i) { | ||||
| 		if (i > 0) { | ||||
| 			lupExhibitComponent->NextLUPExhibit(); | ||||
| 		} | ||||
| 		 | ||||
| 		bitStream.Reset(); | ||||
| 		lupExhibitComponent->Serialize(bitStream, false); | ||||
| 		 | ||||
| 		bool isDirty; | ||||
| 		bitStream.Read(isDirty); | ||||
| 		EXPECT_EQ(isDirty, true); | ||||
| 		 | ||||
| 		LOT exhibitLOT; | ||||
| 		bitStream.Read(exhibitLOT); | ||||
| 		EXPECT_EQ(exhibitLOT, expectedLOTs[i]) << "Exhibit " << i << " should be " << expectedLOTs[i]; | ||||
| 	} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 copilot-swe-agent[bot]
					copilot-swe-agent[bot]