test(Resources): Add comprehensive resource system tests (8 new test files, +48 test cases)

- Add Shader tests (8 test cases)
- Add Material tests (13 test cases)
- Add FileArchive tests (7 test cases)
- Add Loader tests for Texture, Mesh, Audio, Shader, Material (4 tests each)
- Implement IResourceLoader.cpp with ReadFileData and GetExtension
- Update CMakeLists.txt to include new test files and source
This commit is contained in:
2026-03-18 00:09:06 +08:00
parent 640557cbb5
commit 02ca59edf6
11 changed files with 535 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
#include <gtest/gtest.h>
#include <XCEngine/Resources/AudioLoader.h>
#include <XCEngine/Resources/ResourceTypes.h>
#include <XCEngine/Containers/Array.h>
using namespace XCEngine::Resources;
using namespace XCEngine::Containers;
namespace {
TEST(AudioLoader, GetResourceType) {
AudioLoader loader;
EXPECT_EQ(loader.GetResourceType(), ResourceType::AudioClip);
}
TEST(AudioLoader, GetSupportedExtensions) {
AudioLoader loader;
auto extensions = loader.GetSupportedExtensions();
EXPECT_GE(extensions.Size(), 1u);
}
TEST(AudioLoader, CanLoad) {
AudioLoader loader;
EXPECT_TRUE(loader.CanLoad("test.wav"));
EXPECT_TRUE(loader.CanLoad("test.mp3"));
EXPECT_TRUE(loader.CanLoad("test.ogg"));
EXPECT_FALSE(loader.CanLoad("test.txt"));
EXPECT_FALSE(loader.CanLoad("test.png"));
}
TEST(AudioLoader, LoadInvalidPath) {
AudioLoader loader;
LoadResult result = loader.Load("invalid/path/audio.wav");
EXPECT_FALSE(result);
}
} // namespace