summaryrefslogtreecommitdiff
path: root/src/unittest
diff options
context:
space:
mode:
Diffstat (limited to 'src/unittest')
-rw-r--r--src/unittest/test_inventory.cpp89
-rw-r--r--src/unittest/test_servermodmanager.cpp5
-rw-r--r--src/unittest/test_world/do_not_remove.txt0
-rw-r--r--src/unittest/test_world/world.mt1
4 files changed, 41 insertions, 54 deletions
diff --git a/src/unittest/test_inventory.cpp b/src/unittest/test_inventory.cpp
index 1a783afae..5f71636c4 100644
--- a/src/unittest/test_inventory.cpp
+++ b/src/unittest/test_inventory.cpp
@@ -33,8 +33,9 @@ public:
void testSerializeDeserialize(IItemDefManager *idef);
- static const char *serialized_inventory;
- static const char *serialized_inventory_2;
+ static const char *serialized_inventory_in;
+ static const char *serialized_inventory_out;
+ static const char *serialized_inventory_inc;
};
static TestInventory g_test_instance;
@@ -49,7 +50,7 @@ void TestInventory::runTests(IGameDef *gamedef)
void TestInventory::testSerializeDeserialize(IItemDefManager *idef)
{
Inventory inv(idef);
- std::istringstream is(serialized_inventory, std::ios::binary);
+ std::istringstream is(serialized_inventory_in, std::ios::binary);
inv.deSerialize(is);
UASSERT(inv.getList("0"));
@@ -62,82 +63,64 @@ void TestInventory::testSerializeDeserialize(IItemDefManager *idef)
inv.getList("main")->setWidth(5);
std::ostringstream inv_os(std::ios::binary);
- inv.serialize(inv_os);
- UASSERTEQ(std::string, inv_os.str(), serialized_inventory_2);
+ inv.serialize(inv_os, false);
+ UASSERTEQ(std::string, inv_os.str(), serialized_inventory_out);
+
+ inv.setModified(false);
+ inv_os.str("");
+ inv_os.clear();
+ inv.serialize(inv_os, true);
+ UASSERTEQ(std::string, inv_os.str(), serialized_inventory_inc);
+
+ ItemStack leftover = inv.getList("main")->takeItem(7, 99 - 12);
+ ItemStack wanted = ItemStack("default:dirt", 99 - 12, 0, idef);
+ UASSERT(leftover == wanted);
+ leftover = inv.getList("main")->getItem(7);
+ wanted.count = 12;
+ UASSERT(leftover == wanted);
}
-const char *TestInventory::serialized_inventory =
- "List 0 32\n"
+const char *TestInventory::serialized_inventory_in =
+ "List 0 10\n"
"Width 3\n"
"Empty\n"
"Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
"Item default:cobble 61\n"
"Empty\n"
"Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
"Item default:dirt 71\n"
"Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
"Item default:dirt 99\n"
"Item default:cobble 38\n"
"Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
+ "EndInventoryList\n"
+ "List abc 1\n"
+ "Item default:stick 3\n"
+ "Width 0\n"
"EndInventoryList\n"
"EndInventory\n";
-const char *TestInventory::serialized_inventory_2 =
- "List main 32\n"
+const char *TestInventory::serialized_inventory_out =
+ "List main 10\n"
"Width 5\n"
"Empty\n"
"Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
"Item default:cobble 61\n"
"Empty\n"
"Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
"Item default:dirt 71\n"
"Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
"Item default:dirt 99\n"
"Item default:cobble 38\n"
"Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
- "Empty\n"
"EndInventoryList\n"
+ "List abc 1\n"
+ "Width 0\n"
+ "Item default:stick 3\n"
+ "EndInventoryList\n"
+ "EndInventory\n";
+
+const char *TestInventory::serialized_inventory_inc =
+ "KeepList main\n"
+ "KeepList abc\n"
"EndInventory\n";
diff --git a/src/unittest/test_servermodmanager.cpp b/src/unittest/test_servermodmanager.cpp
index 72ac7c6bf..0757323f4 100644
--- a/src/unittest/test_servermodmanager.cpp
+++ b/src/unittest/test_servermodmanager.cpp
@@ -20,6 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "test.h"
#include <algorithm>
#include "server/mods.h"
+#include "settings.h"
#include "test_config.h"
class TestServerModManager : public TestBase
@@ -85,6 +86,10 @@ void TestServerModManager::runTests(IGameDef *gamedef)
void TestServerModManager::testCreation()
{
+ std::string path = std::string(TEST_WORLDDIR) + DIR_DELIM + "world.mt";
+ Settings world_config;
+ world_config.set("gameid", "minimal");
+ UASSERTEQ(bool, world_config.updateConfigFile(path.c_str()), true);
ServerModManager sm(TEST_WORLDDIR);
}
diff --git a/src/unittest/test_world/do_not_remove.txt b/src/unittest/test_world/do_not_remove.txt
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/src/unittest/test_world/do_not_remove.txt
diff --git a/src/unittest/test_world/world.mt b/src/unittest/test_world/world.mt
deleted file mode 100644
index ab9b5413a..000000000
--- a/src/unittest/test_world/world.mt
+++ /dev/null
@@ -1 +0,0 @@
-gameid = minimal