< Summary

Class:UIOnToggleUpdater
Assembly:AvatarEditorHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/AvatarEditorHUD/Scripts/UIToggles/UIOnToggleUpdater.cs
Covered lines:10
Uncovered lines:1
Coverable lines:11
Total lines:37
Line coverage:90.9% (10 of 11)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Awake()0%2.012085.71%
OnDestroy()0%110100%
PerformToggleBehaviour(...)0%220100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/AvatarEditorHUD/Scripts/UIToggles/UIOnToggleUpdater.cs

#LineLine coverage
 1using UnityEngine;
 2using UnityEngine.UI;
 3
 4/// <summary>
 5/// Perform toggle action for all IToggleBehaviour components attached to the gameObject
 6/// when UI toggle state is changed
 7/// </summary>
 8[RequireComponent(typeof(Toggle))]
 9public class UIOnToggleUpdater : MonoBehaviour
 10{
 11    private Toggle toggle;
 12
 13    private IUIToggleBehavior[] toggleBehaviours;
 14
 15    protected void Awake()
 16    {
 70217        toggleBehaviours = GetComponents<IUIToggleBehavior>();
 18
 70219        if (toggleBehaviours.Length == 0)
 020            Destroy(this);
 21
 70222        toggle = GetComponent<Toggle>();
 23
 70224        PerformToggleBehaviour(toggle.isOn);
 25
 70226        toggle.onValueChanged.AddListener(PerformToggleBehaviour);
 70227    }
 28
 29    private void OnDestroy() =>
 70230        toggle.onValueChanged.RemoveListener(PerformToggleBehaviour);
 31
 32    private void PerformToggleBehaviour(bool isOn)
 33    {
 560834        foreach (IUIToggleBehavior toggleBehavior in toggleBehaviours)
 179035            toggleBehavior.Toggle(isOn);
 101436    }
 37}