UnityGame/Library/PackageCache/com.unity.render-pipelines.universal/Tests/Editor/URPGlobalSettingsMigrationTests/RenderingLayersMigrationTest.cs

95 lines
3.3 KiB
C#
Raw Normal View History

2024-10-27 10:53:47 +03:00
using System.Collections.Generic;
using System.Linq;
using NUnit.Framework;
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;
using ShaderVariantLogLevel = UnityEngine.Rendering.ShaderVariantLogLevel;
namespace UnityEditor.Rendering.Universal.Test.GlobalSettingsMigration
{
class RenderingLayersMigrationTest : GlobalSettingsMigrationTest
{
class TestCase1 : IGlobalSettingsMigrationTestCase
{
private List<string> m_RollbackLayers = new();
public void SetUp(UniversalRenderPipelineGlobalSettings globalSettingsAsset,
UniversalRenderPipelineAsset renderPipelineAsset)
{
#pragma warning disable 618 // Type or member is obsolete
globalSettingsAsset.m_RenderingLayerNames = new string[5]
{
"Test Layer 1",
"Test Layer 2",
"Test Layer 3",
"Test Layer 4",
"Test Layer 5",
};
#pragma warning restore 618
m_RollbackLayers.Clear();
m_RollbackLayers.AddRange(RenderingLayerMask.GetDefinedRenderingLayerNames());
var count = RenderingLayerMask.GetDefinedRenderingLayerCount();
for (int i = 1; i < count; ++i)
{
RenderPipelineEditorUtility.TrySetRenderingLayerName(i, string.Empty);
}
globalSettingsAsset.m_AssetVersion = 6;
}
public void TearDown(UniversalRenderPipelineGlobalSettings globalSettingsAsset, UniversalRenderPipelineAsset renderPipelineAsset)
{
for (int i = 1; i < m_RollbackLayers.Count; ++i)
{
RenderPipelineEditorUtility.TrySetRenderingLayerName(i, m_RollbackLayers[i]);
}
}
public bool IsMigrationCorrect(out string message)
{
message = string.Empty;
if (RenderingLayerMask.GetDefinedRenderingLayerCount() != 5)
{
message = "Mismatch number of rendering layer count";
return false;
}
var expectedLayers = new string[5]
{
"Default",
"Test Layer 2",
"Test Layer 3",
"Test Layer 4",
"Test Layer 5",
};
string [] migratedLayers = RenderingLayerMask.GetDefinedRenderingLayerNames();
if (!expectedLayers.SequenceEqual(migratedLayers))
{
message = "Layers have not migrated correctly";
return false;
}
return true;
}
}
static TestCaseData[] s_TestCaseDatas =
{
new TestCaseData(new TestCase1())
.SetName(
"When performing a migration of Rendering Layers, settings are being transferred correctly to Tags and Layers"),
};
[Test, TestCaseSource(nameof(s_TestCaseDatas))]
public void PerformMigration(IGlobalSettingsMigrationTestCase testCase)
{
base.DoTest(testCase);
}
}
}