public IEnumerator TestToggleEvents()
        {
            // Create an interactive cube
            InteractiveElement interactiveElement = CreateInteractiveCube();

            yield return(null);

            interactiveElement.AddToggleStates();
            yield return(null);

            // Get the event configuration for the ToggleOn state
            var eventConfigurationToggleOn = interactiveElement.GetStateEvents <ToggleOnEvents>(toggleOnStateName);

            // Get the event configuration for the ToggleOn state
            var eventConfigurationToggleOff = interactiveElement.GetStateEvents <ToggleOffEvents>(toggleOffStateName);

            bool onToggleOn  = false;
            bool onToggleOff = false;

            eventConfigurationToggleOn.OnToggleOn.AddListener(() => { onToggleOn = true; });
            eventConfigurationToggleOff.OnToggleOff.AddListener(() => { onToggleOff = true; });

            interactiveElement.SetToggleStates();
            yield return(null);

            // Make sure the toggle is on at the start
            Assert.True(onToggleOn);

            // Create a new hand and initialize it with an object in focus
            var leftHand = new TestHand(Handedness.Left);

            // Show hand at starting position
            yield return(ShowHandWithObjectInFocus(leftHand));

            // Click the hand
            yield return(leftHand.Click());

            Assert.True(onToggleOff);
        }