< Summary

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

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
FilterIgnoredLayerMasksCorrectly()0%440100%
ForcePopulateRenderersListCorrectly(...)0%220100%

File(s)

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

#LineLine coverage
 1using DCL.Rendering;
 2using NUnit.Framework;
 3using System.Collections;
 4using System.Linq;
 5using UnityEngine;
 6using UnityEngine.TestTools;
 7
 8namespace CullingControllerTests
 9{
 10    public class CullingObjectsTrackerShould
 11    {
 12        [UnityTest]
 13        public IEnumerator FilterIgnoredLayerMasksCorrectly()
 14        {
 15            // Arrange
 116            int layer = 5;
 117            int layerMask = 1 << layer;
 118            var tracker = new CullingObjectsTracker();
 119            tracker.SetIgnoredLayersMask(layerMask);
 20
 121            var testGameObjectA = new GameObject();
 122            var originalRendererA = testGameObjectA.AddComponent<MeshRenderer>();
 123            testGameObjectA.layer = layer;
 24
 125            var testGameObjectB = new GameObject();
 126            var originalRendererB = testGameObjectB.AddComponent<MeshRenderer>();
 127            testGameObjectB.layer = 0;
 28
 129            var testGameObjectC = new GameObject();
 130            var originalRendererC = testGameObjectC.AddComponent<SkinnedMeshRenderer>();
 131            testGameObjectC.layer = layer;
 32
 133            var testGameObjectD = new GameObject();
 134            var originalRendererD = testGameObjectD.AddComponent<SkinnedMeshRenderer>();
 135            testGameObjectD.layer = 0;
 36
 37            Renderer[] renderers = null;
 338            Renderer obtainedRendererA = null, obtainedRendererB = null, obtainedRendererC = null, obtainedRendererD = n
 39
 40            // Act
 141            yield return tracker.PopulateRenderersList();
 42
 143            renderers = tracker.GetRenderers();
 1944            obtainedRendererA = renderers.FirstOrDefault( x => x == originalRendererA );
 245            obtainedRendererB = renderers.FirstOrDefault( x => x == originalRendererB );
 246            obtainedRendererC = tracker.GetSkinnedRenderers().FirstOrDefault( x => x == originalRendererC );
 247            obtainedRendererD = tracker.GetSkinnedRenderers().FirstOrDefault( x => x == originalRendererD );
 48
 49            // Assert
 150            Assert.IsTrue(originalRendererA != null);
 151            Assert.IsTrue(originalRendererB != null);
 152            Assert.IsTrue(originalRendererC != null);
 153            Assert.IsTrue(originalRendererD != null);
 54
 155            Assert.IsTrue(obtainedRendererA == null, "Renderer should be null because it has an invalid layer");
 156            Assert.IsTrue(obtainedRendererB != null, "Renderer should not be null because it has a valid layer");
 157            Assert.IsTrue(obtainedRendererC == null, "Skinned renderer should be null because it has a invalid layer");
 158            Assert.IsTrue(obtainedRendererD != null, "Skinned renderer should not be null because it has a valid layer")
 59
 60            // Cleanup
 161            Object.Destroy(testGameObjectA);
 162            Object.Destroy(testGameObjectB);
 163            Object.Destroy(testGameObjectC);
 164            Object.Destroy(testGameObjectD);
 65
 166            yield return null;
 167        }
 68
 69        [Test]
 70        [TestCase(true)]
 71        [TestCase(false)]
 72        public void ForcePopulateRenderersListCorrectly(bool includeInactives)
 73        {
 74            // Arrange
 275            var tracker = new CullingObjectsTracker();
 276            var testGameObject = new GameObject();
 277            var originalRenderer = testGameObject.AddComponent<MeshRenderer>();
 278            testGameObject.SetActive(false);
 79
 80            // Act
 281            tracker.ForcePopulateRenderersList(includeInactives);
 82
 283            Renderer[] renderers = tracker.GetRenderers();
 2084            Renderer obtainedRenderer = tracker.GetRenderers().FirstOrDefault(x => x == originalRenderer);
 85
 86            // Assert
 287            Assert.IsTrue(originalRenderer != null);
 88
 289            if (includeInactives)
 190                Assert.IsTrue(obtainedRenderer != null, "Renderer should not be null because it is taking on account the
 91            else
 192                Assert.IsTrue(obtainedRenderer == null, "Renderer should be null because it is not taking on account the
 93
 94            // Cleanup
 295            Object.Destroy(testGameObject);
 296        }
 97    }
 98}