Files
XCEngine/tests/Core/Asset/test_iresource.cpp

70 lines
1.9 KiB
C++
Raw Normal View History

#include <gtest/gtest.h>
#include <XCEngine/Core/Asset/IResource.h>
#include <XCEngine/Core/Asset/ResourceTypes.h>
#include <XCEngine/Core/Containers/String.h>
using namespace XCEngine::Resources;
using namespace XCEngine::Containers;
namespace {
class TestResource : public IResource {
public:
ResourceType GetType() const override { return ResourceType::Texture; }
const String& GetName() const override { return m_name; }
const String& GetPath() const override { return m_path; }
ResourceGUID GetGUID() const override { return m_guid; }
bool IsValid() const override { return m_isValid; }
size_t GetMemorySize() const override { return m_memorySize; }
void Release() override { delete this; }
};
TEST(IResource, Initialize) {
TestResource* resource = new TestResource();
IResource::ConstructParams params;
params.name = "TestTexture";
params.path = "textures/test.png";
params.guid = ResourceGUID(12345);
params.memorySize = 1024;
resource->Initialize(params);
EXPECT_EQ(resource->GetName(), "TestTexture");
EXPECT_EQ(resource->GetPath(), "textures/test.png");
EXPECT_EQ(resource->GetGUID().value, 12345u);
EXPECT_EQ(resource->GetMemorySize(), 1024u);
EXPECT_TRUE(resource->IsValid());
resource->Release();
}
TEST(IResource, SetInvalid) {
TestResource* resource = new TestResource();
IResource::ConstructParams params;
params.name = "Test";
params.path = "test.png";
params.guid = ResourceGUID(1);
params.memorySize = 100;
resource->Initialize(params);
EXPECT_TRUE(resource->IsValid());
resource->SetInvalid();
EXPECT_FALSE(resource->IsValid());
resource->Release();
}
TEST(IResource, DefaultValues) {
TestResource* resource = new TestResource();
EXPECT_EQ(resource->GetMemorySize(), 0u);
EXPECT_FALSE(resource->IsValid());
resource->Release();
}
} // namespace