< Summary

Class:CullingControllerTests.CullingControllerAndScenesShould
Assembly:CullingControllerTests
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Rendering/Culling/Tests/CullingControllerAndScenesShould.cs
Covered lines:54
Uncovered lines:0
Coverable lines:54
Total lines:112
Line coverage:100% (54 of 54)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
SetUp()0%330100%
CullMovingEntities()0%550100%
TogglingOnAndOffSetRenderersCorrectly()0%550100%
StartStopCullingWithDisabledObjectsCorrectly()0%660100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Rendering/Culling/Tests/CullingControllerAndScenesShould.cs

#LineLine coverage
 1using System;
 2using System.Collections;
 3using System.Linq;
 4using DCL.Helpers;
 5using DCL.Rendering;
 6using UnityEngine;
 7using UnityEngine.Assertions;
 8using UnityEngine.TestTools;
 9using Environment = DCL.Environment;
 10
 11namespace CullingControllerTests
 12{
 13    public class CullingControllerAndScenesShould : IntegrationTestSuite_Legacy
 14    {
 15        protected override IEnumerator SetUp()
 16        {
 317            yield return base.SetUp();
 18
 319            Assert.IsFalse(Environment.i.platform.cullingController.IsRunning());
 20
 21            // If we get the settings copy here, it can be overriden with unwanted values
 22            // by QualitySettingsController, breaking this test!!.
 323            var settings = new CullingControllerSettings();
 324            settings.maxTimeBudget = 99999;
 325            Environment.i.platform.cullingController.SetSettings(settings);
 326            Environment.i.platform.cullingController.Start();
 27
 328            Assert.IsTrue(Environment.i.platform.cullingController.IsRunning());
 329            Assert.IsTrue(settings.enableObjectCulling);
 330        }
 31
 32        [UnityTest]
 33        public IEnumerator CullMovingEntities()
 34        {
 135            var boxShape = TestHelpers.CreateEntityWithBoxShape(scene, Vector3.one * 1000, true);
 136            var entity = boxShape.attachedEntities.First();
 37
 138            Assert.IsTrue(Environment.i.platform.cullingController.IsDirty(), "culling controller not dirty");
 139            Assert.IsTrue(Environment.i.platform.cullingController.objectsTracker.IsDirty(), "object tracker not dirty")
 40
 141            yield return boxShape.routine;
 42
 143            yield return
 744                new DCL.WaitUntil(() => entity.meshesInfo.renderers[0].forceRenderingOff, 0.3f);
 45
 146            Assert.IsTrue(entity.meshesInfo.renderers[0].forceRenderingOff, "renderer wasn't hidden!");
 47
 148            TestHelpers.SetEntityTransform(scene, entity, Vector3.zero, Quaternion.identity, Vector3.one);
 49
 150            yield return
 651                new DCL.WaitUntil(() => !entity.meshesInfo.renderers[0].forceRenderingOff, 0.3f);
 52
 153            Assert.IsFalse(entity.meshesInfo.renderers[0].forceRenderingOff, "renderer wasn't brought back!");
 154        }
 55
 56        [UnityTest]
 57        public IEnumerator TogglingOnAndOffSetRenderersCorrectly()
 58        {
 159            var boxShape = TestHelpers.CreateEntityWithBoxShape(scene, Vector3.one * 1000, true);
 160            var entity = boxShape.attachedEntities.First();
 61
 162            Assert.IsTrue(Environment.i.platform.cullingController.IsDirty(), "culling controller not dirty");
 163            Assert.IsTrue(Environment.i.platform.cullingController.objectsTracker.IsDirty(), "object tracker not dirty")
 64
 165            yield return boxShape.routine;
 66
 167            yield return
 768                new DCL.WaitUntil(() => entity.meshesInfo.renderers[0].forceRenderingOff, 0.3f);
 69
 170            Assert.IsTrue(entity.meshesInfo.renderers[0].forceRenderingOff, "renderer wasn't hidden!");
 71
 172            TestHelpers.SetEntityTransform(scene, entity, Vector3.zero, Quaternion.identity, Vector3.one);
 73
 174            var settings = Environment.i.platform.cullingController.GetSettingsCopy();
 175            settings.enableObjectCulling = false;
 176            Environment.i.platform.cullingController.SetSettings(settings);
 77
 178            yield return
 679                new DCL.WaitUntil(() => !entity.meshesInfo.renderers[0].forceRenderingOff, 0.3f);
 80
 181            Assert.IsFalse(entity.meshesInfo.renderers[0].forceRenderingOff, "renderer wasn't brought back!");
 182        }
 83
 84        [UnityTest]
 85        public IEnumerator StartStopCullingWithDisabledObjectsCorrectly()
 86        {
 187            var boxShape = TestHelpers.CreateEntityWithBoxShape(scene, Vector3.one * 1000, true);
 188            var entity = boxShape.attachedEntities.First();
 89
 190            Assert.IsTrue(Environment.i.platform.cullingController.IsDirty(), "culling controller not dirty");
 191            Assert.IsTrue(Environment.i.platform.cullingController.objectsTracker.IsDirty(), "object tracker not dirty")
 92
 193            yield return boxShape.routine;
 94
 195            yield return
 796                new DCL.WaitUntil(() => entity.meshesInfo.renderers[0].forceRenderingOff, 0.3f);
 97
 198            Assert.IsTrue(entity.meshesInfo.renderers[0].forceRenderingOff, "renderer wasn't hidden!");
 99
 1100            entity.gameObject.SetActive(false);
 1101            yield return null;
 102
 1103            Environment.i.platform.cullingController.Stop();
 1104            TestHelpers.SetEntityTransform(scene, entity, Vector3.zero, Quaternion.identity, Vector3.one);
 105
 1106            yield return
 1107                new DCL.WaitUntil(() => !entity.meshesInfo.renderers[0].forceRenderingOff, 0.3f);
 108
 1109            Assert.IsFalse(entity.meshesInfo.renderers[0].forceRenderingOff, "renderer wasn't brought back!");
 1110        }
 111    }
 112}