From e4bc76f55cb3314a6e6cbd47e5dedd1923ad5328 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Sun, 3 Jun 2012 00:33:12 +0300 Subject: [PATCH] Add a bit of unit test for inventory --- src/test.cpp | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/src/test.cpp b/src/test.cpp index cb01edff..ecbf653f 100644 --- a/src/test.cpp +++ b/src/test.cpp @@ -37,6 +37,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "log.h" #include "utility_string.h" #include "voxelalgorithms.h" +#include "inventory.h" /* Asserts that the exception occurs @@ -650,6 +651,98 @@ struct TestVoxelAlgorithms } }; +struct TestInventory +{ + void Run(IItemDefManager *idef) + { + std::string serialized_inventory = + "List 0 32\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" + "EndInventory\n"; + + std::string serialized_inventory_2 = + "List main 32\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" + "EndInventory\n"; + + Inventory inv(idef); + std::istringstream is(serialized_inventory, std::ios::binary); + inv.deSerialize(is); + assert(inv.getList("0")); + assert(!inv.getList("main")); + inv.getList("0")->setName("main"); + assert(!inv.getList("0")); + assert(inv.getList("main")); + std::ostringstream inv_os(std::ios::binary); + inv.serialize(inv_os); + assert(inv_os.str() == serialized_inventory_2); + } +}; + /* NOTE: These tests became non-working then NodeContainer was removed. These should be redone, utilizing some kind of a virtual @@ -1447,6 +1540,7 @@ void run_tests() TESTPARAMS(TestMapNode, ndef); TESTPARAMS(TestVoxelManipulator, ndef); TESTPARAMS(TestVoxelAlgorithms, ndef); + TESTPARAMS(TestInventory, idef); //TEST(TestMapBlock); //TEST(TestMapSector); if(INTERNET_SIMULATOR == false){