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 ShouldDiscard() { var runnerCards = new List <Card>(); for (int i = 0; i < 20; i++) { runnerCards.Add(new Diesel()); } var game = new MockGames().WithRunnerCards(runnerCards); game.Start(); var passiveCorp = new PassiveCorp(game); await passiveCorp.SkipTurn(); var grip = game.runner.zones.grip; var heap = game.runner.zones.heap; var actionCard = game.runner.actionCard; var gripObserver = new GripObserver(); var heapObserver = new HeapObserver(); var clicksObserver = new SpentClicksObserver(); grip.zone.ObserveRemovals(gripObserver); heap.zone.ObserveAdditions(heapObserver); game.runner.clicks.Observe(clicksObserver); for (int i = 0; i < 3; i++) { var diesel = grip.Find <Diesel>(); await actionCard.TakeAction(); await actionCard.Play(diesel).Trigger(game); } await actionCard.draw.Trigger(game); for (int i = 0; i < 7; i++) { var card = grip.Find <Diesel>(); game.runner.zones.grip.Discard(card, heap); } await passiveCorp.SkipTurn(); Assert.AreEqual(0, clicksObserver.Spent); Assert.AreEqual(10, gripObserver.TotalRemoved); Assert.AreEqual(10, heapObserver.TotalAdded); }
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); }