NazaraEngine/tests/Engine/Core/ObjectRefTest.cpp

44 lines
714 B
C++

#include <Nazara/Core/ObjectRef.hpp>
#include <catch2/catch.hpp>
class Test : public Nz::RefCounted
{
};
SCENARIO("ObjectRef", "[CORE][OBJECTREF]")
{
GIVEN("A ObjectRef")
{
Nz::ObjectRef<Test> objectRef;
WHEN("We have two objectRef handling the same object")
{
Test test;
objectRef = &test;
Nz::ObjectRef<Test> otherRef(&test);
THEN("Pointers the same")
{
REQUIRE(objectRef.IsValid());
REQUIRE(otherRef.IsValid());
}
objectRef.Reset(nullptr);
}
WHEN("We assign it to a simple font")
{
Test test;
THEN("Release suppress the reference to the object")
{
objectRef.Reset(&test);
objectRef.Release();
REQUIRE(!objectRef.IsValid());
}
}
}
}