46 lines
1.5 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|