public void Test_PlayerState_Activation_Is_Idempotent() { var playerState = new PlayerState(new SimpleShuffler()); playerState.Activate(); Assert.Equal(1, playerState.TotalManaSlots); playerState.Activate(); Assert.Equal(1, playerState.TotalManaSlots); }
public void Test_PlayCard_Removes_CardFrom_Hand() { var playerState = new PlayerState(null); var hand = playerState.Hand; for (int i = 0; i < 3; i++) { playerState.Activate(); playerState.Deactivate(); } playerState.Activate(); playerState.PlayCard(1); Assert.Equal(4, playerState.Hand.Count); Assert.Equal(hand.ElementAt(0), playerState.Hand.ElementAt(0)); Assert.Equal(hand.ElementAt(2), playerState.Hand.ElementAt(1)); }
public void Test_Player_Takes_Damage_For_Drawing_After_Deck_Is_Empty() { var playerState = new PlayerState(new SimpleShuffler()); for (int i = 0; i < 17; i++) { playerState.Activate(); playerState.Deactivate(); } Assert.Equal(30, playerState.Health); for (int i = 29; i <= 0; i--) { playerState.Activate(); Assert.Equal(i, playerState.Health); playerState.Deactivate(); } }
public void Test_PlayerState_Activate_And_Deactivate_Works_Correctly() { var playerState = new PlayerState(new SimpleShuffler()); for (int i = 0; i < 10; i++) { playerState.Activate(); Assert.True(playerState.IsActive); Assert.Equal(i + 1, playerState.TotalManaSlots); Assert.Equal(i + 1, playerState.AvailableManaSlots); Assert.Equal(Math.Min(i + 4, 5), playerState.Hand.Count); Assert.Equal(16 - i, playerState.DeckCardCount); playerState.Deactivate(); Assert.False(playerState.IsActive); } playerState.Activate(); Assert.True(playerState.IsActive); Assert.Equal(10, playerState.TotalManaSlots); Assert.Equal(10, playerState.AvailableManaSlots); }