async public void ShouldPlay() { var runnerCards = new List <Card>(); for (int i = 0; i < 5; i++) { runnerCards.Add(new SureGamble()); } var sureGamble = runnerCards.First(); var game = new MockGames().WithRunnerCards(runnerCards); game.Start(); await new PassiveCorp(game).SkipTurn(); var balance = new LastBalanceObserver(); var clicks = new SpentClicksObserver(); var grip = new GripObserver(); var heap = new HeapObserver(); game.runner.credits.Observe(balance); game.runner.clicks.Observe(clicks); game.runner.zones.grip.zone.ObserveRemovals(grip); game.runner.zones.heap.zone.ObserveAdditions(heap); await game.runner.actionCard.TakeAction(); await game.runner.actionCard.Play(sureGamble).Trigger(game); Assert.AreEqual(9, balance.LastBalance); Assert.AreEqual(1, clicks.Spent); Assert.AreEqual(sureGamble, grip.LastRemoved); Assert.AreEqual(sureGamble, heap.LastAdded); }
async public void ShouldClickForCredit() { var game = new MockGames().WithRunnerCards(new List <Card>()); var gameFlowLog = new GameFlowLog(); gameFlowLog.Display(game); game.Start(); var balance = new LastBalanceObserver(); var clicks = new SpentClicksObserver(); game.corp.credits.Observe(balance); game.corp.clicks.Observe(clicks); var clickForCredit = game.corp.actionCard.credit; SkipPaidWindow(game); SkipPaidWindow(game); await game.corp.actionCard.TakeAction(); await clickForCredit.Trigger(game); Assert.AreEqual(6, balance.LastBalance); Assert.AreEqual(1, clicks.Spent); }