using System.Collections.Generic; using System.Linq; using NUnit.Framework; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; using Vanguard.Board3D; using Vanguard.Shared.Protocol; using Vanguard.UI; using Vanguard.UI.Overlays; namespace Vanguard.Tests { public sealed class CardOverlayTests { [Test] public void Zone_Content_Shows_Last_Added_First_And_Hides_Opponent_Hand() { var first = Card("BT01/001EN", 1); var last = Card("BT01/002EN", 2); var player = new PlayerView { Index = 0, Hand = new List { first, last }, HandCount = 2, Drop = new List { first, last }, FaceUpDamage = new List { first }, FaceDownDamage = 2, Soul = new List { first, last }, }; var drop = CardZoneContent.Build(player, viewer: 0, BoardZone.Drop); Assert.AreSame(last, drop.Entries[0].Card); var ownHand = CardZoneContent.Build(player, viewer: 0, BoardZone.Hand); Assert.AreSame(last, ownHand.Entries[0].Card); var opponentHand = CardZoneContent.Build(player, viewer: 1, BoardZone.Hand); Assert.AreEqual(2, opponentHand.Entries.Count); Assert.IsTrue(opponentHand.Entries.All(entry => entry.Hidden)); var damage = CardZoneContent.Build(player, viewer: 0, BoardZone.Damage); Assert.AreEqual(3, damage.Entries.Count); Assert.IsTrue(damage.Entries.Skip(1).All(entry => entry.Hidden)); } [Test] public void CardList_Opens_Detail_And_Returns_To_List() { var canvas = UiKit.CreateCanvas("Overlay Test Canvas"); var overlays = new OverlayNavigationService(canvas.transform, _ => null); try { var request = new CardListRequest("Тест", 0, BoardZone.Drop); request.Entries.Add(new CardListEntry(Card("BT01/001EN", 1))); request.Entries.Add(new CardListEntry(null, true, "Закрытая карта")); overlays.OpenList(request); Assert.IsTrue(overlays.IsOpen); Assert.IsTrue(Exists("CardListView")); var tile = Resources.FindObjectsOfTypeAll