using System; using System.Collections.Generic; using System.Reflection; using DanroJump.Gameplay; using DanroJump.Hardware.Com; using DanroJump.Prizes; using DanroJump.Settings; using DanroJump.UI.Gameplay; using NUnit.Framework; using UnityEngine; using UnityEngine.UIElements; namespace DanroJump.Tests.EditMode { public sealed class GameplayHudControllerTests { [Test] public void RefreshContinueOverlay_OpensGameOverPanelWhenContinueIsUnavailable() { var gameObject = new GameObject("GameplayHudControllerTest"); try { var controller = gameObject.AddComponent(); var session = new GameplaySession(null, new StubSettings(canContinue: true)); TestObjectFactory.SetPrivateField(session, "k__BackingField", GameplaySessionState.GameOver); var overlayRoot = CreateContinueOverlayRoot(); var overlay = new ContinueGameOverlayWindow(overlayRoot); TestObjectFactory.SetPrivateField(controller, "session", session); TestObjectFactory.SetPrivateField(controller, "continueGameOverlay", overlay); typeof(GameplayHudController) .GetMethod("RefreshContinueOverlay", BindingFlags.Instance | BindingFlags.NonPublic) ?.Invoke(controller, null); Assert.That(overlay.IsOpen, Is.True); Assert.That(overlayRoot.resolvedStyle.display, Is.EqualTo(DisplayStyle.Flex)); Assert.That(overlayRoot.Q