1
0
mirror of https://github.com/rwengine/openrw.git synced 2024-09-18 16:32:32 +02:00
openrw/tests/test_Object.cpp
Anonymous Maarten 9e8a96ab7e tests: execute each test separately by CTest
Disabled by default because empty test suites fail and would cause
Travis to fail.
There can be empty test suites when testing with no data.
2017-10-29 20:40:57 +00:00

54 lines
1.2 KiB
C++

#include <boost/test/unit_test.hpp>
#include <engine/GameWorld.hpp>
#include <objects/InstanceObject.hpp>
#include "test_Globals.hpp"
BOOST_AUTO_TEST_SUITE(ObjectTests)
#if 0 // Tests disabled as object damage logic is unclear
BOOST_AUTO_TEST_CASE(instance_test_damage)
{
std::shared_ptr<ObjectData> object(new ObjectData);
InstanceObject inst(Global::get().e,
glm::vec3(0.f, 0.f, 0.f),
glm::quat(), nullptr,
glm::vec3(1.f),
object, nullptr, nullptr
);
GameObject::DamageInfo dmg;
dmg.type = GameObject::DamageInfo::Bullet;
dmg.hitpoints = 50.f;
// Set object to undamagable.
object->flags = 0;
BOOST_CHECK( ! inst.takeDamage(dmg) );
BOOST_CHECK( inst.takeDamage(dmg) );
BOOST_CHECK( inst.getHealth() < 0.f );
}
BOOST_AUTO_TEST_CASE(instance_test_destroy)
{
std::shared_ptr<ObjectData> object(new ObjectData);
InstanceObject inst(Global::get().e,
glm::vec3(0.f, 0.f, 0.f),
glm::quat(), nullptr,
glm::vec3(1.f),
object, nullptr, nullptr
);
GameObject::DamageInfo dmg;
dmg.type = GameObject::DamageInfo::Bullet;
dmg.hitpoints = inst.getHealth() + 1.f;
BOOST_CHECK( inst.takeDamage(dmg) );
BOOST_CHECK( inst.getHealth() < 0.f );
}
#endif
BOOST_AUTO_TEST_SUITE_END()