< Summary

Class:KeyDetector
Assembly:Test
File(s):D:/--UnityProject/VR/VRExplorer_subjects/Edutainment-Escape-Room/Assets/Scripts/Test/Keypad/KeyDetector.cs
Covered lines:11
Uncovered lines:41
Coverable lines:52
Total lines:84
Line coverage:21.1% (11 of 52)
Covered branches:0
Total branches:0
Covered methods:2
Total methods:2
Method coverage:100% (2 of 2)

Coverage History

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Start()0%000100%
OnTriggerEnter(...)0%0006.82%

File(s)

D:/--UnityProject/VR/VRExplorer_subjects/Edutainment-Escape-Room/Assets/Scripts/Test/Keypad/KeyDetector.cs

#LineLine coverage
 1using System;
 2using TMPro;
 3using UnityEngine;
 4using UnityEngine.SceneManagement;
 5
 6
 7public class KeyDetector : MonoBehaviour
 8{
 9
 10    private TextMeshPro display;
 11
 12    private KeyPadControll keyPadControll;
 13
 14    [SerializeField] string displayTag;
 15    [SerializeField] string keypadTag;
 16    [SerializeField] string keypadButtonTag;
 17
 18    // Start is called before the first frame update
 19    void Start()
 420    {
 421        Scene scene = SceneManager.GetActiveScene();
 422        if (scene.name == "EscapeRoom")
 423        {
 424            display = GameObject.FindGameObjectWithTag(displayTag).GetComponentInChildren<TextMeshPro>();
 25
 426            keyPadControll = GameObject.FindGameObjectWithTag(keypadTag).GetComponent<KeyPadControll>();
 27
 428        }
 429    }
 30
 31    private void OnTriggerEnter(Collider other)
 4232    {
 4233        if (other.CompareTag(keypadButtonTag))
 034        {
 035            var key = other.GetComponentInChildren<TextMeshPro>();
 036            if (key != null)
 037            {
 038                var KeyFeedback = other.gameObject.GetComponent<KeyFeedback>();
 39
 040                KeyFeedback.keyHit = true;
 41
 042                var accessGranted = false;
 043                bool onlyNumbers = int.TryParse(display.text, out int value);
 44
 045                if (onlyNumbers == false)
 046                {
 047                    display.text = "";
 048                }
 49
 50                //make sure max 4 numbers
 051                if(key.text == "Back")
 052                {
 053                    if (display.text.Length > 0)
 054                    {
 055                        display.text = display.text.Remove(display.text.Length - 1, 1);
 056                    }
 057                }
 058                else if(key.text == "Confirm")
 059                {
 060                    if (display.text.Length > 0)
 061                    {
 062                        accessGranted = keyPadControll.CheckIfCorrect(Convert.ToInt32(display.text));
 063                        if (accessGranted)
 064                        {
 065                            display.text = "Correct";
 066                        }
 67                        else
 068                        {
 069                            display.text = "Retry";
 070                        }
 071                    }
 072                }
 73                else
 074                {
 075                    if (display.text.Length < 4)
 076                    {
 077                        display.text += key.text;
 078                    }
 079                }
 080            }
 81
 082        }
 4283    }
 84}