@@ -4,44 +4,36 @@
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
 public class LottoGameTest {
 
     @Test
-    @DisplayName("실제 로또 수익률과 예상한 로또 수익률이 같다면 성공이다.")
-    public void should_success_when_real_lotto_earning_ratio_matches_expected_lotto_yield() throws NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
-        // given
+    public void should_success_when_real_lotto_earning_ratio_matches_expected_lotto_yield() throws NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{
         LottoGame lottoGame = new LottoGame();
-        lottoGame.inputMoney(1000);
-
-        List<LottoNumber> testWinningLotto = new ArrayList<>();
-
-        for (int i = 1; i < 7; i++){
-            testWinningLotto.add(new LottoNumber(i));
+        lottoGame.calculateLottoCount(1000);
+        List<LottoNumber> lottoNumbers = new ArrayList<>();
+        for(int i=1; i<7; i++) {
+            lottoNumbers.add(new LottoNumber(i));
         }
+        List<Lotto> lottos = new ArrayList<>();
+        lottos.add(new Lotto(lottoNumbers));
 
-        List<Lotto> autoGeneratedLottos = new ArrayList<>();
-        autoGeneratedLottos.add(new Lotto(testWinningLotto));
-
-        Method method = lottoGame.getClass().getDeclaredMethod("generateLottoTicket",List.class);
+        Method method = lottoGame.getClass().getDeclaredMethod("makeLottoTicket", List.class);
         method.setAccessible(true);
 
-        method.invoke(lottoGame, autoGeneratedLottos);
-
-        lottoGame.calculateRankStatistics(new WinningLotto(testWinningLotto));
+        method.invoke(lottoGame, lottos);
 
-        String expectedEarningRatio = "200000000.0";
+        WinningLotto winningLotto = new WinningLotto(lottoNumbers, new BonusNumber(new LottoNumber(7)));
+        lottoGame.calculateRankStatistics(winningLotto);
 
-        // when
+        //when
         String earningRatio = lottoGame.calculateEarningRatio();
 
         // then
-        assertThat(earningRatio).isEqualTo(expectedEarningRatio);
+        assertThat(earningRatio).isEqualTo("200000000.0");
     }
 
     @Test
@@ -53,9 +45,35 @@ public void should_success_when_input_money_return_lotto_as_much_as_input_money(
         LottoGame lottoGame = new LottoGame();
 
         // when
-        int lottoCount = lottoGame.inputMoney(money);
+        int lottoCount = lottoGame.calculateLottoCount(money);
 
         // then
         assertThat(lottoCount).isEqualTo(expectedLottoCount);
     }
+
+    @Test
+    @DisplayName("구입 장수만큼 로또 티켓에 로또가 추가된다면 성공이다.")
+    public void should_success_when_lotto_ticket_can_add_lottos_as_much_as_money() {
+        // given
+        int manualLottoCount = 1;
+
+        LottoGame lottoGame = new LottoGame();
+        int lottoCount = lottoGame.calculateLottoCount(3000);
+
+        List<LottoNumber> lottoNumbers = new ArrayList<>();
+        for (int i = 1; i < 7; i++) {
+            lottoNumbers.add(new LottoNumber(i));
+        }
+
+        List<Lotto> manualLotto = new ArrayList<>();
+        for (int i = 0; i < manualLottoCount; i++) {
+            manualLotto.add(new Lotto(lottoNumbers));
+        }
+
+        // when
+        LottoTicket lottoTicket = lottoGame.generateLottoTicket(manualLottoCount);
+
+        // then
+        assertThat(lottoTicket.getLottoTicket().size()).isEqualTo(lottoCount);
+    }
 }
\ No newline at end of file

리뷰: `inputMoney()`라는 이름의 메소드의 결과값으로 로또 갯수가 나오는게 조금 어색한 것 같습니다. 입력받는 메소드와 갯수를 반환하는 메소드로 분리해보면 어떨까요?