Add unit test for EntityOwner
This commit is contained in:
parent
0a72ddb478
commit
5ba0d0dba0
|
|
@ -31,4 +31,4 @@ namespace Ndk
|
|||
|
||||
#include <NDK/EntityOwner.inl>
|
||||
|
||||
#endif // NDK_ENTITYOwner_HPP
|
||||
#endif // NDK_ENTITYOWNER_HPP
|
||||
|
|
|
|||
|
|
@ -11,27 +11,98 @@ SCENARIO("EntityOwner", "[NDK][ENTITYOWNER]")
|
|||
|
||||
WHEN("We set the ownership of the entity to our owner")
|
||||
{
|
||||
Ndk::EntityOwner entityOwner(entity);
|
||||
|
||||
THEN("Entity is still valid")
|
||||
{
|
||||
REQUIRE(entity.IsValid());
|
||||
|
||||
Ndk::EntityOwner entityOwner(entity);
|
||||
|
||||
world.Update();
|
||||
CHECK(entity.IsValid());
|
||||
}
|
||||
|
||||
THEN("Resetting or getting out of scope is no more valid")
|
||||
THEN("Moving an entity owner by constructor works")
|
||||
{
|
||||
REQUIRE(entity.IsValid());
|
||||
|
||||
Ndk::EntityOwner entityOwner(entity);
|
||||
Ndk::EntityOwner entityOwner2(std::move(entityOwner));
|
||||
entityOwner.Reset();
|
||||
world.Update(1.f);
|
||||
|
||||
world.Update();
|
||||
CHECK(entity.IsValid());
|
||||
|
||||
entityOwner2.Reset();
|
||||
|
||||
world.Update();
|
||||
CHECK(!entity.IsValid());
|
||||
}
|
||||
|
||||
THEN("Moving an entity owner works")
|
||||
THEN("Moving an entity owner by operator= works")
|
||||
{
|
||||
Ndk::EntityOwner entityOwner2(std::move(entityOwner));
|
||||
REQUIRE(entity.IsValid());
|
||||
|
||||
Ndk::EntityOwner entityOwner(entity);
|
||||
Ndk::EntityOwner entityOwner2;
|
||||
entityOwner2 = std::move(entityOwner);
|
||||
entityOwner.Reset();
|
||||
|
||||
world.Update();
|
||||
CHECK(entity.IsValid());
|
||||
|
||||
entityOwner2.Reset();
|
||||
world.Update(1.f);
|
||||
REQUIRE(!entity.IsValid());
|
||||
|
||||
world.Update();
|
||||
CHECK(!entity.IsValid());
|
||||
}
|
||||
|
||||
THEN("Destroying an entity owner destroys its entity")
|
||||
{
|
||||
REQUIRE(entity.IsValid());
|
||||
|
||||
{
|
||||
Ndk::EntityOwner entityOwner(entity);
|
||||
}
|
||||
|
||||
world.Update();
|
||||
CHECK(!entity.IsValid());
|
||||
}
|
||||
|
||||
|
||||
THEN("Resetting an entity owner destroys its entity")
|
||||
{
|
||||
REQUIRE(entity.IsValid());
|
||||
|
||||
Ndk::EntityOwner entityOwner(entity);
|
||||
entityOwner.Reset();
|
||||
|
||||
world.Update();
|
||||
CHECK(!entity.IsValid());
|
||||
}
|
||||
|
||||
THEN("Assigning another entity destroys the first entity")
|
||||
{
|
||||
REQUIRE(entity.IsValid());
|
||||
|
||||
Ndk::EntityOwner entityOwner(entity);
|
||||
entityOwner = world.CreateEntity();
|
||||
|
||||
world.Update();
|
||||
CHECK(!entity.IsValid());
|
||||
}
|
||||
|
||||
THEN("Moving another entity destroys the first entity")
|
||||
{
|
||||
REQUIRE(entity.IsValid());
|
||||
|
||||
Ndk::EntityOwner entityOwner(entity);
|
||||
Ndk::EntityHandle entity2 = world.CreateEntity();
|
||||
|
||||
entityOwner = std::move(entity2);
|
||||
|
||||
world.Update();
|
||||
CHECK(!entity.IsValid());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue