BigFile/Sasquatch #1
@@ -118,7 +118,7 @@ class HardReference
|
||||
{
|
||||
m_handle = assetContainer->AcquireContainerHandle(m_uuid);
|
||||
}
|
||||
m_handle->IncrementSoftRefCount();
|
||||
m_handle->IncrementHardRefCount();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -69,6 +69,43 @@ TEST_F(HardReferenceFixture, Get_ShouldReturnNullptrIfTheAssetDoesNotExist)
|
||||
|
||||
/****************************************************************************************/
|
||||
|
||||
TEST_F(HardReferenceFixture, Get_ShouldReturnNullptrAfterTheAssetIsRemovedFromTheContainer)
|
||||
{
|
||||
const auto key = m_containerA.Insert();
|
||||
const UUID uuid = m_containerA.Get(key)->GetHeader().uuid;
|
||||
|
||||
HardReference<AssetA> hardRef {uuid};
|
||||
|
||||
m_containerA.Remove(uuid);
|
||||
|
||||
EXPECT_EQ(hardRef.Get(), nullptr);
|
||||
EXPECT_EQ(std::as_const(hardRef).Get(), nullptr);
|
||||
}
|
||||
|
||||
/****************************************************************************************/
|
||||
|
||||
TEST_F(HardReferenceFixture, ShouldTouchTheHardRefCountOfTheHandle)
|
||||
{
|
||||
UUID uuid;
|
||||
const ContainerHandle* handle = m_containerA.AcquireContainerHandle(uuid);
|
||||
|
||||
EXPECT_EQ(handle->GetHardRefCount(), 0);
|
||||
|
||||
{
|
||||
HardReference<AssetA> hardRef1 {uuid};
|
||||
EXPECT_EQ(handle->GetHardRefCount(), 1);
|
||||
{
|
||||
HardReference<AssetA> hardRef2 {uuid};
|
||||
EXPECT_EQ(handle->GetHardRefCount(), 2);
|
||||
}
|
||||
EXPECT_EQ(handle->GetHardRefCount(), 1);
|
||||
}
|
||||
|
||||
EXPECT_EQ(handle->GetHardRefCount(), 0);
|
||||
}
|
||||
|
||||
/****************************************************************************************/
|
||||
|
||||
class SoftReferenceFixture: public ::testing::Test
|
||||
{
|
||||
protected:
|
||||
@@ -122,4 +159,41 @@ TEST_F(SoftReferenceFixture, Get_ShouldReturnNullptrIfTheAssetDoesNotExist)
|
||||
EXPECT_EQ(hardRef.Get(), nullptr);
|
||||
EXPECT_EQ(std::as_const(hardRef).Get(), nullptr);
|
||||
}
|
||||
|
||||
/****************************************************************************************/
|
||||
|
||||
TEST_F(SoftReferenceFixture, Get_ShouldReturnNullptrAfterTheAssetIsRemovedFromTheContainer)
|
||||
{
|
||||
const auto key = m_containerA.Insert();
|
||||
const UUID uuid = m_containerA.Get(key)->GetHeader().uuid;
|
||||
|
||||
SoftReference<AssetA> hardRef {uuid};
|
||||
|
||||
m_containerA.Remove(uuid);
|
||||
|
||||
EXPECT_EQ(hardRef.Get(), nullptr);
|
||||
EXPECT_EQ(std::as_const(hardRef).Get(), nullptr);
|
||||
}
|
||||
|
||||
/****************************************************************************************/
|
||||
|
||||
TEST_F(SoftReferenceFixture, ShouldTouchTheSoftRefCountOfTheHandle)
|
||||
{
|
||||
UUID uuid;
|
||||
const ContainerHandle* handle = m_containerA.AcquireContainerHandle(uuid);
|
||||
|
||||
EXPECT_EQ(handle->GetSoftRefCount(), 0);
|
||||
|
||||
{
|
||||
SoftReference<AssetA> softRef1 {uuid};
|
||||
EXPECT_EQ(handle->GetSoftRefCount(), 1);
|
||||
{
|
||||
SoftReference<AssetA> softRef2 {uuid};
|
||||
EXPECT_EQ(handle->GetSoftRefCount(), 2);
|
||||
}
|
||||
EXPECT_EQ(handle->GetSoftRefCount(), 1);
|
||||
}
|
||||
|
||||
EXPECT_EQ(handle->GetSoftRefCount(), 0);
|
||||
}
|
||||
} // namespace Bigfoot
|
||||
|
||||
Reference in New Issue
Block a user