public void TestTarget_NoTargetCondition_TargetAccepted() { int firstTarget = 0; MockCard card = new MockCard(); MockUnit someUnit = new MockUnit(); bool result = card.TestTarget(firstTarget, someUnit); Assert.IsTrue(result); }
public void TestTarget_ValidTarget_TargetAccepted() { int firstTarget = 0; MockCard card = new MockCard(); MockUnit someUnit = new MockUnit(); card.SetTargetCondition(firstTarget,unit => unit is UnitEntity); bool result = card.TestTarget(firstTarget, someUnit); Assert.IsTrue(result); }
public void FireAbility_HasValidTarget_Resolves() { bool hasfired = false; bool resolvesEventTriggered = false; Ability abi = new MockAbility(() => hasfired = true); abi.EventManager = this.EventManager; this.EventManager.Register(new Trigger<AbilityResolvesEvent>(_ => resolvesEventTriggered = true)); UnitEntity unit = new MockUnit(); abi.SetTarget(0, new XmasUniversal[] { unit }); this.ActionManager.Queue(abi); this.ActionManager.ExecuteActions(); Assert.IsTrue(hasfired); Assert.IsTrue(resolvesEventTriggered); }
public void FireAbility_TargetConditionFalse_DoesNotResolve() { bool hasfired = false; bool resolvesEventTriggered = false; bool targetBecomesInvalid = true; Ability abi = new MockAbility(() => hasfired = true); abi.EventManager = this.EventManager; this.EventManager.Register(new Trigger<AbilityResolvesEvent>(_ => resolvesEventTriggered = true)); this.EventManager.Register(new Trigger<AbilityTargetInvalidEvent>(_ => targetBecomesInvalid = true)); UnitEntity unit = new MockUnit(); abi.SetTarget(0, new XmasUniversal[] { unit }); abi.SetTargetCondition(0, _ => false); this.ActionManager.Queue(abi); this.ActionManager.ExecuteActions(); Assert.IsFalse(hasfired); Assert.IsFalse(resolvesEventTriggered); Assert.IsTrue(targetBecomesInvalid); }
public void Targets_HasOneOnFirstTargetZeroOnSecondTargetTwoOnThirdTarget_ReturnsCorrectTargets() { UnitEntity first = new MockUnit(); UnitEntity Third1 = new MockUnit(); UnitEntity Third2 = new MockUnit(); Ability abi = new MockAbility(null); abi.SetTarget(0, new object[] { first }); abi.SetTarget(2, new object[] { Third1, Third2 }); var targets = abi.Targets; int secondcount = 0; Assert.AreEqual(first, targets[0][0]); Assert.AreEqual(secondcount, targets[1].Length); Assert.AreEqual(Third1, targets[2][0]); Assert.AreEqual(Third2, targets[2][1]); }