Convert nodedef tests to Catch2 (#15045)

Co-authored-by: Lars Müller <34514239+appgurueu@users.noreply.github.com>
This commit is contained in:
JosiahWI 2024-08-28 08:36:02 -05:00 committed by GitHub
parent 5d18b6fcd0
commit c893e0b72b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -17,38 +17,22 @@ with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#include "test.h"
#include <sstream>
#include "gamedef.h"
#include "nodedef.h"
#include "network/networkprotocol.h"
class TestNodeDef : public TestBase
{
public:
TestNodeDef() { TestManager::registerTestModule(this); }
const char *getName() { return "TestNodeDef"; }
#include <catch.h>
void runTests(IGameDef *gamedef);
#include <ios>
#include <sstream>
void testContentFeaturesSerialization();
};
static TestNodeDef g_test_instance;
void TestNodeDef::runTests(IGameDef *gamedef)
{
TEST(testContentFeaturesSerialization);
}
////////////////////////////////////////////////////////////////////////////////
void TestNodeDef::testContentFeaturesSerialization()
TEST_CASE("Given a node definition, "
"when we serialize and then deserialize it, "
"then the deserialized one should be equal to the original.",
"[nodedef]")
{
ContentFeatures f;
f.name = "default:stone";
for (TileDef &tiledef : f.tiledef)
tiledef.name = "default_stone.png";
@ -56,12 +40,10 @@ void TestNodeDef::testContentFeaturesSerialization()
std::ostringstream os(std::ios::binary);
f.serialize(os, LATEST_PROTOCOL_VERSION);
// verbosestream<<"Test ContentFeatures size: "<<os.str().size()<<std::endl;
std::istringstream is(os.str(), std::ios::binary);
ContentFeatures f2;
f2.deSerialize(is, LATEST_PROTOCOL_VERSION);
UASSERT(f.walkable == f2.walkable);
UASSERT(f.node_box.type == f2.node_box.type);
CHECK(f.walkable == f2.walkable);
CHECK(f.node_box.type == f2.node_box.type);
}