< Summary

Class:ColorToggle
Assembly:UIComponents
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/UIComponents/Scripts/Components/ColorPicker/ColorToggle.cs
Covered lines:8
Uncovered lines:6
Coverable lines:14
Total lines:46
Line coverage:57.1% (8 of 14)
Covered branches:0
Total branches:0
Covered methods:4
Total methods:7
Method coverage:57.1% (4 of 7)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Awake()0%2100%
OnDestroy()0%2100%
Initialize(...)0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/UIComponents/Scripts/Components/ColorPicker/ColorToggle.cs

#LineLine coverage
 1using System;
 2using UnityEngine;
 3using UnityEngine.UI;
 4
 5[RequireComponent(typeof(Button))]
 6public class ColorToggle : MonoBehaviour
 7{
 8    [SerializeField] private Image colorPicker;
 9    [SerializeField] private Image selectionHighlight;
 10
 11    private bool selectedValue;
 12    private Button button;
 13
 4414    public Color Color { get; private set; }
 15
 16    public bool Selected
 17    {
 018        get => selectedValue;
 19
 20        set
 21        {
 2222            selectedValue = value;
 2223            selectionHighlight.enabled = selectedValue;
 2224        }
 25    }
 26
 27    public event Action<ColorToggle> OnClicked;
 28
 29    private void Awake()
 30    {
 031        button = GetComponent<Button>();
 032        button.onClick.AddListener(() => OnClicked?.Invoke(this));
 033    }
 34
 35    private void OnDestroy()
 36    {
 037        button.onClick.RemoveAllListeners();
 038    }
 39
 40    public void Initialize(Color c, bool on)
 41    {
 2242        Color = c;
 2243        colorPicker.color = Color;
 2244        Selected = on;
 2245    }
 46}