< Summary

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

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    {
 013        public AvatarEditorHUDModel myModel => model;
 014        public AvatarEditorHUDView myView => view;
 015        public string[] myCategoriesThatMustHaveSelection => categoriesThatMustHaveSelection;
 016        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
 25        protected override bool justSceneSetUp => true;
 26
 27        [UnitySetUp]
 28        protected override IEnumerator SetUp()
 29        {
 30            yield return base.SetUp();
 31
 32            userProfile = ScriptableObject.CreateInstance<UserProfile>();
 33            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
 45            catalog = AvatarAssetsTestHelpers.CreateTestCatalogLocal();
 46            controller = new AvatarEditorHUDController_Mock();
 47            controller.Initialize(userProfile, catalog);
 48            DataStore.i.isPlayerRendererLoaded.Set(true);
 49        }
 50
 51        [UnityTearDown]
 52        protected override IEnumerator TearDown()
 53        {
 54            controller.CleanUp();
 55            yield return base.TearDown();
 56        }
 57
 58        [Test]
 59        public void BeAddedWhenEquiped()
 60        {
 61            var sunglassesId = "urn:decentraland:off-chain:base-avatars:black_sun_glasses";
 62            var sunglasses = catalog.Get(sunglassesId);
 63
 64            controller.WearableClicked(sunglassesId);
 65            Assert.IsTrue(controller.myModel.wearables.Contains(sunglasses));
 66        }
 67
 68        [Test]
 69        public void BeReplacedByGeneralReplaces()
 70        {
 71            var sunglassesId = "urn:decentraland:off-chain:base-avatars:black_sun_glasses";
 72            var sunglasses = catalog.Get(sunglassesId);
 73            var bandanaId = "urn:decentraland:off-chain:base-avatars:blue_bandana";
 74            var bandana = catalog.Get(bandanaId);
 75
 76            bandana.data.replaces = new[] { sunglasses.data.category };
 77            controller.WearableClicked(sunglassesId);
 78            controller.WearableClicked(bandanaId);
 79
 80            Assert.IsTrue(controller.myModel.wearables.Contains(bandana));
 81            Assert.IsFalse(controller.myModel.wearables.Contains(sunglasses));
 82        }
 83
 84        [Test]
 85        public void NotBeReplacedByWrongGeneralReplaces()
 86        {
 87            var sunglassesId = "urn:decentraland:off-chain:base-avatars:black_sun_glasses";
 88            var sunglasses = catalog.Get(sunglassesId);
 89            var bandanaId = "urn:decentraland:off-chain:base-avatars:blue_bandana";
 90            var bandana = catalog.Get(bandanaId);
 91
 92            bandana.data.replaces = new[] { "NonExistentCategory" };
 93            controller.WearableClicked(sunglassesId);
 94            controller.WearableClicked(bandanaId);
 95
 96            Assert.IsTrue(controller.myModel.wearables.Contains(bandana));
 97            Assert.IsTrue(controller.myModel.wearables.Contains(sunglasses));
 98        }
 99
 100        [Test]
 101        public void BeReplacedByOverrideReplaces()
 102        {
 103            var sunglassesId = "urn:decentraland:off-chain:base-avatars:black_sun_glasses";
 104            var sunglasses = catalog.Get(sunglassesId);
 105            var bandanaId = "urn:decentraland:off-chain:base-avatars:blue_bandana";
 106            var bandana = catalog.Get(bandanaId);
 107
 108            bandana.GetRepresentation(userProfile.avatar.bodyShape).overrideReplaces = new[] { sunglasses.data.category 
 109            controller.WearableClicked(sunglassesId);
 110            controller.WearableClicked(bandanaId);
 111
 112            Assert.IsTrue(controller.myModel.wearables.Contains(bandana));
 113            Assert.IsFalse(controller.myModel.wearables.Contains(sunglasses));
 114        }
 115
 116        [Test]
 117        public void NotBeReplacedByWrongOverrideReplaces()
 118        {
 119            var sunglassesId = "urn:decentraland:off-chain:base-avatars:black_sun_glasses";
 120            var sunglasses = catalog.Get(sunglassesId);
 121            var bandanaId = "urn:decentraland:off-chain:base-avatars:blue_bandana";
 122            var bandana = catalog.Get(bandanaId);
 123
 124            bandana.GetRepresentation(WearableLiterals.BodyShapes.MALE)
 125                .overrideReplaces = new[] { sunglasses.data.category };
 126            controller.WearableClicked(sunglassesId);
 127            controller.WearableClicked(bandanaId);
 128
 129            Assert.IsTrue(controller.myModel.wearables.Contains(bandana));
 130            Assert.IsTrue(controller.myModel.wearables.Contains(sunglasses));
 131        }
 132    }
 133}