AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
GameObjectSummonGroupTest.cpp File Reference
#include "ObjectMgr.h"
#include "SmartScriptMgr.h"
#include "TemporarySummon.h"
#include "WorldMock.h"
#include "gtest/gtest.h"

Go to the source code of this file.

Classes

class  GameObjectSummonGroupTest
 

Functions

 TEST_F (GameObjectSummonGroupTest, DataStructStoresFields)
 
 TEST_F (GameObjectSummonGroupTest, QuaternionIdentity)
 
 TEST_F (GameObjectSummonGroupTest, AccessorReturnsNullForMissing)
 
 TEST_F (GameObjectSummonGroupTest, AccessorReturnsNullForAllTypes)
 
 TEST_F (GameObjectSummonGroupTest, DifferentGroupsAreIndependent)
 
 TEST_F (GameObjectSummonGroupTest, SmartActionEnumValue)
 
 TEST_F (GameObjectSummonGroupTest, SmartActionUnionSize)
 
 TEST_F (GameObjectSummonGroupTest, TempSummonGroupKeyOrdering)
 
 TEST_F (GameObjectSummonGroupTest, SummonerTypeValues)
 

Function Documentation

◆ TEST_F() [1/9]

TEST_F ( GameObjectSummonGroupTest  ,
AccessorReturnsNullForAllTypes   
)
84{
85 auto const* r1 = sObjectMgr->GetGameObjectSummonGroup(
86 99999, SUMMONER_TYPE_CREATURE, 0);
87 auto const* r2 = sObjectMgr->GetGameObjectSummonGroup(
88 99999, SUMMONER_TYPE_GAMEOBJECT, 0);
89 auto const* r3 = sObjectMgr->GetGameObjectSummonGroup(
90 99999, SUMMONER_TYPE_MAP, 0);
91
92 EXPECT_EQ(r1, nullptr);
93 EXPECT_EQ(r2, nullptr);
94 EXPECT_EQ(r3, nullptr);
95}
#define sObjectMgr
Definition ObjectMgr.h:1712
@ SUMMONER_TYPE_MAP
Definition TemporarySummon.h:28
@ SUMMONER_TYPE_CREATURE
Definition TemporarySummon.h:26
@ SUMMONER_TYPE_GAMEOBJECT
Definition TemporarySummon.h:27

References sObjectMgr, SUMMONER_TYPE_CREATURE, SUMMONER_TYPE_GAMEOBJECT, and SUMMONER_TYPE_MAP.

◆ TEST_F() [2/9]

TEST_F ( GameObjectSummonGroupTest  ,
AccessorReturnsNullForMissing   
)
77{
78 auto const* result = sObjectMgr->GetGameObjectSummonGroup(
79 99999, SUMMONER_TYPE_CREATURE, 0);
80 EXPECT_EQ(result, nullptr);
81}

References sObjectMgr, and SUMMONER_TYPE_CREATURE.

◆ TEST_F() [3/9]

TEST_F ( GameObjectSummonGroupTest  ,
DataStructStoresFields   
)
46{
48 data.entry = 2332;
49 data.pos.Relocate(-14652.38f, 146.51f, 3.50f, 0.35f);
50 data.rot = G3D::Quat(0.0f, 0.0f, 0.17f, 0.98f);
51 data.respawnTime = 120;
52
53 EXPECT_EQ(data.entry, 2332u);
54 EXPECT_FLOAT_EQ(data.pos.GetPositionX(), -14652.38f);
55 EXPECT_FLOAT_EQ(data.pos.GetPositionY(), 146.51f);
56 EXPECT_FLOAT_EQ(data.pos.GetPositionZ(), 3.50f);
57 EXPECT_FLOAT_EQ(data.pos.GetOrientation(), 0.35f);
58 EXPECT_FLOAT_EQ(data.rot.x, 0.0f);
59 EXPECT_FLOAT_EQ(data.rot.y, 0.0f);
60 EXPECT_FLOAT_EQ(data.rot.z, 0.17f);
61 EXPECT_FLOAT_EQ(data.rot.w, 0.98f);
62 EXPECT_EQ(data.respawnTime, 120u);
63}
Stores data for temp gameobject summons.
Definition TemporarySummon.h:42
G3D::Quat rot
Definition TemporarySummon.h:45
uint32 respawnTime
Duration in seconds; passed to SummonGameObject's respawnTime parameter.
Definition TemporarySummon.h:46
uint32 entry
Definition TemporarySummon.h:43
Position pos
Definition TemporarySummon.h:44
float GetPositionZ() const
Definition Position.h:123
float GetOrientation() const
Definition Position.h:124
float GetPositionX() const
Definition Position.h:121
float GetPositionY() const
Definition Position.h:122
void Relocate(float x, float y)
Definition Position.h:77

References GameObjectSummonData::entry, Position::GetOrientation(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), GameObjectSummonData::pos, Position::Relocate(), GameObjectSummonData::respawnTime, and GameObjectSummonData::rot.

◆ TEST_F() [4/9]

TEST_F ( GameObjectSummonGroupTest  ,
DifferentGroupsAreIndependent   
)
98{
99 auto const* g0 = sObjectMgr->GetGameObjectSummonGroup(
100 2289, SUMMONER_TYPE_GAMEOBJECT, 0);
101 auto const* g1 = sObjectMgr->GetGameObjectSummonGroup(
102 2289, SUMMONER_TYPE_GAMEOBJECT, 1);
103
104 // Both should be null since DB isn't loaded in tests,
105 // but they should be independent lookups
106 EXPECT_EQ(g0, nullptr);
107 EXPECT_EQ(g1, nullptr);
108}

References sObjectMgr, and SUMMONER_TYPE_GAMEOBJECT.

◆ TEST_F() [5/9]

TEST_F ( GameObjectSummonGroupTest  ,
QuaternionIdentity   
)
66{
68 data.rot = G3D::Quat(0.0f, 0.0f, 0.0f, 1.0f);
69
70 EXPECT_FLOAT_EQ(data.rot.x, 0.0f);
71 EXPECT_FLOAT_EQ(data.rot.y, 0.0f);
72 EXPECT_FLOAT_EQ(data.rot.z, 0.0f);
73 EXPECT_FLOAT_EQ(data.rot.w, 1.0f);
74}

References GameObjectSummonData::rot.

◆ TEST_F() [6/9]

TEST_F ( GameObjectSummonGroupTest  ,
SmartActionEnumValue   
)
111{
113 EXPECT_EQ(SMART_ACTION_AC_END, 242);
114}
@ SMART_ACTION_AC_END
Definition SmartScriptMgr.h:730
@ SMART_ACTION_SUMMON_GAMEOBJECT_GROUP
Definition SmartScriptMgr.h:728

References SMART_ACTION_AC_END, and SMART_ACTION_SUMMON_GAMEOBJECT_GROUP.

◆ TEST_F() [7/9]

TEST_F ( GameObjectSummonGroupTest  ,
SmartActionUnionSize   
)
117{
118 SmartAction action{};
119 action.gameobjectGroup.group = 5;
120 EXPECT_EQ(action.gameobjectGroup.group, 5u);
121}
Definition SmartScriptMgr.h:745
uint32 group
Definition SmartScriptMgr.h:1259
struct SmartAction::@75::@199 gameobjectGroup

References SmartAction::gameobjectGroup, and SmartAction::group.

◆ TEST_F() [8/9]

TEST_F ( GameObjectSummonGroupTest  ,
SummonerTypeValues   
)
137{
138 EXPECT_EQ(SUMMONER_TYPE_CREATURE, 0);
139 EXPECT_EQ(SUMMONER_TYPE_GAMEOBJECT, 1);
140 EXPECT_EQ(SUMMONER_TYPE_MAP, 2);
141}

References SUMMONER_TYPE_CREATURE, SUMMONER_TYPE_GAMEOBJECT, and SUMMONER_TYPE_MAP.

◆ TEST_F() [9/9]

TEST_F ( GameObjectSummonGroupTest  ,
TempSummonGroupKeyOrdering   
)
124{
129
130 // std::tuple ordering: summoner ID first, then type, then group
131 EXPECT_LT(k1, k2); // same id, creature < gameobject
132 EXPECT_LT(k1, k3); // same id+type, group 0 < 1
133 EXPECT_LT(k1, k4); // id 100 < 200
134}
Key for storing temp summon data in TempSummonDataContainer.
Definition ObjectMgr.h:65

References SUMMONER_TYPE_CREATURE, and SUMMONER_TYPE_GAMEOBJECT.