AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
WorldObjectCastApiTest.cpp File Reference
#include "gtest/gtest.h"
#include "ObjectGuid.h"
#include "Position.h"
#include "Spell.h"
#include "SpellDefines.h"

Go to the source code of this file.

Functions

 TEST (WorldObjectCastApi, CastSpellExtraArgsDefault)
 
 TEST (WorldObjectCastApi, CastSpellExtraArgsBoolCtor)
 
 TEST (WorldObjectCastApi, CastSpellExtraArgsTriggerFlagsCtor)
 
 TEST (WorldObjectCastApi, CastSpellExtraArgsOriginalCasterCtor)
 
 TEST (WorldObjectCastApi, CastSpellExtraArgsFluentChain)
 
 TEST (WorldObjectCastApi, CastSpellExtraArgsSpellValueModCtor)
 
 TEST (WorldObjectCastApi, CastSpellTargetArgEmpty)
 
 TEST (WorldObjectCastApi, CastSpellTargetArgNullptr)
 
 TEST (WorldObjectCastApi, CastSpellTargetArgPosition)
 
 TEST (WorldObjectCastApi, CastSpellTargetArgWorldObjectNull)
 

Function Documentation

◆ TEST() [1/10]

TEST ( WorldObjectCastApi  ,
CastSpellExtraArgsBoolCtor   
)
42{
43 CastSpellExtraArgs triggered(true);
44 EXPECT_EQ(triggered.TriggerFlags, TRIGGERED_FULL_MASK);
45
46 CastSpellExtraArgs untriggered(false);
47 EXPECT_EQ(untriggered.TriggerFlags, TRIGGERED_NONE);
48}
@ TRIGGERED_FULL_MASK
Will return SPELL_FAILED_DONT_REPORT in CheckCast functions.
Definition SpellDefines.h:158
@ TRIGGERED_NONE
Definition SpellDefines.h:141
Definition SpellDefines.h:219

References TRIGGERED_FULL_MASK, TRIGGERED_NONE, and CastSpellExtraArgs::TriggerFlags.

◆ TEST() [2/10]

TEST ( WorldObjectCastApi  ,
CastSpellExtraArgsDefault   
)
33{
35 EXPECT_EQ(args.TriggerFlags, TRIGGERED_NONE);
36 EXPECT_EQ(args.CastItem, nullptr);
37 EXPECT_EQ(args.TriggeringAura, nullptr);
38 EXPECT_FALSE(args.OriginalCaster);
39}
TriggerCastFlags TriggerFlags
Definition SpellDefines.h:244
ObjectGuid OriginalCaster
Definition SpellDefines.h:247
Item * CastItem
Definition SpellDefines.h:245
AuraEffect const * TriggeringAura
Definition SpellDefines.h:246

References CastSpellExtraArgs::CastItem, CastSpellExtraArgs::OriginalCaster, TRIGGERED_NONE, CastSpellExtraArgs::TriggerFlags, and CastSpellExtraArgs::TriggeringAura.

◆ TEST() [3/10]

TEST ( WorldObjectCastApi  ,
CastSpellExtraArgsFluentChain   
)
65{
66 ObjectGuid guid = ObjectGuid::Create<HighGuid::Unit>(100, 7);
71 .AddSpellBP0(456);
72
74 EXPECT_EQ(args.OriginalCaster, guid);
75 // SpellValueOverrides is private detail of CustomSpellValues, so just
76 // verify two entries were appended via the public iteration interface.
77 int hits = 0;
78 for (auto const& kv : args.SpellValueOverrides)
79 {
80 EXPECT_EQ(kv.first, SPELLVALUE_BASE_POINT0);
81 if (kv.second == 123 || kv.second == 456)
82 ++hits;
83 }
84 EXPECT_EQ(hits, 2);
85}
@ SPELLVALUE_BASE_POINT0
Definition SpellDefines.h:121
@ TRIGGERED_IGNORE_POWER_AND_REAGENT_COST
Will ignore Spell and Category cooldowns.
Definition SpellDefines.h:144
Definition ObjectGuid.h:121
CastSpellExtraArgs & SetOriginalCaster(ObjectGuid const &guid)
Definition SpellDefines.h:240
CastSpellExtraArgs & SetTriggerFlags(TriggerCastFlags flag)
Definition SpellDefines.h:237
CastSpellExtraArgs & AddSpellBP0(int32 val)
Definition SpellDefines.h:242
CastSpellExtraArgs & AddSpellMod(SpellValueMod mod, int32 val)
Definition SpellDefines.h:241

References CastSpellExtraArgs::AddSpellBP0(), CastSpellExtraArgs::AddSpellMod(), CastSpellExtraArgs::OriginalCaster, CastSpellExtraArgs::SetOriginalCaster(), CastSpellExtraArgs::SetTriggerFlags(), SPELLVALUE_BASE_POINT0, CastSpellExtraArgs::SpellValueOverrides, TRIGGERED_IGNORE_POWER_AND_REAGENT_COST, and CastSpellExtraArgs::TriggerFlags.

◆ TEST() [4/10]

TEST ( WorldObjectCastApi  ,
CastSpellExtraArgsOriginalCasterCtor   
)
57{
58 ObjectGuid guid = ObjectGuid::Create<HighGuid::Player>(42);
59 CastSpellExtraArgs args(guid);
60 EXPECT_EQ(args.OriginalCaster, guid);
61 EXPECT_EQ(args.TriggerFlags, TRIGGERED_FULL_MASK);
62}

References CastSpellExtraArgs::OriginalCaster, TRIGGERED_FULL_MASK, and CastSpellExtraArgs::TriggerFlags.

◆ TEST() [5/10]

TEST ( WorldObjectCastApi  ,
CastSpellExtraArgsSpellValueModCtor   
)
88{
90 int found = 0;
91 for (auto const& kv : args.SpellValueOverrides)
92 {
93 if (kv.first == SPELLVALUE_MAX_TARGETS && kv.second == 3)
94 ++found;
95 }
96 EXPECT_EQ(found, 1);
97}
@ SPELLVALUE_MAX_TARGETS
Definition SpellDefines.h:125

References SPELLVALUE_MAX_TARGETS, and CastSpellExtraArgs::SpellValueOverrides.

◆ TEST() [6/10]

TEST ( WorldObjectCastApi  ,
CastSpellExtraArgsTriggerFlagsCtor   
)
51{
53 EXPECT_EQ(args.TriggerFlags, TRIGGERED_IGNORE_GCD);
54}
@ TRIGGERED_IGNORE_GCD
Not triggered.
Definition SpellDefines.h:142

References TRIGGERED_IGNORE_GCD, and CastSpellExtraArgs::TriggerFlags.

◆ TEST() [7/10]

TEST ( WorldObjectCastApi  ,
CastSpellTargetArgEmpty   
)
100{
102 ASSERT_TRUE(t.Targets); // default ctor populates a non-null SpellCastTargets
103 EXPECT_EQ(t.Targets->GetTargetMask(), 0u);
104}
Definition SpellDefines.h:204
std::unique_ptr< SpellCastTargets > Targets
Definition SpellDefines.h:215

References CastSpellTargetArg::Targets.

◆ TEST() [8/10]

TEST ( WorldObjectCastApi  ,
CastSpellTargetArgNullptr   
)
107{
108 CastSpellTargetArg t(nullptr);
109 ASSERT_TRUE(t.Targets);
110}

References CastSpellTargetArg::Targets.

◆ TEST() [9/10]

TEST ( WorldObjectCastApi  ,
CastSpellTargetArgPosition   
)
113{
114 Position pos(1.0f, 2.0f, 3.0f, 0.5f);
115 CastSpellTargetArg t(pos);
116 ASSERT_TRUE(t.Targets);
117 EXPECT_NE(t.Targets->GetTargetMask() & TARGET_FLAG_DEST_LOCATION, 0u);
118}
@ TARGET_FLAG_DEST_LOCATION
Definition SpellInfo.h:53
Definition Position.h:27

References TARGET_FLAG_DEST_LOCATION, and CastSpellTargetArg::Targets.

◆ TEST() [10/10]

TEST ( WorldObjectCastApi  ,
CastSpellTargetArgWorldObjectNull   
)
121{
122 // A null target yields an error-state CastSpellTargetArg (Targets stays
123 // empty so WorldObject::CastSpell returns SPELL_FAILED_BAD_TARGETS).
124 CastSpellTargetArg t(static_cast<WorldObject*>(nullptr));
125 EXPECT_FALSE(t.Targets);
126}
Definition Object.h:482

References CastSpellTargetArg::Targets.