< Summary

Class:AvatarEditorHUD_Tests.WearableItemsShould
Assembly:AvatarEditorHUDTests
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/AvatarEditorHUD/Tests/AvatarEditorHUDTests.cs
Covered lines:57
Uncovered lines:0
Coverable lines:57
Total lines:133
Line coverage:100% (57 of 57)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
SetUp()0%330100%
TearDown()0%330100%
BeAddedWhenEquiped()0%110100%
BeReplacedByGeneralReplaces()0%110100%
NotBeReplacedByWrongGeneralReplaces()0%110100%
BeReplacedByOverrideReplaces()0%110100%
NotBeReplacedByWrongOverrideReplaces()0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/AvatarEditorHUD/Tests/AvatarEditorHUDTests.cs

#LineLine coverage
 1using AvatarShape_Tests;
 2using DCL;
 3using NUnit.Framework;
 4using System.Collections;
 5using System.Collections.Generic;
 6using UnityEngine;
 7using UnityEngine.TestTools;
 8
 9namespace AvatarEditorHUD_Tests
 10{
 11    public class AvatarEditorHUDController_Mock : AvatarEditorHUDController
 12    {
 13        public AvatarEditorHUDModel myModel => model;
 14        public AvatarEditorHUDView myView => view;
 15        public string[] myCategoriesThatMustHaveSelection => categoriesThatMustHaveSelection;
 16        public string[] myCategoriesToRandomize => categoriesToRandomize;
 17    }
 18
 19    public class WearableItemsShould : IntegrationTestSuite_Legacy
 20    {
 21        private UserProfile userProfile;
 22        private AvatarEditorHUDController_Mock controller;
 23        private BaseDictionary<string, WearableItem> catalog;
 24
 525        protected override bool justSceneSetUp => true;
 26
 27        [UnitySetUp]
 28        protected override IEnumerator SetUp()
 29        {
 530            yield return base.SetUp();
 31
 532            userProfile = ScriptableObject.CreateInstance<UserProfile>();
 533            userProfile.UpdateData(new UserProfileModel()
 34            {
 35                name = "name",
 36                email = "mail",
 37                avatar = new AvatarModel()
 38                {
 39                    bodyShape = WearableLiterals.BodyShapes.FEMALE,
 40                    wearables = new List<string>()
 41                        { }
 42                }
 43            }, false);
 44
 545            catalog = AvatarAssetsTestHelpers.CreateTestCatalogLocal();
 546            controller = new AvatarEditorHUDController_Mock();
 547            controller.Initialize(userProfile, catalog);
 548            DataStore.i.isPlayerRendererLoaded.Set(true);
 549        }
 50
 51        [UnityTearDown]
 52        protected override IEnumerator TearDown()
 53        {
 554            controller.CleanUp();
 555            yield return base.TearDown();
 556        }
 57
 58        [Test]
 59        public void BeAddedWhenEquiped()
 60        {
 161            var sunglassesId = "urn:decentraland:off-chain:base-avatars:black_sun_glasses";
 162            var sunglasses = catalog.Get(sunglassesId);
 63
 164            controller.WearableClicked(sunglassesId);
 165            Assert.IsTrue(controller.myModel.wearables.Contains(sunglasses));
 166        }
 67
 68        [Test]
 69        public void BeReplacedByGeneralReplaces()
 70        {
 171            var sunglassesId = "urn:decentraland:off-chain:base-avatars:black_sun_glasses";
 172            var sunglasses = catalog.Get(sunglassesId);
 173            var bandanaId = "urn:decentraland:off-chain:base-avatars:blue_bandana";
 174            var bandana = catalog.Get(bandanaId);
 75
 176            bandana.data.replaces = new[] { sunglasses.data.category };
 177            controller.WearableClicked(sunglassesId);
 178            controller.WearableClicked(bandanaId);
 79
 180            Assert.IsTrue(controller.myModel.wearables.Contains(bandana));
 181            Assert.IsFalse(controller.myModel.wearables.Contains(sunglasses));
 182        }
 83
 84        [Test]
 85        public void NotBeReplacedByWrongGeneralReplaces()
 86        {
 187            var sunglassesId = "urn:decentraland:off-chain:base-avatars:black_sun_glasses";
 188            var sunglasses = catalog.Get(sunglassesId);
 189            var bandanaId = "urn:decentraland:off-chain:base-avatars:blue_bandana";
 190            var bandana = catalog.Get(bandanaId);
 91
 192            bandana.data.replaces = new[] { "NonExistentCategory" };
 193            controller.WearableClicked(sunglassesId);
 194            controller.WearableClicked(bandanaId);
 95
 196            Assert.IsTrue(controller.myModel.wearables.Contains(bandana));
 197            Assert.IsTrue(controller.myModel.wearables.Contains(sunglasses));
 198        }
 99
 100        [Test]
 101        public void BeReplacedByOverrideReplaces()
 102        {
 1103            var sunglassesId = "urn:decentraland:off-chain:base-avatars:black_sun_glasses";
 1104            var sunglasses = catalog.Get(sunglassesId);
 1105            var bandanaId = "urn:decentraland:off-chain:base-avatars:blue_bandana";
 1106            var bandana = catalog.Get(bandanaId);
 107
 1108            bandana.GetRepresentation(userProfile.avatar.bodyShape).overrideReplaces = new[] { sunglasses.data.category 
 1109            controller.WearableClicked(sunglassesId);
 1110            controller.WearableClicked(bandanaId);
 111
 1112            Assert.IsTrue(controller.myModel.wearables.Contains(bandana));
 1113            Assert.IsFalse(controller.myModel.wearables.Contains(sunglasses));
 1114        }
 115
 116        [Test]
 117        public void NotBeReplacedByWrongOverrideReplaces()
 118        {
 1119            var sunglassesId = "urn:decentraland:off-chain:base-avatars:black_sun_glasses";
 1120            var sunglasses = catalog.Get(sunglassesId);
 1121            var bandanaId = "urn:decentraland:off-chain:base-avatars:blue_bandana";
 1122            var bandana = catalog.Get(bandanaId);
 123
 1124            bandana.GetRepresentation(WearableLiterals.BodyShapes.MALE)
 125                .overrideReplaces = new[] { sunglasses.data.category };
 1126            controller.WearableClicked(sunglassesId);
 1127            controller.WearableClicked(bandanaId);
 128
 1129            Assert.IsTrue(controller.myModel.wearables.Contains(bandana));
 1130            Assert.IsTrue(controller.myModel.wearables.Contains(sunglasses));
 1131        }
 132    }
 133}