Files
YooAsset/Assets/YooAsset/Samples~/Test Sample/Runtime/CommonTests/TestLoadRawFile.cs
2026-05-09 17:30:10 +08:00

96 lines
3.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Text;
using System.IO;
using System.Collections;
using UnityEngine.TestTools;
using NUnit.Framework;
using YooAsset;
/// <summary>
/// 测试原生文件加载
/// </summary>
/// <remarks>
/// 覆盖 API: LoadRawFileAsync / LoadRawFileSync / LoadAssetAsync(RawFileObject) / LoadAssetSync(RawFileObject)
/// 测试内容:
/// 1. 异步加载原生文件获取文件路径验证文件存在且二进制数据非空raw_file_a
/// 2. 同步加载原生文件获取文件路径验证文件存在且二进制数据非空raw_file_b
/// 3. 异步通过 RawFileObject 加载,验证 GetBytes() 和 GetText() 均返回有效数据raw_file_c
/// 4. 同步通过 RawFileObject 加载,验证 GetBytes() 和 GetText() 均返回有效数据raw_file_d
/// </remarks>
public class TestLoadRawFile
{
public IEnumerator RuntimeTester()
{
ResourcePackage package = YooAssets.GetPackage(TestConsts.RawBundlePackageName);
Assert.IsNotNull(package);
// 测试异步加载
{
var rawFileHandle = package.LoadRawFileAsync("raw_file_a");
yield return rawFileHandle;
Assert.AreEqual(EOperationStatus.Succeeded, rawFileHandle.Status);
var filePath = rawFileHandle.GetRawFilePath();
Assert.IsNotNull(filePath);
Assert.IsTrue(File.Exists(filePath));
byte[] fileBytes = File.ReadAllBytes(filePath);
Assert.IsNotNull(fileBytes);
Assert.Greater(fileBytes.Length, 0);
rawFileHandle.Release();
}
// 测试同步加载
{
var rawFileHandle = package.LoadRawFileSync("raw_file_b");
Assert.AreEqual(EOperationStatus.Succeeded, rawFileHandle.Status);
var filePath = rawFileHandle.GetRawFilePath();
Assert.IsNotNull(filePath);
Assert.IsTrue(File.Exists(filePath));
byte[] fileBytes = File.ReadAllBytes(filePath);
Assert.IsNotNull(fileBytes);
Assert.Greater(fileBytes.Length, 0);
rawFileHandle.Release();
}
// 测试异步加载:通过 RawFileObject 获取二进制数据和文本数据
{
var assetHandle = package.LoadAssetAsync<RawFileObject>("raw_file_c");
yield return assetHandle;
Assert.AreEqual(EOperationStatus.Succeeded, assetHandle.Status);
var rawFileObject = assetHandle.GetAssetObject<RawFileObject>();
Assert.IsNotNull(rawFileObject);
byte[] fileBytes = rawFileObject.GetBytes();
Assert.IsNotNull(fileBytes);
Assert.Greater(fileBytes.Length, 0);
string fileText = rawFileObject.GetText();
Assert.IsNotNull(fileText);
Assert.IsNotEmpty(fileText);
assetHandle.Release();
}
// 测试同步加载:通过 RawFileObject 获取二进制数据和文本数据
{
var assetHandle = package.LoadAssetSync<RawFileObject>("raw_file_d");
Assert.AreEqual(EOperationStatus.Succeeded, assetHandle.Status);
var rawFileObject = assetHandle.GetAssetObject<RawFileObject>();
Assert.IsNotNull(rawFileObject);
byte[] fileBytes = rawFileObject.GetBytes();
Assert.IsNotNull(fileBytes);
Assert.Greater(fileBytes.Length, 0);
string fileText = rawFileObject.GetText();
Assert.IsNotNull(fileText);
Assert.IsNotEmpty(fileText);
assetHandle.Release();
}
}
}