Add AllEnchantsAffectingAbility() unit tests.
All checks were successful
Emscripten Build / Build_and_Deploy_Web_Build (push) Successful in 6m53s

This commit is contained in:
sigonasr2 2025-05-15 09:58:00 -04:00
parent 67ca0d168d
commit 38d72e24a1
3 changed files with 44 additions and 0 deletions

View File

@ -135,6 +135,23 @@ namespace EnchantTests
Assert::AreEqual("My Description",(*modifiers.newDescription).c_str(),L"Replacement description reads in properly");
Assert::AreEqual("Post test",(*modifiers.postDescription).c_str(),L"Post-description reads in properly");
}
TEST_METHOD(AllEnchantsAffectingAbilityTest){
for(int classBits{int(Class::WARRIOR)};classBits<=int(Class::WITCH);classBits<<=1){
const Class cl{Class(classBits)};
Game::ChangeClass(player,cl);
for(const Ability&ability:player->GetAbilities()){
Assert::AreEqual(size_t(0),ItemEnchantInfo::GetAllEnchantsAffectingAbility("Rapid Fire").size(),util::wformat("There should be no enchants affecting ability {} by default.",ability).c_str());
}
}
Game::GiveAndEquipEnchantedRing("Stealthy Retreat");
Assert::AreEqual(size_t(1),ItemEnchantInfo::GetAllEnchantsAffectingAbility("Retreat").size(),L"There should be 1 enchant affecting ability Retreat.");
Game::GiveAndEquipEnchantedRing("Stealthy Retreat",EquipSlot::RING2);
Assert::AreEqual(size_t(2),ItemEnchantInfo::GetAllEnchantsAffectingAbility("Retreat").size(),L"There should be 2 enchants affecting ability Retreat.");
Inventory::UnequipItem(EquipSlot::RING1);
Assert::AreEqual(size_t(1),ItemEnchantInfo::GetAllEnchantsAffectingAbility("Retreat").size(),L"There should be 1 enchant affecting ability Retreat.");
Inventory::UnequipItem(EquipSlot::RING2);
Assert::AreEqual(size_t(0),ItemEnchantInfo::GetAllEnchantsAffectingAbility("Retreat").size(),L"There should be no enchants affecting ability Retreat by default.");
}
TEST_METHOD(HealthBoostCheck){
Assert::AreEqual(100,player->GetMaxHealth(),L"Player starts with 100 health.");
std::weak_ptr<Item>nullRing{Game::GiveAndEquipEnchantedRing("Aura of the Beast")};

View File

@ -1314,6 +1314,12 @@
<None Include="steam\steam_api.json" />
</ItemGroup>
<ItemGroup>
<Text Include="..\x64\Unit Testing\assets\config\items\Accessories-test.txt" />
<Text Include="..\x64\Unit Testing\assets\config\items\Equipment-test.txt" />
<Text Include="..\x64\Unit Testing\assets\config\items\ItemDatabase-test.txt" />
<Text Include="..\x64\Unit Testing\assets\config\items\ItemEnchants-test.txt" />
<Text Include="..\x64\Unit Testing\assets\config\items\items-test.txt" />
<Text Include="..\x64\Unit Testing\assets\config\items\ItemSets-test.txt" />
<Text Include="..\x64\Unit Testing\debug.log" />
<Text Include="assets\config\Achievements.txt" />
<Text Include="assets\config\audio\audio.txt" />

View File

@ -106,6 +106,9 @@
<Filter Include="Debug">
<UniqueIdentifier>{c4119802-3fc8-4555-9013-a7a3ac9b204d}</UniqueIdentifier>
</Filter>
<Filter Include="Configurations\Items\Test Configurations">
<UniqueIdentifier>{354b389b-2ec1-4cf6-ace0-6597b14edfab}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="olcPixelGameEngine.h">
@ -1583,6 +1586,24 @@
<Text Include="Chapter_3_FinalBoss.txt">
<Filter>Documentation\Mechanics</Filter>
</Text>
<Text Include="..\x64\Unit Testing\assets\config\items\Accessories-test.txt">
<Filter>Configurations\Items\Test Configurations</Filter>
</Text>
<Text Include="..\x64\Unit Testing\assets\config\items\Equipment-test.txt">
<Filter>Configurations\Items\Test Configurations</Filter>
</Text>
<Text Include="..\x64\Unit Testing\assets\config\items\ItemDatabase-test.txt">
<Filter>Configurations\Items\Test Configurations</Filter>
</Text>
<Text Include="..\x64\Unit Testing\assets\config\items\ItemEnchants-test.txt">
<Filter>Configurations\Items\Test Configurations</Filter>
</Text>
<Text Include="..\x64\Unit Testing\assets\config\items\ItemSets-test.txt">
<Filter>Configurations\Items\Test Configurations</Filter>
</Text>
<Text Include="..\x64\Unit Testing\assets\config\items\items-test.txt">
<Filter>Configurations\Items\Test Configurations</Filter>
</Text>
</ItemGroup>
<ItemGroup>
<Image Include="assets\heart.ico">