Files
GDevelop/GDCpp/tests/Common.cpp
T
2018-09-09 21:28:26 +01:00

64 lines
1.8 KiB
C++

/*
* GDevelop C++ Platform
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights
* reserved. This project is released under the MIT License.
*/
/**
* @file Tests covering common features of GDevelop C++ Platform.
*/
#include "GDCore/CommonTools.h"
#include "GDCore/Project/ObjectsContainer.h"
#include "GDCore/Project/Layout.h"
#include "GDCpp/Runtime/RuntimeGame.h"
#include "GDCpp/Runtime/RuntimeScene.h"
#include "catch.hpp"
TEST_CASE("RuntimeScene", "[common]") {
SECTION("Basics") {
RuntimeGame game;
RuntimeScene scene(NULL, &game);
REQUIRE(scene.GetTimeManager().IsFirstLoop() == true);
REQUIRE(scene.GetTimeManager().GetTimeScale() == 1);
REQUIRE(scene.renderWindow == NULL);
REQUIRE(scene.game == &game);
}
SECTION("Loading from a layout") {
gd::Project project;
gd::Layout layout;
layout.SetName("My layout");
gd::Variable var1;
var1.SetString("Hello");
gd::Variable var2;
var2.SetValue(42);
layout.GetVariables().Insert("MaVar", var1, 0);
layout.GetVariables().Insert("MaVar2", var2, 0);
RuntimeGame game;
RuntimeScene scene(NULL, &game);
scene.LoadFromScene(layout);
REQUIRE(scene.GetName() == "My layout");
REQUIRE(scene.GetVariables().Get("MaVar").GetString() == "Hello");
REQUIRE(scene.GetVariables().Get("MaVar2").GetValue() == 42);
}
}
TEST_CASE("gd::Project", "[common]") {
SECTION("Basics") {
gd::Project project;
project.SetName("MyName");
project.GetUsedExtensions().push_back("Ext1");
project.GetUsedExtensions().push_back("Ext2");
REQUIRE(project.GetName() == "MyName");
SECTION("Copy a project in memory") {
gd::Project copy = project;
REQUIRE(copy.GetName() == "MyName");
REQUIRE(copy.GetUsedExtensions().size() ==
project.GetUsedExtensions().size());
}
}
}