< Summary

Class:DCL.Social.Chat.ChannelMemberEntry
Assembly:WorldChatWindowHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelMemberEntry.cs
Covered lines:37
Uncovered lines:11
Coverable lines:48
Total lines:114
Line coverage:77% (37 of 48)
Covered branches:0
Total branches:0
Covered methods:10
Total methods:11
Method coverage:90.9% (10 of 11)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Awake()0%110100%
Configure(...)0%110100%
RefreshControl()0%110100%
SetUserContextMenu(...)0%110100%
SetUserId(...)0%110100%
SetUserName(...)0%2.032080%
SetUserThumbnail(...)0%2.032080%
SetUserOnlineStatus(...)0%4.034087.5%
SetIsOptionsButtonHidden(...)0%2.032080%
Dock(...)0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelMemberEntry.cs

#LineLine coverage
 1using TMPro;
 2using UnityEngine;
 3using UnityEngine.UI;
 4
 5namespace DCL.Social.Chat
 6{
 7    public class ChannelMemberEntry : BaseComponentView, IComponentModelConfig<ChannelMemberEntryModel>
 8    {
 9        [SerializeField] internal TMP_Text nameLabel;
 10        [SerializeField] internal ImageComponentView userThumbnail;
 11        [SerializeField] internal GameObject onlineMark;
 12        [SerializeField] internal GameObject offlineMark;
 13        [SerializeField] internal GameObject optionsButtonContainer;
 14        [SerializeField] internal Button optionsButton;
 15        [SerializeField] internal RectTransform userContextMenuPositionReference;
 16        [SerializeField] internal Image playerBlockedImage;
 17
 18        [Header("Configuration")]
 19        [SerializeField] internal ChannelMemberEntryModel model;
 20
 21        private UserContextMenu userContextMenu;
 22
 523        public ChannelMemberEntryModel Model => model;
 24
 25        public override void Awake()
 26        {
 827            base.Awake();
 28
 829            optionsButton.onClick.AddListener(() =>
 30            {
 031                Dock(userContextMenu);
 032                userContextMenu.Show(model.userId);
 033            });
 834        }
 35
 36        public void Configure(ChannelMemberEntryModel newModel)
 37        {
 538            model = newModel;
 539            RefreshControl();
 540        }
 41
 42        public override void RefreshControl()
 43        {
 544            SetUserId(model.userId);
 545            SetUserName(model.userName);
 546            SetUserThumbnail(model.thumnailUrl);
 547            SetUserOnlineStatus(model.isOnline);
 548            SetIsOptionsButtonHidden(model.isOptionsButtonHidden);
 49
 550            playerBlockedImage.enabled = Model.blocked;
 551        }
 52
 53        public void SetUserContextMenu(UserContextMenu userContextMenu)
 54        {
 355            this.userContextMenu = userContextMenu;
 356        }
 57
 58        private void SetUserId(string userId)
 59        {
 560            model.userId = userId;
 561        }
 62
 63        private void SetUserName(string userName)
 64        {
 565            model.userName = userName;
 66
 567            if (nameLabel == null)
 068                return;
 69
 570            nameLabel.text = userName;
 571        }
 72
 73        private void SetUserThumbnail(string thumbnailUrl)
 74        {
 575            model.thumnailUrl = thumbnailUrl;
 76
 577            if (userThumbnail == null)
 078                return;
 79
 580            userThumbnail.SetImage(thumbnailUrl);
 581        }
 82
 83        private void SetUserOnlineStatus(bool isOnline)
 84        {
 585            model.isOnline = isOnline;
 86
 587            if (onlineMark == null)
 088                return;
 89
 590            if (onlineMark != null)
 591                onlineMark.SetActive(isOnline);
 92
 593            if (offlineMark != null)
 594                offlineMark.SetActive(!isOnline);
 595        }
 96
 97        private void SetIsOptionsButtonHidden(bool isHidden)
 98        {
 599            model.isOptionsButtonHidden = isHidden;
 100
 5101            if (optionsButtonContainer == null)
 0102                return;
 103
 5104            optionsButtonContainer.SetActive(!isHidden);
 5105        }
 106
 107        private void Dock(UserContextMenu userContextMenu)
 108        {
 0109            var menuTransform = (RectTransform)userContextMenu.transform;
 0110            menuTransform.pivot = userContextMenuPositionReference.pivot;
 0111            menuTransform.position = userContextMenuPositionReference.position;
 0112        }
 113    }
 114}