forked from woowacourse/java-blackjack
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
75 additions
and
53 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
package blackJack.domain; | ||
|
||
import blackJack.domain.Card.Number; | ||
import blackJack.domain.Card.*; | ||
import blackJack.domain.User.Dealer; | ||
import blackJack.domain.User.Player; | ||
import blackJack.domain.utils.FixedCardFactory; | ||
import org.junit.jupiter.api.BeforeEach; | ||
import org.junit.jupiter.api.DisplayName; | ||
import org.junit.jupiter.api.Test; | ||
|
||
import java.util.Arrays; | ||
import java.util.List; | ||
|
||
import static org.assertj.core.api.Assertions.assertThat; | ||
|
||
class PlayerResultTest { | ||
private CardFactory cardFactory; | ||
|
||
@BeforeEach | ||
public void setUp() { | ||
cardFactory = new FixedCardFactory(); | ||
} | ||
|
||
@Test | ||
@DisplayName("플레이어의 카드 합이 21이 넘으면 플레이어가 패배한다.") | ||
void PlayerIsLose_WhenOver21() { | ||
Cards over21Cards = new Cards(Arrays.asList( | ||
new Card(Shape.HEART, Number.JACK), | ||
new Card(Shape.HEART, Number.TEN), | ||
new Card(Shape.CLOVER, Number.TWO))); | ||
Cards cards = new Cards(List.of(new Card(Shape.DIAMOND, Number.TEN), new Card(Shape.DIAMOND, Number.JACK))); | ||
Player player = new Player("test", over21Cards); | ||
Dealer dealer = new Dealer(cards); | ||
dealer.hit(cardFactory); | ||
dealer.hit(cardFactory); | ||
|
||
PlayerResult actual = PlayerResult.decision(dealer, player); | ||
PlayerResult expected = PlayerResult.LOSE; | ||
assertThat(actual).isEqualTo(expected); | ||
} | ||
|
||
@Test | ||
@DisplayName("플레이어의 카드 합이 21이하이며, 딜러보다 21에 가까울때 플레이어가 승리한다.") | ||
void PlayerWinTest_WhenUnder21AndOverThanDealer() { | ||
Cards playerCards = new Cards(Arrays.asList( | ||
new Card(Shape.HEART, Number.JACK), | ||
new Card(Shape.HEART, Number.TEN))); | ||
Cards cards = new Cards(List.of(new Card(Shape.DIAMOND, Number.TEN), new Card(Shape.DIAMOND, Number.TWO))); | ||
Player player = new Player("test", playerCards); | ||
Dealer dealer = new Dealer(cards); | ||
PlayerResult actual = PlayerResult.decision(dealer, player); | ||
PlayerResult expected = PlayerResult.WIN; | ||
assertThat(actual).isEqualTo(expected); | ||
} | ||
|
||
@Test | ||
@DisplayName("딜러의 카드가 21을 넘으면 21이 안넘은 플레이어는 승리한다.") | ||
void PlayerIsWinTest_WhenUnder21AndDealerOverThan21() { | ||
Cards playerCards = new Cards(Arrays.asList( | ||
new Card(Shape.HEART, Number.JACK), | ||
new Card(Shape.HEART, Number.TEN))); | ||
Cards dealerCards = new Cards(List.of(new Card(Shape.DIAMOND, Number.TEN), new Card(Shape.DIAMOND, Number.JACK), | ||
new Card(Shape.CLOVER, Number.TEN))); | ||
Player player = new Player("test", playerCards); | ||
Dealer dealer = new Dealer(dealerCards); | ||
dealer.hit(cardFactory); | ||
dealer.hit(cardFactory); | ||
PlayerResult actual = PlayerResult.decision(dealer, player); | ||
PlayerResult expected = PlayerResult.WIN; | ||
assertThat(actual).isEqualTo(expected); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters