public void BlackjackBetTransactionTest() { // arrange decimal startingChips = 100; decimal alexBetAmount = 5; decimal billBetAmount = 6; decimal charlieBetAmount = 7; List <Player> players = new List <Player>(); Player alex = new Player(startingChips) { Name = "Alex" }; Player bill = new Player(startingChips) { Name = "Bill" }; Player charlie = new Player(startingChips) { Name = "Charlie" }; players.Add(alex); players.Add(bill); players.Add(charlie); var bet1 = new BlackjackBet(alex, alexBetAmount, Pot.Instance); var bet2 = new BlackjackBet(bill, billBetAmount, Pot.Instance); var bet3 = new BlackjackBet(charlie, charlieBetAmount, Pot.Instance); // act bet1.Execute(); bet2.Execute(); bet3.Execute(); // assert Assert.AreEqual <decimal>(Pot.Instance.Chips, alexBetAmount + billBetAmount + charlieBetAmount); Assert.AreEqual <decimal>(alex.Bettor.Chips, startingChips - alexBetAmount); Assert.AreEqual <decimal>(alex.Bettor.Chips, bet1.Bettor.Chips); Assert.AreEqual <decimal>(bill.Bettor.Chips, startingChips - billBetAmount); Assert.AreEqual <decimal>(bill.Bettor.Chips, bet2.Bettor.Chips); Assert.AreEqual <decimal>(charlie.Bettor.Chips, startingChips - charlieBetAmount); Assert.AreEqual <decimal>(charlie.Bettor.Chips, bet3.Bettor.Chips); // simulate three winner splitting the pot // act Pot.Instance.TakePot(players.Select(p => p.Bettor).ToList()); // assert decimal potAmount = alexBetAmount + billBetAmount + charlieBetAmount; Assert.AreEqual <decimal>(alex.Bettor.Chips, startingChips - alexBetAmount + (potAmount / 3.0M)); Assert.AreEqual <decimal>(bill.Bettor.Chips, startingChips - billBetAmount + (potAmount / 3.0M)); Assert.AreEqual <decimal>(charlie.Bettor.Chips, startingChips - charlieBetAmount + (potAmount / 3.0M)); Assert.AreEqual <decimal>(Pot.Instance.Chips, 0); }
public void BlackjackBetTransactionTest() { // arrange decimal startingChips = 100; decimal alexBetAmount = 5; decimal billBetAmount = 6; decimal charlieBetAmount = 7; List<Player> players = new List<Player>(); Player alex = new Player(startingChips) { Name = "Alex" }; Player bill = new Player(startingChips) { Name = "Bill" }; Player charlie = new Player(startingChips) { Name = "Charlie" }; players.Add(alex); players.Add(bill); players.Add(charlie); var bet1 = new BlackjackBet(alex, alexBetAmount, Pot.Instance); var bet2 = new BlackjackBet(bill, billBetAmount, Pot.Instance); var bet3 = new BlackjackBet(charlie, charlieBetAmount, Pot.Instance); // act bet1.Execute(); bet2.Execute(); bet3.Execute(); // assert Assert.AreEqual<decimal>(Pot.Instance.Chips, alexBetAmount + billBetAmount + charlieBetAmount); Assert.AreEqual<decimal>(alex.Bettor.Chips, startingChips - alexBetAmount); Assert.AreEqual<decimal>(alex.Bettor.Chips, bet1.Bettor.Chips); Assert.AreEqual<decimal>(bill.Bettor.Chips, startingChips - billBetAmount); Assert.AreEqual<decimal>(bill.Bettor.Chips, bet2.Bettor.Chips); Assert.AreEqual<decimal>(charlie.Bettor.Chips, startingChips - charlieBetAmount); Assert.AreEqual<decimal>(charlie.Bettor.Chips, bet3.Bettor.Chips); // simulate three winner splitting the pot // act Pot.Instance.TakePot(players.Select(p => p.Bettor).ToList()); // assert decimal potAmount = alexBetAmount + billBetAmount + charlieBetAmount; Assert.AreEqual<decimal>(alex.Bettor.Chips, startingChips - alexBetAmount + (potAmount / 3.0M)); Assert.AreEqual<decimal>(bill.Bettor.Chips, startingChips - billBetAmount + (potAmount / 3.0M)); Assert.AreEqual<decimal>(charlie.Bettor.Chips, startingChips - charlieBetAmount + (potAmount / 3.0M)); Assert.AreEqual<decimal>(Pot.Instance.Chips, 0); }