< Summary

Class:NotificationBadge
Assembly:NotificationBadge
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/NotificationBadge/NotificationBadge.cs
Covered lines:18
Uncovered lines:9
Coverable lines:27
Total lines:67
Line coverage:66.6% (18 of 27)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Start()0%110100%
Initialize()0%4.024088.89%
OnDestroy()0%4.054085.71%
NotificationVariable_OnChange(...)0%5.024060%

File(s)

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

#LineLine coverage
 1using System.Collections.Generic;
 2using UnityEngine;
 3
 4public class NotificationBadge : MonoBehaviour
 5{
 6    [Tooltip("The value shown on this badge is the sum of the notification variables")]
 7    [SerializeField] private List<FloatVariable> notificationVariables;
 8    [SerializeField] private TMPro.TextMeshProUGUI notificationText;
 9    [SerializeField] private GameObject notificationContainer;
 10
 011    public int finalValue { get; private set; }
 6212    private void Start() { Initialize(); }
 13
 14    public void Initialize()
 15    {
 3116        if (notificationVariables == null || notificationVariables.Count == 0)
 017            return;
 18
 12419        foreach (var notiVariable in notificationVariables)
 20        {
 3121            notiVariable.OnChange -= NotificationVariable_OnChange;
 3122            notiVariable.OnChange += NotificationVariable_OnChange;
 3123            NotificationVariable_OnChange(notiVariable.Get(), notiVariable.Get());
 24        }
 3125    }
 26
 27    private void OnDestroy()
 28    {
 3429        if (notificationVariables == null || notificationVariables.Count == 0)
 030            return;
 31
 13632        foreach (var notiVariable in notificationVariables)
 33        {
 3434            notiVariable.OnChange -= NotificationVariable_OnChange;
 35        }
 3436    }
 37
 38    private void NotificationVariable_OnChange(float current, float previous)
 39    {
 3140        int finalValue = 0;
 41
 12442        foreach (var notiVariable in notificationVariables)
 43        {
 3144            finalValue += (int)notiVariable.Get();
 45        }
 46
 3147        this.finalValue = finalValue;
 48
 3149        if (finalValue > 0)
 50        {
 051            notificationContainer.SetActive(true);
 52
 053            if (finalValue < 99)
 54            {
 055                notificationText.text = finalValue.ToString();
 056            }
 57            else
 58            {
 059                notificationText.text = "99+";
 60            }
 061        }
 62        else
 63        {
 3164            notificationContainer.SetActive(false);
 65        }
 3166    }
 67}