/KojackGames.Blackjack.Acceptance.Tests/Steps/GameSetUpSteps.cs

https://github.com/elbandit/DDD-CQRS-Blackjack
C# | 102 lines | 84 code | 18 blank | 0 comment | 0 complexity | 11a132cff631292910744703d9c5525e MD5 | raw file
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using KojackGames.Blackjack.Acceptance.Tests.Utilities;
  6. using KojackGames.Blackjack.Acceptance.Tests.Utilities.StateBuilder;
  7. using KojackGames.Blackjack.Acceptance.Tests.Utilities.TableObjects;
  8. using KojackGames.Blackjack.Domain.GamePlay.Model;
  9. using KojackGames.Blackjack.Domain.GamePlay.Model.PlayingPosition.Hands.Status;
  10. using TechTalk.SpecFlow;
  11. using TechTalk.SpecFlow.Assist;
  12. namespace KojackGames.Blackjack.Acceptance.Tests.Steps
  13. {
  14. [Binding]
  15. public class GameSetUpSteps
  16. {
  17. [Given(@"the deck contains the following cards:")]
  18. public void GivenTheDeckContainsTheFollowingCards(Table table)
  19. {
  20. var mapper = new TableObjectMapper();
  21. var game_builder = new GameBuilder().find_game_by_player_id(PlayerToken.player_id);
  22. int card_position = 1;
  23. foreach(var row in table.Rows)
  24. {
  25. game_builder.add_to_deck(mapper.create_deck_row_from(row, card_position));
  26. card_position++;
  27. }
  28. var game = game_builder.build();
  29. DataBaseHelper.save_or_add<BlackJackTableRow>(game);
  30. }
  31. [Given(@"I have started a new game and bet ""(.*)""")]
  32. public void GivenIHaveStartedANewGameAndBet(decimal bet_amount)
  33. {
  34. var game = new GameBuilder().create_for(PlayerToken.player_id)
  35. .add_dealers_hand()
  36. .with_status_of(HandStatus.in_play)
  37. .build()
  38. .add_hand_with_bet_of(bet_amount)
  39. .with_status_of(HandStatus.in_play)
  40. .set_as_active()
  41. .build()
  42. .set_game_state_to(TableStatus.full_table)
  43. .build();
  44. DataBaseHelper.save_or_add(game);
  45. }
  46. [Given(@"my hand contains the following cards:")]
  47. public void GivenMyHandContainsTheFollowingCards(Table table)
  48. {
  49. var mapper = new TableObjectMapper();
  50. var game_builder = new GameBuilder().find_game_by_player_id(PlayerToken.player_id);
  51. var cards = new List<CardInHandRow>();
  52. foreach(var row in table.Rows)
  53. cards.Add(mapper.create_card_in_hand_row_from(row));
  54. game_builder.for_players_hand()
  55. .add_cards(cards);
  56. var game = game_builder.build();
  57. DataBaseHelper.save_or_add(game);
  58. }
  59. [Given(@"the dealers hand contains the following cards:")]
  60. public void GivenTheDealersHandContainsTheFollowingCards(Table table)
  61. {
  62. var mapper = new TableObjectMapper();
  63. var game_builder = new GameBuilder().find_game_by_player_id(PlayerToken.player_id);
  64. var cards = new List<CardInHandRow>();
  65. foreach (var row in table.Rows)
  66. cards.Add(mapper.create_card_in_hand_row_from(row));
  67. game_builder.add_cards_to_dealers_hand(cards);
  68. var game = game_builder.build();
  69. DataBaseHelper.save_or_add(game);
  70. }
  71. [Given(@"the dealers has dealt me in")]
  72. public void GivenIHaveBeenDealtMyInitalTwoCards()
  73. {
  74. var game_builder = new GameBuilder().find_game_by_player_id(PlayerToken.player_id);
  75. var game = game_builder.set_game_state_to(TableStatus.hands_dealt)
  76. .mark_cards_as_dealt()
  77. .add_dealers_hand()
  78. .with_status_of(HandStatus.in_play)
  79. .build()
  80. .build();
  81. DataBaseHelper.save_or_add(game);
  82. }
  83. }
  84. }