67 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			67 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| 
								 | 
							
								using NUnit.Framework;
							 | 
						||
| 
								 | 
							
								using UnityEngine;
							 | 
						||
| 
								 | 
							
								using UnityEngine.Rendering;
							 | 
						||
| 
								 | 
							
								using UnityEngine.Rendering.Universal;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace UnityEditor.Rendering.Universal.Test.GlobalSettingsMigration
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    class DefaultVolumeProfileSettingsMigrationTests : RenderPipelineGraphicsSettingsMigrationTestBase<URPDefaultVolumeProfileSettings>
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        class TestCase : IRenderPipelineGraphicsSettingsTestCase<URPDefaultVolumeProfileSettings>
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            bool m_ProfileExists;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            public TestCase(bool profileExists)
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                m_ProfileExists = profileExists;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            public void SetUp(UniversalRenderPipelineGlobalSettings globalSettingsAsset, UniversalRenderPipelineAsset renderPipelineAsset)
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								#pragma warning disable 618 // Type or member is obsolete
							 | 
						||
| 
								 | 
							
								                if (m_ProfileExists)
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    globalSettingsAsset.m_ObsoleteDefaultVolumeProfile = ScriptableObject.CreateInstance<VolumeProfile>();
							 | 
						||
| 
								 | 
							
								                    globalSettingsAsset.m_ObsoleteDefaultVolumeProfile.name = "MigratedProfile";
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								                else
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    globalSettingsAsset.m_ObsoleteDefaultVolumeProfile = null;
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                globalSettingsAsset.m_AssetVersion = 4;
							 | 
						||
| 
								 | 
							
								#pragma warning restore 618
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            public bool IsMigrationCorrect(URPDefaultVolumeProfileSettings settings, out string message)
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                if (settings.volumeProfile == null)
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    message = "The default volume profile is null";
							 | 
						||
| 
								 | 
							
								                    return false;
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                message = $"{settings.volumeProfile.name} is not correct";
							 | 
						||
| 
								 | 
							
								                return settings.volumeProfile.name.Equals(m_ProfileExists
							 | 
						||
| 
								 | 
							
								                        ? "MigratedProfile"
							 | 
						||
| 
								 | 
							
								                        : "DefaultVolumeProfile");
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        static TestCaseData[] s_TestCaseDatas =
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            new TestCaseData(new TestCase(true))
							 | 
						||
| 
								 | 
							
								                .SetName("When migrating an existing volume profile, settings are being transferred correctly"),
							 | 
						||
| 
								 | 
							
								            new TestCaseData(new TestCase(false))
							 | 
						||
| 
								 | 
							
								                .SetName("When migrating a non-existing volume profile, the volume profile is being gather correctly"),
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        [Test, TestCaseSource(nameof(s_TestCaseDatas))]
							 | 
						||
| 
								 | 
							
								        public void PerformMigration(IRenderPipelineGraphicsSettingsTestCase<URPDefaultVolumeProfileSettings> testCase)
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            base.DoTest(testCase);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |