Files
FlowScope/My project/Assets/FlowScope/Tests/PlayMode/Samples/MainMenuP0Tests.cs
2026-05-18 12:10:16 +08:00

46 lines
1.5 KiB
C#

using System.Threading;
using System.Threading.Tasks;
using FlowScope.Samples.MainMenuP0;
using NUnit.Framework;
using UnityEngine;
using UnityEngine.UI;
namespace FlowScope.Tests.PlayMode.Samples
{
public sealed class MainMenuP0Tests
{
[Test]
public void ViewModel_IncrementGold_UpdatesPlayerDataImmediately()
{
var data = new PlayerData();
var viewModel = new MainMenuViewModel(data);
viewModel.IncrementGold();
Assert.AreEqual(1, data.Gold.Value);
}
[Test]
public async Task Bootstrap_CanConstructAndShutdownWithoutSceneAsset()
{
var root = new GameObject("bootstrap-test");
var panelObject = new GameObject("panel-prefab");
panelObject.AddComponent<CanvasRenderer>();
var panel = panelObject.AddComponent<MainMenuPanel>();
var labelObject = new GameObject("gold");
labelObject.transform.SetParent(panelObject.transform, false);
var label = labelObject.AddComponent<Text>();
var buttonObject = new GameObject("button");
buttonObject.transform.SetParent(panelObject.transform, false);
var button = buttonObject.AddComponent<Button>();
panel.Configure(label, button);
var bootstrap = root.AddComponent<GameBootstrap>();
await bootstrap.ShutdownAsync(CancellationToken.None);
Object.DestroyImmediate(panelObject);
Object.DestroyImmediate(root);
}
}
}