< Summary

Class:DCL.Backpack.VRMDetailItemComponentView
Assembly:BackpackEditorHUDV2
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/BackpackEditorHUDV2/VRMExport/VRMDetailItemComponentView.cs
Covered lines:1
Uncovered lines:55
Coverable lines:56
Total lines:134
Line coverage:1.7% (1 of 56)
Covered branches:0
Total branches:0
Covered methods:1
Total methods:12
Method coverage:8.3% (1 of 12)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
VRMDetailItemComponentView()0%110100%
Start()0%2100%
OnActionButtonClicked()0%20400%
ClearOnWearableUnequippedEvents()0%2100%
RefreshControl()0%6200%
SetActionButtonEnableState(...)0%2100%
SetWearableImage(...)0%6200%
SetWearableName(...)0%2100%
SetWearableCategoryImage(...)0%6200%
SetWearableCategoryName(...)0%2100%
SetWearableCreatorImage(...)0%6200%
SetWearableCreatorName(...)0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/BackpackEditorHUDV2/VRMExport/VRMDetailItemComponentView.cs

#LineLine coverage
 1using System;
 2using TMPro;
 3using UIComponents.Scripts.Components;
 4using UnityEngine;
 5
 6namespace DCL.Backpack
 7{
 8    public class VRMDetailItemComponentView : BaseComponentView<VRMItemModel>
 9    {
 10        [SerializeField] private NftTypeIconSO typeIcons;
 11        [SerializeField] private ImageComponentView wearableImage;
 12        [SerializeField] private TMP_Text wearableName;
 13        [SerializeField] private ImageComponentView wearableTypeImage;
 14        [SerializeField] private TMP_Text wearableTypeName;
 15        [SerializeField] private ImageComponentView wearableCreatorImage;
 16        [SerializeField] private TMP_Text wearableCreatorName;
 17        [SerializeField] private ButtonComponentView actionButton;
 18
 119        private bool isUnEquipAction = true;
 20        private const string UNEQUIP_TEXT = "unequip";
 21        private const string EQUIP_TEXT = "equip";
 22
 23        public event Action OnUnEquipWearable;
 24        public event Action OnEquipWearable;
 25
 26        public void Start()
 27        {
 028            actionButton.onClick.RemoveAllListeners();
 029            actionButton.onClick.AddListener(OnActionButtonClicked);
 030        }
 31
 32        private void OnActionButtonClicked()
 33        {
 034            if (isUnEquipAction)
 35            {
 036                actionButton.SetText(EQUIP_TEXT);
 037                isUnEquipAction = false;
 038                OnUnEquipWearable?.Invoke();
 39            }
 40            else
 41            {
 042                actionButton.SetText(UNEQUIP_TEXT);
 043                isUnEquipAction = true;
 044                OnEquipWearable?.Invoke();
 45            }
 046        }
 47
 48        public void ClearOnWearableUnequippedEvents()
 49        {
 050            OnUnEquipWearable = null;
 051            OnEquipWearable = null;
 052        }
 53
 54        public override void RefreshControl()
 55        {
 056            if (model == null)
 057                return;
 58
 059            isUnEquipAction = true;
 060            actionButton.SetText(UNEQUIP_TEXT);
 61
 062            SetWearableImage(model.wearableImageUrl);
 063            SetWearableName(model.wearableName);
 64
 065            SetWearableCategoryImage(model.wearableCategoryName);
 066            SetWearableCategoryName(model.wearableCategoryName);
 67
 068            SetWearableCreatorImage(model.wearableCreatorImageUrl);
 069            SetWearableCreatorName(model.wearableCreatorName);
 70
 071            SetActionButtonEnableState(model.wearableCanBeUnEquipped);
 072        }
 73
 74        private void SetActionButtonEnableState(bool state)
 75        {
 076            actionButton.gameObject.SetActive(state);
 077        }
 78
 79        private void SetWearableImage(string modelWearableImageUrl)
 80        {
 081            model.wearableImageUrl = modelWearableImageUrl;
 82
 083            if (string.IsNullOrEmpty(modelWearableImageUrl))
 84            {
 085                wearableImage.SetImage(Texture2D.grayTexture);
 086                return;
 87            }
 88
 089            wearableImage.SetImage(modelWearableImageUrl);
 090        }
 91
 92        private void SetWearableName(string name)
 93        {
 094            model.wearableName = name;
 095            wearableName.text = name;
 096        }
 97
 98        private void SetWearableCategoryImage(string categoryName)
 99        {
 0100            var categoryIcon = typeIcons.GetTypeImage(categoryName);
 101
 0102            if (categoryIcon)
 0103                wearableTypeImage.SetImage(categoryIcon);
 104            else
 0105                wearableTypeImage.SetImage(Texture2D.grayTexture);
 0106        }
 107
 108        private void SetWearableCategoryName(string categoryName)
 109        {
 0110            string readableName = WearableItem.CATEGORIES_READABLE_MAPPING[categoryName];
 0111            model.wearableCategoryName = readableName;
 0112            wearableTypeName.text = readableName;
 0113        }
 114
 115        private void SetWearableCreatorImage(string creatorImageUrl)
 116        {
 0117            model.wearableCreatorImageUrl = creatorImageUrl;
 118
 0119            if (string.IsNullOrEmpty(creatorImageUrl))
 120            {
 0121                wearableCreatorImage.SetImage(Texture2D.grayTexture);
 0122                return;
 123            }
 124
 0125            wearableCreatorImage.SetImage(creatorImageUrl);
 0126        }
 127
 128        private void SetWearableCreatorName(string creatorName)
 129        {
 0130            model.wearableCreatorName = creatorName;
 0131            wearableCreatorName.text = creatorName;
 0132        }
 133    }
 134}