mirror of
https://github.com/Heretek-AI/GDevelop.git
synced 2026-07-21 01:25:32 -04:00
87 lines
2.9 KiB
C++
87 lines
2.9 KiB
C++
/**
|
|
|
|
GDevelop - Inventory Extension
|
|
Copyright (c) 2011-2016 Florian Rival (Florian.Rival@gmail.com)
|
|
This project is released under the MIT License.
|
|
*/
|
|
/**
|
|
* @file Tests for the Inventory extension.
|
|
*/
|
|
#define CATCH_CONFIG_MAIN
|
|
#include "catch.hpp"
|
|
#include "../Inventory.h"
|
|
|
|
TEST_CASE( "Inventory", "[game-engine][inventory]" ) {
|
|
SECTION("Inventory") {
|
|
Inventory inventory;
|
|
|
|
// Is empty when constructed") {
|
|
REQUIRE(inventory.Has("sword") == false);
|
|
REQUIRE(inventory.Has("soul reaver") == false);
|
|
|
|
// Can receive one or more items") {
|
|
REQUIRE(inventory.Add("sword") == true);
|
|
REQUIRE(inventory.Has("sword") == true);
|
|
REQUIRE(inventory.Has("soul reaver") == false);
|
|
|
|
REQUIRE(inventory.Add("soul reaver") == true);
|
|
REQUIRE(inventory.Add("sword") == true);
|
|
REQUIRE(inventory.Has("sword") == true);
|
|
REQUIRE(inventory.Has("soul reaver") == true);
|
|
|
|
// Can return the number of items") {
|
|
REQUIRE(inventory.Count("sword") == 2);
|
|
REQUIRE(inventory.Count("soul reaver") == 1);
|
|
|
|
// Can equip items") {
|
|
REQUIRE(inventory.Equip("soul reaver", true) == true);
|
|
REQUIRE(inventory.IsEquipped("soul reaver") == true);
|
|
|
|
REQUIRE(inventory.Equip("sword", true) == true);
|
|
REQUIRE(inventory.IsEquipped("sword") == true);
|
|
REQUIRE(inventory.Equip("sword", false) == true);
|
|
REQUIRE(inventory.IsEquipped("sword") == false);
|
|
REQUIRE(inventory.Equip("sword", true) == true);
|
|
|
|
REQUIRE(inventory.Equip("nothing", true) == false);
|
|
REQUIRE(inventory.IsEquipped("nothing") == false);
|
|
|
|
// Support removing an item") {
|
|
REQUIRE(inventory.Remove("sword") == true);
|
|
REQUIRE(inventory.Count("sword") == 1);
|
|
REQUIRE(inventory.IsEquipped("sword") == true);
|
|
|
|
REQUIRE(inventory.Remove("sword") == true);
|
|
REQUIRE(inventory.Count("sword") == 0);
|
|
REQUIRE(inventory.IsEquipped("sword") == false);
|
|
|
|
REQUIRE(inventory.Remove("sword") == false);
|
|
REQUIRE(inventory.Count("sword") == 0);
|
|
|
|
REQUIRE(inventory.Count("soul reaver") == 1);
|
|
REQUIRE(inventory.IsEquipped("soul reaver") == true);
|
|
|
|
// Can support having a limited number of objects") {
|
|
REQUIRE(inventory.Count("heavy sword") == 0);
|
|
inventory.SetMaximum("heavy sword", 2);
|
|
REQUIRE(inventory.Add("heavy sword") == true);
|
|
REQUIRE(inventory.Count("heavy sword") == 1);
|
|
REQUIRE(inventory.Has("heavy sword") == true);
|
|
|
|
REQUIRE(inventory.Add("heavy sword") == true);
|
|
REQUIRE(inventory.Count("heavy sword") == 2);
|
|
REQUIRE(inventory.Add("heavy sword") == false);
|
|
REQUIRE(inventory.Count("heavy sword") == 2);
|
|
inventory.SetUnlimited("heavy sword", true);
|
|
REQUIRE(inventory.Count("heavy sword") == 2);
|
|
REQUIRE(inventory.Add("heavy sword") == true);
|
|
REQUIRE(inventory.Add("heavy sword") == true);
|
|
REQUIRE(inventory.Count("heavy sword") == 4);
|
|
|
|
inventory.SetMaximum("never sword", 0);
|
|
REQUIRE(inventory.Add("never sword") == false);
|
|
REQUIRE(inventory.Has("never sword") == false);
|
|
REQUIRE(inventory.Count("never sword") == 0);
|
|
}
|
|
}
|