public void CommitPriest_SlotUsed() { var targetSlot = new PriestSlot(2, true); this.CommitAndAssertFailure(track => track.UsableSlots.ElementAt(0).Use(), slots: new[] { targetSlot }, target: targetSlot); }
public CommitPriestAction(TerraMysticaPlayer player, CultTrack track, PriestSlot slot) : base(player) { if (track == null) { throw new ArgumentNullException(nameof(track)); } if (slot == null) { throw new ArgumentNullException(nameof(slot)); } this.CultTrack = track; this.Slot = slot; }
private void CommitAndAssertResult(bool expectation, Action <CultTrack> beforeExecute = null, CultTrack track = null, IEnumerable <PriestSlot> slots = null, PriestSlot target = null) { var priestSlots = slots ?? new[] { new PriestSlot(3, true) }; var cultTrack = track ?? new WaterCultTrack(slots, new[] { new CultTrackBonus(3, new PowerResource(1)) }); Func <TerraMysticaAction> prepareAction = () => new CommitPriestAction(this.Player, cultTrack, target ?? priestSlots.ElementAt(0)); Action before = () => beforeExecute?.Invoke(cultTrack); this.PerformActionAndAssertResult(expectation, prepareAction, before); }
private void CommitAndAssertSuccess(Action <CultTrack> beforeExecute = null, CultTrack track = null, IEnumerable <PriestSlot> slots = null, PriestSlot target = null) { this.CommitAndAssertResult(true, beforeExecute, track, slots, target); }