95 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			95 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| 
								 | 
							
								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);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |