1+ package com .kakao .onboarding .precource .dukeyun .baseball .baseball ;
2+
3+ import static org .assertj .core .api .Assertions .assertThat ;
4+
5+ import com .kakao .onboarding .precource .dukeyun .baseball .mock .TestBaseballNumberGenerator ;
6+ import java .util .List ;
7+ import org .junit .jupiter .api .BeforeEach ;
8+ import org .junit .jupiter .api .DisplayNameGeneration ;
9+ import org .junit .jupiter .api .DisplayNameGenerator ;
10+ import org .junit .jupiter .api .Test ;
11+
12+ @ DisplayNameGeneration (DisplayNameGenerator .ReplaceUnderscores .class )
13+ class BaseballGameServiceTest {
14+
15+ private BaseballGameService baseballGameService ;
16+
17+ @ BeforeEach
18+ public void init () {
19+ baseballGameService = new BaseballGameService (new TestBaseballNumberGenerator (List .of (1 , 2 , 3 )));
20+ baseballGameService .init ();
21+ }
22+
23+ @ Test
24+ public void 정답_시_결과_객체에_클리어_정보를_반환한다 () throws Exception {
25+ // given
26+ BaseballGameTurnInput input = new BaseballGameTurnInput ("123" );
27+
28+ // when
29+ BaseballGameTurnResult result = (BaseballGameTurnResult ) baseballGameService .playTurn (input );
30+
31+ //then
32+ assertThat (result .isGameCleared ()).isTrue ();
33+ assertThat (result .getNumBall ()).isEqualTo (0 );
34+ assertThat (result .getNumStrike ()).isEqualTo (3 );
35+ }
36+
37+ @ Test
38+ public void 정답이_아닐_시_결과_객체에_클리어_실패_정보를_반환한다 () throws Exception {
39+ // given
40+ BaseballGameTurnInput input = new BaseballGameTurnInput ("132" );
41+
42+ // when
43+ BaseballGameTurnResult result = (BaseballGameTurnResult ) baseballGameService .playTurn (input );
44+
45+ //then
46+ assertThat (result .isGameCleared ()).isFalse ();
47+ assertThat (result .getNumBall ()).isEqualTo (2 );
48+ assertThat (result .getNumStrike ()).isEqualTo (1 );
49+ }
50+
51+ @ Test
52+ public void 모두_틀리면_볼과_스트라이크_모두_0이다 () throws Exception {
53+ // given
54+ BaseballGameTurnInput input = new BaseballGameTurnInput ("456" );
55+
56+ // when
57+ BaseballGameTurnResult result = (BaseballGameTurnResult ) baseballGameService .playTurn (input );
58+
59+ //then
60+ assertThat (result .isGameCleared ()).isFalse ();
61+ assertThat (result .getNumBall ()).isEqualTo (0 );
62+ assertThat (result .getNumStrike ()).isEqualTo (0 );
63+ }
64+
65+ @ Test
66+ public void 모두_자리만_다르면_3볼이다 () throws Exception {
67+ // given
68+ BaseballGameTurnInput input = new BaseballGameTurnInput ("312" );
69+
70+ // when
71+ BaseballGameTurnResult result = (BaseballGameTurnResult ) baseballGameService .playTurn (input );
72+
73+ //then
74+ assertThat (result .isGameCleared ()).isFalse ();
75+ assertThat (result .getNumBall ()).isEqualTo (3 );
76+ assertThat (result .getNumStrike ()).isEqualTo (0 );
77+ }
78+ }
0 commit comments