< Summary

Class:ChatNotificationMessageComponentView
Assembly:NotificationMessagesHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NotificationMessagesHUD/NotificationComponent/ChatNotificationMessageComponentView.cs
Covered lines:43
Uncovered lines:4
Coverable lines:47
Total lines:110
Line coverage:91.4% (43 of 47)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Configure(...)0%110100%
Awake()0%220100%
RefreshControl()0%22090%
SetMessage(...)0%220100%
SetTimestamp(...)0%110100%
SetNotificationHeader(...)0%220100%
SetIsPrivate(...)0%110100%
SetImage(...)0%220100%
SetMaxContentCharacters(...)0%110100%
SetMaxHeaderCharacters(...)0%110100%
SetNotificationTargetId(...)0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NotificationMessagesHUD/NotificationComponent/ChatNotificationMessageComponentView.cs

#LineLine coverage
 1using TMPro;
 2using UnityEngine;
 3using UnityEngine.UI;
 4using System;
 5using System.Collections;
 6using System.Collections.Generic;
 7
 8public class ChatNotificationMessageComponentView : BaseComponentView, IChatNotificationMessageComponentView, IComponent
 9{
 10    [Header("Prefab References")]
 11    [SerializeField] internal Button button;
 12    [SerializeField] internal TMP_Text notificationMessage;
 13    [SerializeField] internal TMP_Text notificationHeader;
 14    [SerializeField] internal TMP_Text notificationTimestamp;
 15    [SerializeField] internal ImageComponentView image;
 16    [SerializeField] internal bool isPrivate;
 17
 18    [Header("Configuration")]
 19    [SerializeField] internal ChatNotificationMessageComponentModel model;
 20
 21    public event Action<string> OnClickedNotification;
 22    public string notificationTargetId;
 23    private int maxContentCharacters, maxHeaderCharacters;
 24
 25    public void Configure(ChatNotificationMessageComponentModel newModel)
 26    {
 227        model = newModel;
 228        RefreshControl();
 229    }
 30
 31    public override void Awake()
 32    {
 1033        base.Awake();
 34
 1135        button?.onClick.AddListener(()=>OnClickedNotification.Invoke(notificationTargetId));
 1036    }
 37
 38    public override void RefreshControl()
 39    {
 240        if (model == null)
 041            return;
 42
 243        SetMaxContentCharacters(model.maxContentCharacters);
 244        SetMaxHeaderCharacters(model.maxHeaderCharacters);
 245        SetMessage(model.message);
 246        SetTimestamp(model.time);
 247        SetNotificationHeader(model.messageHeader);
 248        SetIsPrivate(model.isPrivate);
 249        SetImage(model.imageUri);
 250    }
 51
 52    public void SetMessage(string message)
 53    {
 454        model.message = message;
 455        if (message.Length <= maxContentCharacters)
 156            notificationMessage.text = message;
 57        else
 358            notificationMessage.text = $"{message.Substring(0, maxContentCharacters)}...";
 359    }
 60
 61    public void SetTimestamp(string timestamp)
 62    {
 363        model.time = timestamp;
 364        notificationTimestamp.text = timestamp;
 365    }
 66
 67    public void SetNotificationHeader(string header)
 68    {
 469        model.messageHeader = header;
 470        if(header.Length <= maxHeaderCharacters)
 171            notificationHeader.text = header;
 72        else
 373            notificationHeader.text = $"{header.Substring(0, maxHeaderCharacters)}...";
 374    }
 75
 76    public void SetIsPrivate(bool isPrivate)
 77    {
 478        model.isPrivate = isPrivate;
 479        this.isPrivate = isPrivate;
 480        image.gameObject.SetActive(isPrivate);
 481    }
 82
 83    public void SetImage(string uri)
 84    {
 285        if (!isPrivate)
 186            return;
 87
 188        model.imageUri = uri;
 189        image.SetImage(uri);
 190    }
 91
 92    public void SetMaxContentCharacters(int maxContentCharacters)
 93    {
 494        model.maxContentCharacters = maxContentCharacters;
 495        this.maxContentCharacters = maxContentCharacters;
 496    }
 97
 98    public void SetMaxHeaderCharacters(int maxHeaderCharacters)
 99    {
 4100        model.maxHeaderCharacters = maxHeaderCharacters;
 4101        this.maxHeaderCharacters = maxHeaderCharacters;
 4102    }
 103
 104    public void SetNotificationTargetId(string notificationTargetId)
 105    {
 0106        model.notificationTargetId = notificationTargetId;
 0107        this.notificationTargetId = notificationTargetId;
 0108    }
 109
 110}