231 lines
8.2 KiB
C#
231 lines
8.2 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Text;
|
|
using System.Collections;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using UnityEngine.U2D;
|
|
using UnityEngine.TestTools;
|
|
using NUnit.Framework;
|
|
using YooAsset;
|
|
|
|
public class T2_TestBuldinFileSystem : IPrebuildSetup, IPostBuildCleanup
|
|
{
|
|
public const string ASSET_BUNDLE_PACKAGE_ROOT_KEY = "T2_ASSET_BUNDLE_PACKAGE_ROOT_KEY";
|
|
public const string RAW_BUNDLE_PACKAGE_ROOT_KEY = "T2_RAW_BUNDLE_PACKAGE_ROOT_KEY";
|
|
|
|
void IPrebuildSetup.Setup()
|
|
{
|
|
#if UNITY_EDITOR
|
|
// 构建AssetBundlePackage
|
|
{
|
|
var buildParams = new PackageInvokeBuildParam(TestDefine.AssetBundlePackageName);
|
|
buildParams.BuildPipelineName = "ScriptableBuildPipeline";
|
|
buildParams.InvokeAssmeblyName = "YooAsset.Test.Editor";
|
|
buildParams.InvokeClassFullName = "TestPackageBuilder";
|
|
buildParams.InvokeMethodName = "BuildPackage";
|
|
var simulateResult = PackageInvokeBuilder.InvokeBuilder(buildParams);
|
|
UnityEditor.EditorPrefs.SetString(ASSET_BUNDLE_PACKAGE_ROOT_KEY, simulateResult.PackageRootDirectory);
|
|
}
|
|
|
|
// 构建RawBundlePackage
|
|
{
|
|
var buildParams = new PackageInvokeBuildParam(TestDefine.RawBundlePackageName);
|
|
buildParams.BuildPipelineName = "RawFileBuildPipeline";
|
|
buildParams.InvokeAssmeblyName = "YooAsset.Test.Editor";
|
|
buildParams.InvokeClassFullName = "TestPackageBuilder";
|
|
buildParams.InvokeMethodName = "BuildPackage";
|
|
var simulateResult = PackageInvokeBuilder.InvokeBuilder(buildParams);
|
|
UnityEditor.EditorPrefs.SetString(RAW_BUNDLE_PACKAGE_ROOT_KEY, simulateResult.PackageRootDirectory);
|
|
}
|
|
#endif
|
|
}
|
|
void IPostBuildCleanup.Cleanup()
|
|
{
|
|
}
|
|
|
|
[UnityTest]
|
|
public IEnumerator A_InitializePackage()
|
|
{
|
|
// 初始化资源包 ASSET_BUNDLE
|
|
{
|
|
string packageRoot = string.Empty;
|
|
#if UNITY_EDITOR
|
|
packageRoot = UnityEditor.EditorPrefs.GetString(ASSET_BUNDLE_PACKAGE_ROOT_KEY);
|
|
#endif
|
|
if (Directory.Exists(packageRoot) == false)
|
|
throw new Exception($"Not found package root : {packageRoot}");
|
|
|
|
var package = YooAssets.CreatePackage(TestDefine.AssetBundlePackageName);
|
|
|
|
// 初始化资源包
|
|
var initParams = new OfflinePlayModeParameters();
|
|
var fileDecryption = new TestFileStreamDecryption();
|
|
var manifestServices = new TestRestoreManifest();
|
|
initParams.BuildinFileSystemParameters = FileSystemParameters.CreateDefaultBuildinFileSystemParameters(fileDecryption, packageRoot);
|
|
initParams.BuildinFileSystemParameters.AddParameter(FileSystemParametersDefine.DISABLE_CATALOG_FILE, true);
|
|
initParams.BuildinFileSystemParameters.AddParameter(FileSystemParametersDefine.MANIFEST_SERVICES, manifestServices);
|
|
var initializeOp = package.InitializeAsync(initParams);
|
|
yield return initializeOp;
|
|
if (initializeOp.Status != EOperationStatus.Succeed)
|
|
Debug.LogError(initializeOp.Error);
|
|
Assert.AreEqual(EOperationStatus.Succeed, initializeOp.Status);
|
|
|
|
// 请求资源版本
|
|
var requetVersionOp = package.RequestPackageVersionAsync();
|
|
yield return requetVersionOp;
|
|
if (requetVersionOp.Status != EOperationStatus.Succeed)
|
|
Debug.LogError(requetVersionOp.Error);
|
|
Assert.AreEqual(EOperationStatus.Succeed, requetVersionOp.Status);
|
|
|
|
// 更新资源清单
|
|
var updateManifestOp = package.UpdatePackageManifestAsync(requetVersionOp.PackageVersion);
|
|
yield return updateManifestOp;
|
|
if (updateManifestOp.Status != EOperationStatus.Succeed)
|
|
Debug.LogError(updateManifestOp.Error);
|
|
Assert.AreEqual(EOperationStatus.Succeed, updateManifestOp.Status);
|
|
}
|
|
|
|
// 初始化资源包 RAW_BUNDLE
|
|
{
|
|
string packageRoot = string.Empty;
|
|
#if UNITY_EDITOR
|
|
packageRoot = UnityEditor.EditorPrefs.GetString(RAW_BUNDLE_PACKAGE_ROOT_KEY);
|
|
#endif
|
|
if (Directory.Exists(packageRoot) == false)
|
|
throw new Exception($"Not found package root : {packageRoot}");
|
|
|
|
var package = YooAssets.CreatePackage(TestDefine.RawBundlePackageName);
|
|
|
|
// 初始化资源包
|
|
var initParams = new OfflinePlayModeParameters();
|
|
initParams.BuildinFileSystemParameters = FileSystemParameters.CreateDefaultBuildinFileSystemParameters(null, packageRoot);
|
|
initParams.BuildinFileSystemParameters.AddParameter(FileSystemParametersDefine.APPEND_FILE_EXTENSION, true);
|
|
initParams.BuildinFileSystemParameters.AddParameter(FileSystemParametersDefine.DISABLE_CATALOG_FILE, true);
|
|
var initializeOp = package.InitializeAsync(initParams);
|
|
yield return initializeOp;
|
|
if (initializeOp.Status != EOperationStatus.Succeed)
|
|
Debug.LogError(initializeOp.Error);
|
|
Assert.AreEqual(EOperationStatus.Succeed, initializeOp.Status);
|
|
|
|
// 请求资源版本
|
|
var requetVersionOp = package.RequestPackageVersionAsync();
|
|
yield return requetVersionOp;
|
|
if (requetVersionOp.Status != EOperationStatus.Succeed)
|
|
Debug.LogError(requetVersionOp.Error);
|
|
Assert.AreEqual(EOperationStatus.Succeed, requetVersionOp.Status);
|
|
|
|
// 更新资源清单
|
|
var updateManifestOp = package.UpdatePackageManifestAsync(requetVersionOp.PackageVersion);
|
|
yield return updateManifestOp;
|
|
if (updateManifestOp.Status != EOperationStatus.Succeed)
|
|
Debug.LogError(updateManifestOp.Error);
|
|
Assert.AreEqual(EOperationStatus.Succeed, updateManifestOp.Status);
|
|
}
|
|
}
|
|
|
|
[UnityTest]
|
|
public IEnumerator B1_TestAsyncTask()
|
|
{
|
|
var tester = new TestAsyncTask();
|
|
yield return tester.RuntimeTester();
|
|
}
|
|
|
|
[UnityTest]
|
|
public IEnumerator B2_TestLoadAsset()
|
|
{
|
|
var tester = new TestLoadAsset();
|
|
yield return tester.RuntimeTester();
|
|
}
|
|
|
|
[UnityTest]
|
|
public IEnumerator B3_TestLoadSubAssets()
|
|
{
|
|
var tester = new TestLoadSubAssets();
|
|
yield return tester.RuntimeTester();
|
|
}
|
|
|
|
[UnityTest]
|
|
public IEnumerator B4_TestLoadAllAssets()
|
|
{
|
|
var tester = new TestLoadAllAssets();
|
|
yield return tester.RuntimeTester();
|
|
}
|
|
|
|
[UnityTest]
|
|
public IEnumerator B5_TestLoadSpriteAtlas()
|
|
{
|
|
var tester = new TestLoadSpriteAtlas();
|
|
yield return tester.RuntimeTester();
|
|
}
|
|
|
|
[UnityTest]
|
|
public IEnumerator B6_TestLoadScriptableObject()
|
|
{
|
|
var tester = new TestLoadScriptableObject();
|
|
yield return tester.RuntimeTester();
|
|
}
|
|
|
|
[UnityTest]
|
|
public IEnumerator B7_TestLoadScene()
|
|
{
|
|
var tester = new TestLoadScene();
|
|
yield return tester.RuntimeTester();
|
|
}
|
|
|
|
[UnityTest]
|
|
public IEnumerator B8_TestLoadRawFile()
|
|
{
|
|
var tester = new TestLoadRawFile();
|
|
yield return tester.RuntimeTester();
|
|
}
|
|
|
|
[UnityTest]
|
|
public IEnumerator B9_TestLoadVideo()
|
|
{
|
|
var tester = new TestLoadVideo();
|
|
yield return tester.RuntimeTester();
|
|
}
|
|
|
|
[UnityTest]
|
|
public IEnumerator C1_TestGetAssetInfos()
|
|
{
|
|
var tester = new TestGetAssetInfos();
|
|
yield return tester.RuntimeTester();
|
|
}
|
|
|
|
[UnityTest]
|
|
public IEnumerator C2_TestBundleEncryption()
|
|
{
|
|
var tester = new TestBundleEncryption();
|
|
yield return tester.RuntimeTester();
|
|
}
|
|
|
|
[UnityTest]
|
|
public IEnumerator C3_TestBundleUnpacker()
|
|
{
|
|
var tester = new TestBundleUnpacker();
|
|
yield return tester.RuntimeTester();
|
|
}
|
|
|
|
[UnityTest]
|
|
public IEnumerator C4_TestBundleReference()
|
|
{
|
|
var tester = new TestBundleReference();
|
|
yield return tester.RuntimeTester();
|
|
}
|
|
|
|
[UnityTest]
|
|
public IEnumerator C4_TestBundleUnload()
|
|
{
|
|
var tester = new TestBundleUnload();
|
|
yield return tester.RuntimeTester();
|
|
}
|
|
|
|
[UnityTest]
|
|
public IEnumerator D_DestroyPackage()
|
|
{
|
|
var tester = new TestDestroyPackage();
|
|
yield return tester.RuntimeTester(true);
|
|
}
|
|
} |