Brak opisu
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

PostProcessDataAnalyticsTests.cs 5.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using NUnit.Framework;
  4. using UnityEngine.Pool;
  5. using UnityEngine.Rendering.Universal;
  6. using Assert = UnityEngine.Assertions.Assert;
  7. namespace UnityEditor.Rendering.Universal
  8. {
  9. class PostProcessDataAnalyticsTests
  10. {
  11. private static PostProcessDataAnalytics.Analytic.PropertyToGUIDs[] s_Datas = new[]
  12. {
  13. new PostProcessDataAnalytics.Analytic.PropertyToGUIDs()
  14. {
  15. propertyName = "bloomPS",
  16. defaultGUID = "5f1864addb451f54bae8c86d230f736e",
  17. usedGUIDs = new List<string>()
  18. {
  19. "a176945d0e562084691bce8e11084c6a",
  20. }
  21. },
  22. new PostProcessDataAnalytics.Analytic.PropertyToGUIDs()
  23. {
  24. propertyName = "bloomPS",
  25. defaultGUID = "5f1864addb451f54bae8c86d230f736e",
  26. usedGUIDs = new List<string>()
  27. {
  28. "a176945d0e562084691bce8e11084c6a",
  29. "a176945d0e562084691bce8e11084c6a"
  30. }
  31. },
  32. new PostProcessDataAnalytics.Analytic.PropertyToGUIDs()
  33. {
  34. propertyName = "bloomPS",
  35. defaultGUID = "5f1864addb451f54bae8c86d230f736e",
  36. usedGUIDs = new List<string>()
  37. {
  38. "ace59f7f124432f4f923bd3bfa93e0ad",
  39. "a176945d0e562084691bce8e11084c6a"
  40. }
  41. }
  42. };
  43. private static IEnumerable<(string[], PostProcessDataAnalytics.Analytic.PropertyToGUIDs)> TestDataExtractData()
  44. {
  45. yield return (
  46. new string[]
  47. {
  48. "Packages/com.unity.render-pipelines.universal/Tests/Editor/PostProcessDataTests/PostProcessData BloomPS Different.asset",
  49. },
  50. s_Datas[0]);
  51. yield return (
  52. new string[]
  53. {
  54. "Packages/com.unity.render-pipelines.universal/Tests/Editor/PostProcessDataTests/PostProcessData BloomPS Different.asset",
  55. "Packages/com.unity.render-pipelines.universal/Tests/Editor/PostProcessDataTests/PostProcessData BloomPS Different.asset",
  56. },
  57. s_Datas[1]);
  58. yield return (
  59. new string[]
  60. {
  61. "Packages/com.unity.render-pipelines.universal/Tests/Editor/PostProcessDataTests/PostProcessData BloomPS Different 1.asset",
  62. "Packages/com.unity.render-pipelines.universal/Tests/Editor/PostProcessDataTests/PostProcessData BloomPS Different.asset",
  63. },
  64. s_Datas[2]);
  65. }
  66. [Test][TestCaseSource(nameof(TestDataExtractData))]
  67. public void DataIsExtractedCorrectly((string[] input, PostProcessDataAnalytics.Analytic.PropertyToGUIDs expected) testCase)
  68. {
  69. using (ListPool<PostProcessData>.Get(out var tmp))
  70. {
  71. foreach (var i in testCase.input)
  72. {
  73. var asset = AssetDatabase.LoadAssetAtPath<PostProcessData>(i);
  74. Assert.IsNotNull(asset, $"Unable to load asset at {i}");
  75. tmp.Add(asset);
  76. }
  77. var data = PostProcessDataAnalytics.Analytic.ExtractData(tmp);
  78. var bloom = data.FirstOrDefault(d =>
  79. d.propertyName.Equals(nameof(PostProcessData.ShaderResources.bloomPS)));
  80. Assert.IsNotNull(bloom);
  81. Assert.AreEqual(testCase.expected.propertyName, bloom.propertyName);
  82. Assert.AreEqual(testCase.expected.defaultGUID, bloom.defaultGUID);
  83. CollectionAssert.AreEqual(testCase.expected.usedGUIDs, bloom.usedGUIDs);
  84. }
  85. }
  86. private static IEnumerable<(PostProcessDataAnalytics.Analytic.PropertyToGUIDs, PostProcessDataAnalytics.Analytic.Usage)> TestData()
  87. {
  88. yield return (s_Datas[0], PostProcessDataAnalytics.Analytic.Usage.ModifiedForTheProject);
  89. yield return (s_Datas[1], PostProcessDataAnalytics.Analytic.Usage.ModifiedForTheProject);
  90. yield return (s_Datas[2], PostProcessDataAnalytics.Analytic.Usage.ModifiedForEachQualityLevel);
  91. }
  92. [Test]
  93. [TestCaseSource(nameof(TestData))]
  94. public void GenerateMapWithDifferencesTests((PostProcessDataAnalytics.Analytic.PropertyToGUIDs input, PostProcessDataAnalytics.Analytic.Usage expected) testCase)
  95. {
  96. var dataToSent =
  97. PostProcessDataAnalytics.Analytic.GatherDataToBeSent(new [] {testCase.input });
  98. int count = 0;
  99. foreach (PostProcessDataAnalytics.Analytic.AnalyticsData i in dataToSent)
  100. {
  101. if (i.property.Equals(nameof(PostProcessData.ShaderResources.bloomPS)))
  102. Assert.AreEqual(i.usage, testCase.expected.ToString());
  103. ++count;
  104. }
  105. Assert.AreEqual(1, count);
  106. }
  107. }
  108. }