< Summary

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

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Start()0%2100%
Initialize()0%20400%
OnDestroy()0%20400%
NotificationVariable_OnChange(...)0%20400%

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; }
 012    private void Start() { Initialize(); }
 13
 14    public void Initialize()
 15    {
 016        if (notificationVariables == null || notificationVariables.Count == 0)
 017            return;
 18
 019        foreach (var notiVariable in notificationVariables)
 20        {
 021            notiVariable.OnChange -= NotificationVariable_OnChange;
 022            notiVariable.OnChange += NotificationVariable_OnChange;
 023            NotificationVariable_OnChange(notiVariable.Get(), notiVariable.Get());
 24        }
 025    }
 26
 27    private void OnDestroy()
 28    {
 029        if (notificationVariables == null || notificationVariables.Count == 0)
 030            return;
 31
 032        foreach (var notiVariable in notificationVariables)
 33        {
 034            notiVariable.OnChange -= NotificationVariable_OnChange;
 35        }
 036    }
 37
 38    private void NotificationVariable_OnChange(float current, float previous)
 39    {
 040        int finalValue = 0;
 41
 042        foreach (var notiVariable in notificationVariables)
 43        {
 044            finalValue += (int)notiVariable.Get();
 45        }
 46
 047        this.finalValue = finalValue;
 48
 049        if (finalValue > 0)
 50        {
 051            notificationContainer.SetActive(true);
 52
 053            if (finalValue < 99)
 54            {
 055                notificationText.text = finalValue.ToString();
 56            }
 57            else
 58            {
 059                notificationText.text = "99+";
 60            }
 61        }
 62        else
 63        {
 064            notificationContainer.SetActive(false);
 65        }
 066    }
 67}