Tiny refactoring of PickupSpawnTest. Updated and fixed HealthSystemTest.
This commit is contained in:
@@ -55,19 +55,14 @@ GameHealthSystemTest::GameHealthSystemTest()
|
|||||||
//create entity which has transform,player,model,health in it. i.e. is a player
|
//create entity which has transform,player,model,health in it. i.e. is a player
|
||||||
EntityID playerID = m_World->CreateEntity();
|
EntityID playerID = m_World->CreateEntity();
|
||||||
ComponentWrapper player = m_World->AttachComponent(playerID, "Player");
|
ComponentWrapper player = m_World->AttachComponent(playerID, "Player");
|
||||||
ComponentWrapper health = m_World->AttachComponent(playerID, "Health");
|
ComponentWrapper& health = m_World->AttachComponent(playerID, "Health");
|
||||||
healthsID = playerID;
|
health["Health"] = 100.0;
|
||||||
|
m_PlayersID = playerID;
|
||||||
|
|
||||||
EntityID playerID2 = m_World->CreateEntity();
|
EntityID playerID2 = m_World->CreateEntity();
|
||||||
ComponentWrapper player2 = m_World->AttachComponent(playerID2, "Player");
|
ComponentWrapper player2 = m_World->AttachComponent(playerID2, "Player");
|
||||||
ComponentWrapper health2 = m_World->AttachComponent(playerID2, "Health");
|
ComponentWrapper health2 = m_World->AttachComponent(playerID2, "Health");
|
||||||
|
|
||||||
//heal player with 40
|
|
||||||
Events::PlayerHealthPickup e3;
|
|
||||||
e3.HealthAmount = 40.0f;
|
|
||||||
e3.Player = EntityWrapper(m_World, player.EntityID);
|
|
||||||
m_EventBroker->Publish(e3);
|
|
||||||
|
|
||||||
//damage player with 50
|
//damage player with 50
|
||||||
Events::PlayerDamage e;
|
Events::PlayerDamage e;
|
||||||
e.Damage = 50.0f;
|
e.Damage = 50.0f;
|
||||||
@@ -104,8 +99,17 @@ void GameHealthSystemTest::Tick()
|
|||||||
m_EventBroker->Swap();
|
m_EventBroker->Swap();
|
||||||
m_EventBroker->Clear();
|
m_EventBroker->Clear();
|
||||||
|
|
||||||
//if health reaches 90 then we know the test has succeeded (start with 100hp, remove 50hp, add 40hp)
|
double currentHealth = (double)m_World->GetComponent(m_PlayersID, "Health")["Health"];
|
||||||
double currentHealth = (double)m_World->GetComponent(healthsID, "Health")["Health"];
|
//if players health reach 50 means he got damaged by 50
|
||||||
if (currentHealth == 90)
|
if (currentHealth == 50) {
|
||||||
|
m_TestStage1Success = true;
|
||||||
|
//heal player with 40
|
||||||
|
Events::PlayerHealthPickup e3;
|
||||||
|
e3.HealthAmount = 40.0f;
|
||||||
|
e3.Player = EntityWrapper(m_World, m_PlayersID);
|
||||||
|
m_EventBroker->Publish(e3);
|
||||||
|
}
|
||||||
|
if (m_TestStage1Success && currentHealth == 90.0f) {
|
||||||
TestSucceeded = true;
|
TestSucceeded = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,9 @@ private:
|
|||||||
EventBroker* m_EventBroker;
|
EventBroker* m_EventBroker;
|
||||||
World* m_World;
|
World* m_World;
|
||||||
SystemPipeline* m_SystemPipeline;
|
SystemPipeline* m_SystemPipeline;
|
||||||
int healthsID;
|
int m_PlayersID;
|
||||||
|
bool m_TestStage1Success = false;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ using boost::unit_test_framework::test_case;
|
|||||||
|
|
||||||
#include "PickupSpawnTest.h"
|
#include "PickupSpawnTest.h"
|
||||||
|
|
||||||
|
|
||||||
BOOST_AUTO_TEST_SUITE(PickupSpawnTestSuite)
|
BOOST_AUTO_TEST_SUITE(PickupSpawnTestSuite)
|
||||||
|
|
||||||
//dont use the same name as the classname in test cases...
|
//dont use the same name as the classname in test cases...
|
||||||
@@ -73,15 +72,15 @@ bool PickupSpawnTest::OnHealthPickup(Events::PlayerHealthPickup& e) {
|
|||||||
//very that the event has the correct healthgain number and playerid
|
//very that the event has the correct healthgain number and playerid
|
||||||
if (m_RunTestNumber == 1) {
|
if (m_RunTestNumber == 1) {
|
||||||
if (e.HealthAmount == 22.0 && e.Player.ID == m_PlayerID) {
|
if (e.HealthAmount == 22.0 && e.Player.ID == m_PlayerID) {
|
||||||
testStage1Success = true;
|
m_TestStage1Success = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (m_RunTestNumber == 2) {
|
if (m_RunTestNumber == 2) {
|
||||||
testStage1Success = false;
|
m_TestStage1Success = false;
|
||||||
}
|
}
|
||||||
if (m_RunTestNumber == 3) {
|
if (m_RunTestNumber == 3) {
|
||||||
if (e.HealthAmount == 50.0 && e.Player.ID == m_PlayerID) {
|
if (e.HealthAmount == 50.0 && e.Player.ID == m_PlayerID) {
|
||||||
testStage1Success = true;
|
m_TestStage1Success = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@@ -90,22 +89,24 @@ bool PickupSpawnTest::OnPickupSpawned(Events::PickupSpawned& e) {
|
|||||||
//verify that the newly spawned pickup has the same variable values as the original one
|
//verify that the newly spawned pickup has the same variable values as the original one
|
||||||
if (m_RunTestNumber == 1) {
|
if (m_RunTestNumber == 1) {
|
||||||
if ((double)e.Pickup["HealthPickup"]["HealthGain"] == 22.0 && (double)e.Pickup["HealthPickup"]["RespawnTimer"] == 2.0) {
|
if ((double)e.Pickup["HealthPickup"]["HealthGain"] == 22.0 && (double)e.Pickup["HealthPickup"]["RespawnTimer"] == 2.0) {
|
||||||
testStage2Success = true;
|
m_TestStage2Success = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (m_RunTestNumber == 2) {
|
if (m_RunTestNumber == 2) {
|
||||||
testStage2Success = false;
|
m_TestStage2Success = false;
|
||||||
}
|
}
|
||||||
if (m_RunTestNumber == 3) {
|
if (m_RunTestNumber == 3) {
|
||||||
testStage2Success = false;
|
m_TestStage2Success = false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PickupSpawnTest::TestSetup(int testNumber)
|
void PickupSpawnTest::TestSetup(int testNumber)
|
||||||
{
|
{
|
||||||
//cant use switch here, since each case might initialize different variables
|
switch (m_RunTestNumber)
|
||||||
if (m_RunTestNumber == 1) {
|
{
|
||||||
|
case 1:
|
||||||
|
{
|
||||||
//PickupSpawnTest_HealthPickupRespawns_PlayerHealthPickupEventTriggers
|
//PickupSpawnTest_HealthPickupRespawns_PlayerHealthPickupEventTriggers
|
||||||
auto& healthPickupEW = EntityWrapper(m_World, m_HealthPickupID);
|
auto& healthPickupEW = EntityWrapper(m_World, m_HealthPickupID);
|
||||||
healthPickupEW["HealthPickup"]["RespawnTimer"] = 2.0;
|
healthPickupEW["HealthPickup"]["RespawnTimer"] = 2.0;
|
||||||
@@ -115,11 +116,10 @@ void PickupSpawnTest::TestSetup(int testNumber)
|
|||||||
auto& health = m_World->AttachComponent(m_PlayerID, "Health");
|
auto& health = m_World->AttachComponent(m_PlayerID, "Health");
|
||||||
health["Health"] = 20.0;
|
health["Health"] = 20.0;
|
||||||
health["MaxHealth"] = 100.0;
|
health["MaxHealth"] = 100.0;
|
||||||
|
|
||||||
Events::TriggerTouch eTriggerTouch;
|
|
||||||
DoTouchEvent(m_PlayerID, m_HealthPickupID);
|
|
||||||
}
|
}
|
||||||
if (m_RunTestNumber == 2) {
|
break;
|
||||||
|
case 2:
|
||||||
|
{
|
||||||
//PickupSpawnTest_APlayerAtMaxHealth_CantTakeHealthPickup
|
//PickupSpawnTest_APlayerAtMaxHealth_CantTakeHealthPickup
|
||||||
auto& healthPickupEW = EntityWrapper(m_World, m_HealthPickupID);
|
auto& healthPickupEW = EntityWrapper(m_World, m_HealthPickupID);
|
||||||
healthPickupEW["HealthPickup"]["RespawnTimer"] = 1.0;
|
healthPickupEW["HealthPickup"]["RespawnTimer"] = 1.0;
|
||||||
@@ -129,11 +129,10 @@ void PickupSpawnTest::TestSetup(int testNumber)
|
|||||||
auto& health = m_World->AttachComponent(m_PlayerID, "Health");
|
auto& health = m_World->AttachComponent(m_PlayerID, "Health");
|
||||||
health["Health"] = 100.0;
|
health["Health"] = 100.0;
|
||||||
health["MaxHealth"] = 100.0;
|
health["MaxHealth"] = 100.0;
|
||||||
|
|
||||||
Events::TriggerTouch eTriggerTouch;
|
|
||||||
DoTouchEvent(m_PlayerID, m_HealthPickupID);
|
|
||||||
}
|
}
|
||||||
if (m_RunTestNumber == 3) {
|
break;
|
||||||
|
case 3:
|
||||||
|
{
|
||||||
//PickupSpawnTest_APickupCanRespawnSlowly
|
//PickupSpawnTest_APickupCanRespawnSlowly
|
||||||
auto& healthPickupEW = EntityWrapper(m_World, m_HealthPickupID);
|
auto& healthPickupEW = EntityWrapper(m_World, m_HealthPickupID);
|
||||||
healthPickupEW["HealthPickup"]["RespawnTimer"] = 100.0;
|
healthPickupEW["HealthPickup"]["RespawnTimer"] = 100.0;
|
||||||
@@ -143,10 +142,14 @@ void PickupSpawnTest::TestSetup(int testNumber)
|
|||||||
auto& health = m_World->AttachComponent(m_PlayerID, "Health");
|
auto& health = m_World->AttachComponent(m_PlayerID, "Health");
|
||||||
health["Health"] = 1.0;
|
health["Health"] = 1.0;
|
||||||
health["MaxHealth"] = 100.0;
|
health["MaxHealth"] = 100.0;
|
||||||
|
|
||||||
Events::TriggerTouch eTriggerTouch;
|
|
||||||
DoTouchEvent(m_PlayerID, m_HealthPickupID);
|
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
//do the triggerTouch event to get the pickupSpawnTest started
|
||||||
|
Events::TriggerTouch eTriggerTouch;
|
||||||
|
DoTouchEvent(m_PlayerID, m_HealthPickupID);
|
||||||
}
|
}
|
||||||
|
|
||||||
//generic stuff
|
//generic stuff
|
||||||
@@ -164,16 +167,16 @@ void PickupSpawnTest::Tick()
|
|||||||
m_EventBroker->Clear();
|
m_EventBroker->Clear();
|
||||||
|
|
||||||
//verify that healthgain event has been published and pickup has respawned
|
//verify that healthgain event has been published and pickup has respawned
|
||||||
if (m_RunTestNumber == 1 && testStage1Success && testStage2Success) {
|
if (m_RunTestNumber == 1 && m_TestStage1Success && m_TestStage2Success) {
|
||||||
m_TestSucceeded = true;
|
TestSucceeded = true;
|
||||||
}
|
}
|
||||||
//verify that no healthgain event has been published and that no pickup has respawned
|
//verify that no healthgain event has been published and that no pickup has respawned
|
||||||
if (m_NumLoops > 90 && m_RunTestNumber == 2 && !testStage1Success && !testStage2Success) {
|
if (NumLoops > 90 && m_RunTestNumber == 2 && !m_TestStage1Success && !m_TestStage2Success) {
|
||||||
m_TestSucceeded = true;
|
TestSucceeded = true;
|
||||||
}
|
}
|
||||||
//3: verify that the pickup hasnt spawned
|
//3: verify that the pickup hasnt spawned
|
||||||
if (m_NumLoops > 90 && m_RunTestNumber == 3 && testStage1Success && !testStage2Success) {
|
if (NumLoops > 90 && m_RunTestNumber == 3 && m_TestStage1Success && !m_TestStage2Success) {
|
||||||
m_TestSucceeded = true;
|
TestSucceeded = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bool PickupSpawnTest::Game_Loop_OneHundredTimes() {
|
bool PickupSpawnTest::Game_Loop_OneHundredTimes() {
|
||||||
@@ -182,8 +185,8 @@ bool PickupSpawnTest::Game_Loop_OneHundredTimes() {
|
|||||||
bool success = false;
|
bool success = false;
|
||||||
while (loops > 0) {
|
while (loops > 0) {
|
||||||
Tick();
|
Tick();
|
||||||
m_NumLoops++;
|
NumLoops++;
|
||||||
if (m_TestSucceeded) {
|
if (TestSucceeded) {
|
||||||
success = true;
|
success = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,8 +42,8 @@ public:
|
|||||||
~PickupSpawnTest();
|
~PickupSpawnTest();
|
||||||
|
|
||||||
void Tick();
|
void Tick();
|
||||||
bool m_TestSucceeded = false;
|
bool TestSucceeded = false;
|
||||||
int m_NumLoops = 0;
|
int NumLoops = 0;
|
||||||
|
|
||||||
bool Game_Loop_OneHundredTimes();
|
bool Game_Loop_OneHundredTimes();
|
||||||
|
|
||||||
@@ -64,8 +64,8 @@ private:
|
|||||||
EventRelay<PickupSpawnSystem, Events::PickupSpawned> m_PS;
|
EventRelay<PickupSpawnSystem, Events::PickupSpawned> m_PS;
|
||||||
bool OnPickupSpawned(Events::PickupSpawned& e);
|
bool OnPickupSpawned(Events::PickupSpawned& e);
|
||||||
|
|
||||||
bool testStage1Success = false;
|
bool m_TestStage1Success = false;
|
||||||
bool testStage2Success = false;
|
bool m_TestStage2Success = false;
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user