93 lines
3.2 KiB
C#
93 lines
3.2 KiB
C#
using System.Linq;
|
|
using NUnit.Framework;
|
|
using UnityEngine;
|
|
using UnityEngine.EventSystems;
|
|
using Vanguard.Api;
|
|
using Vanguard.Api.Contracts;
|
|
using Vanguard.App;
|
|
using Vanguard.Auth;
|
|
using Vanguard.Meta;
|
|
using Vanguard.State;
|
|
using Vanguard.UI;
|
|
|
|
namespace Vanguard.Tests
|
|
{
|
|
public sealed class ClientSmokeTests
|
|
{
|
|
[Test]
|
|
public void Client_Views_Build()
|
|
{
|
|
var config = new AppConfig();
|
|
config.Load();
|
|
|
|
var tokens = new TokenStore();
|
|
var api = new ApiClient(config, tokens);
|
|
var player = new PlayerState();
|
|
var auth = new AuthService(api, tokens, player);
|
|
var meta = new MetaService(api, player);
|
|
|
|
var canvas = UiKit.CreateCanvas("Test Canvas");
|
|
|
|
var login = new LoginView(canvas.transform, config, auth, () => { });
|
|
login.Show("smoke");
|
|
|
|
var lobby = new MetaView(
|
|
canvas.transform, auth, player, () => { },
|
|
() => { }, () => { }, () => { }, () => { }, () => { });
|
|
var onboarding = new OnboardingView(
|
|
canvas.transform, auth, meta, () => { }, () => { });
|
|
var decks = new DeckBuilderView(
|
|
canvas.transform, meta, auth, () => { }, _ => { }, _ => { });
|
|
var queue = new QueueView(
|
|
canvas.transform, meta, auth, () => { }, _ => { });
|
|
var store = new StoreView(
|
|
canvas.transform, meta, auth, player, () => { });
|
|
var history = new HistoryView(
|
|
canvas.transform, meta, auth, () => { });
|
|
var battle = new BattleView(
|
|
canvas.transform, meta, () => { });
|
|
|
|
Assert.IsNotNull(GameObject.Find("LoginScreen"));
|
|
Assert.IsTrue(Exists("MetaScreen"));
|
|
Assert.IsTrue(Exists("OnboardingScreen"));
|
|
Assert.IsTrue(Exists("DeckBuilderScreen"));
|
|
Assert.IsTrue(Exists("StoreScreen"));
|
|
Assert.IsTrue(Exists("HistoryScreen"));
|
|
Assert.IsTrue(Exists("ReplayScreen"));
|
|
Assert.IsTrue(Exists("QueueScreen"));
|
|
Assert.IsTrue(Exists("BattleScreen"));
|
|
|
|
Assert.IsNotNull(
|
|
Resources.Load<Texture2D>("CardArt/td01_005"),
|
|
"TD01 card art is not imported");
|
|
|
|
// После смены сцены старые views не должны реагировать на PlayerState.
|
|
lobby.Dispose();
|
|
store.Dispose();
|
|
player.Apply(new MeResponse
|
|
{
|
|
UserName = "after-dispose",
|
|
Gold = 10,
|
|
Dust = 2,
|
|
Tokens = 1,
|
|
});
|
|
|
|
Cleanup();
|
|
}
|
|
|
|
private static bool Exists(string name) =>
|
|
Resources.FindObjectsOfTypeAll<GameObject>().Any(go => go.name == name);
|
|
|
|
private static void Cleanup()
|
|
{
|
|
var canvas = GameObject.Find("Test Canvas");
|
|
if (canvas != null)
|
|
Object.DestroyImmediate(canvas);
|
|
|
|
var eventSystem = Object.FindAnyObjectByType<EventSystem>();
|
|
if (eventSystem != null)
|
|
Object.DestroyImmediate(eventSystem.gameObject);
|
|
}
|
|
}
|
|
}
|