< Summary

Class:Tests.AvatarShapeTests
Assembly:AvatarShapeTests
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/Avatar/Tests/AvatarShapeTests.cs
Covered lines:8
Uncovered lines:39
Coverable lines:47
Total lines:120
Line coverage:17% (8 of 47)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
AssertMaterialsAreCorrect(...)0%12300%
DestroyWhileLoading()0%440100%
InterpolatePosition()0%20400%
MaterialsSetCorrectly()0%12300%
NameBackgroundHasCorrectSize()0%20400%
WhenTwoAvatarsLoadAtTheSameTimeTheyHaveProperMaterials()0%12300%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Components/Avatar/Tests/AvatarShapeTests.cs

#LineLine coverage
 1using AvatarShape_Tests;
 2using DCL;
 3using DCL.Helpers;
 4using NUnit.Framework;
 5using System.Collections;
 6using DCL.Components;
 7using DCL.Interface;
 8using UnityEngine;
 9using UnityEngine.TestTools;
 10
 11namespace Tests
 12{
 13    public class AvatarShapeTests : IntegrationTestSuite_Legacy
 14    {
 15
 16        void AssertMaterialsAreCorrect(Transform root)
 17        {
 018            Renderer[] renderers = root.GetComponentsInChildren<Renderer>();
 19
 020            for (int i = 0; i < renderers.Length; i++)
 21            {
 022                Renderer renderer = renderers[i];
 23
 024                for (int i1 = 0; i1 < renderer.sharedMaterials.Length; i1++)
 25                {
 026                    Material material = renderer.sharedMaterials[i1];
 027                    Assert.IsTrue(!material.shader.name.Contains("Lit"), $"Material must not be LWRP Lit. found {materia
 28                }
 29            }
 030        }
 31
 32        [UnityTest]
 33        public IEnumerator DestroyWhileLoading()
 34        {
 135            AvatarAssetsTestHelpers.CreateTestCatalogLocal();
 136            AvatarShape avatar = AvatarShapeTestHelpers.CreateAvatarShape(scene, "Abortit", "TestAvatar.json");
 37
 138            GameObject goEntity = avatar.entity.gameObject;
 39
 140            TestHelpers.RemoveSceneEntity(scene, avatar.entity);
 41
 142            yield return null;
 43
 144            bool destroyedOrPooled = goEntity == null || !goEntity.activeSelf;
 145            Assert.IsTrue(destroyedOrPooled);
 146        }
 47
 48        [UnityTest]
 49        [Category("Explicit")]
 50        [Explicit("Test too slow")]
 51        public IEnumerator InterpolatePosition()
 52        {
 053            AvatarAssetsTestHelpers.CreateTestCatalogLocal();
 054            AvatarShape avatar = AvatarShapeTestHelpers.CreateAvatarShape(scene, "Abortitus", "TestAvatar.json");
 55
 56            // We must wait for the AvatarShape to finish or the OnTransformChanged event is not used
 057            yield return new DCL.WaitUntil(() => avatar.everythingIsLoaded, 20);
 58
 059            Assert.AreEqual(0f, avatar.entity.gameObject.transform.position.x);
 060            Assert.AreEqual(0f, avatar.entity.gameObject.transform.position.z);
 61
 62            // Update position to the other end of the parcel
 063            var transformModel = new DCLTransform.Model { position = new Vector3(15, 2, 15) };
 64
 065            TestHelpers.SetEntityTransform(scene, avatar.entity, transformModel);
 66
 067            yield return null;
 68
 069            Assert.AreNotEqual(15f, avatar.entity.gameObject.transform.position.x);
 070            Assert.AreNotEqual(15f, avatar.entity.gameObject.transform.position.z);
 071        }
 72
 73        [UnityTest]
 74        [Category("Explicit")]
 75        [Explicit("Test too slow")]
 76        public IEnumerator MaterialsSetCorrectly()
 77        {
 078            AvatarAssetsTestHelpers.CreateTestCatalogLocal();
 079            AvatarShape avatar = AvatarShapeTestHelpers.CreateAvatarShape(scene, "Joan Darteis", "TestAvatar.json");
 080            yield return new DCL.WaitUntil(() => avatar.everythingIsLoaded, 20);
 81
 082            AssertMaterialsAreCorrect(avatar.transform);
 083        }
 84
 85        [UnityTest]
 86        [Category("Explicit")]
 87        [Explicit("Test too slow")]
 88        public IEnumerator NameBackgroundHasCorrectSize()
 89        {
 090            AvatarAssetsTestHelpers.CreateTestCatalogLocal();
 091            AvatarShape avatar = AvatarShapeTestHelpers.CreateAvatarShape(scene, "Maiqel Yacson", "TestAvatar.json");
 092            yield return new DCL.WaitUntil(() => avatar.everythingIsLoaded, 20);
 93
 094            avatar.transform.position = new Vector3(13, 0, 4);
 95
 096            RectTransform rt = avatar.avatarName.uiContainer.GetComponent<RectTransform>();
 97
 098            Assert.IsTrue((int)Mathf.Abs(rt.sizeDelta.x) == 190 && (int)Mathf.Abs(rt.sizeDelta.y) == 40, $"Avatar name d
 099        }
 100
 101        [UnityTest]
 102        [Category("Explicit")]
 103        [Explicit("Test too slow")]
 104        public IEnumerator WhenTwoAvatarsLoadAtTheSameTimeTheyHaveProperMaterials()
 105        {
 106            //NOTE(Brian): Avatars must be equal to share their meshes.
 0107            AvatarAssetsTestHelpers.CreateTestCatalogLocal();
 0108            AvatarShape avatar = AvatarShapeTestHelpers.CreateAvatarShape(scene, "Naicholas Keig", "TestAvatar.json");
 0109            AvatarShape avatar2 = AvatarShapeTestHelpers.CreateAvatarShape(scene, "Naicholas Keig", "TestAvatar2.json");
 110
 0111            avatar.transform.position = new Vector3(-5, 0, 0);
 0112            avatar2.transform.position = new Vector3(5, 0, 0);
 113
 0114            yield return new DCL.WaitUntil(() => avatar.everythingIsLoaded && avatar2.everythingIsLoaded, 25);
 115
 0116            AssertMaterialsAreCorrect(avatar.transform);
 0117            AssertMaterialsAreCorrect(avatar2.transform);
 0118        }
 119    }
 120}