From d9441fe221643999ba29487bfebe86b5c3c0f977 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 1 Apr 2021 16:17:42 +0900 Subject: [PATCH 01/72] =?UTF-8?q?docs(guide):=20=EA=B5=AC=ED=98=84?= =?UTF-8?q?=ED=95=A0=20=EA=B8=B0=EB=8A=A5=20=EB=AA=A9=EB=A1=9D=EA=B3=BC=20?= =?UTF-8?q?=EC=98=88=EC=99=B8=20=EC=B2=98=EB=A6=AC=20=EB=AA=A9=EB=A1=9D=20?= =?UTF-8?q?=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index 7c9722c..0bd5059 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,21 @@ # ๐Ÿš€ ๋กœ๋˜ 1๋‹จ๊ณ„ - ์ž๋™ +## ๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ ๋ชฉ๋ก +- [ ] ๊ตฌ์ž…๊ธˆ์•ก์„ ์ž…๋ ฅ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. +- [ ] ๊ตฌ์ž…๊ธˆ์•ก์— ๋”ฐ๋ผ ๋ช‡๊ฐœ์˜ ๋กœ๋˜๋ฅผ ๊ตฌ์ž…ํ–ˆ๋Š”์ง€ ์•Œ๋ ค์ค€๋‹ค. +- [ ] ๋กœ๋˜์˜ ๊ฐฏ์ˆ˜์— ๋งž์ถ”์–ด 1~45๊นŒ์ง€ 6๊ฐœ์˜ ๋žœ๋ค ์ˆซ์ž ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค. +- [ ] ์ง€๋‚œ ์ฃผ ๋‹ด์ฒญ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. +- [ ] ๋ณด๋„ˆ์Šค ๋ณผ์„ ์ž…๋ ฅ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. +- [ ] ๋‹ด์ฒญ ํ†ต๊ณ„๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. +- [ ] ๋กœ๋˜์™€ ๋‹ด์ฒญ ๋ฒˆํ˜ธ๋ฅผ ๋น„๊ตํ•˜์—ฌ ๊ฐ ๋ช‡๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ๋งž์•˜๋Š”์ง€ ์ถœ๋ ฅํ•œ๋‹ค. +- [ ] ์ด ์ˆ˜์ต๋ฅ ์„ ์†Œ์ˆซ์  2๋ฒˆ์งธ ์ž๋ฆฌ๊นŒ์ง€ ์ถœ๋ ฅํ•œ๋‹ค. + +## ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ชฉ๋ก +- [ ] ๊ตฌ์ž…๊ธˆ์•ก์ด 0์›์ผ ๊ฒฝ์šฐ ๋กœ๋˜ ํ•œ์žฅ์˜ ๊ฐ€๊ฒฉ์ด 1000์›์ด๋ผ๋Š” ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ `๊ตฌ์ž…๊ธˆ์•ก์„ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”` ๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. +- [ ] ๋กœ๋˜ ๋„˜๋ฒ„์˜ ๋ฒ”์œ„๋Š” 1~45๊นŒ์ง€๋กœ ์ œํ•œํ•˜๋ฉฐ ์ด์™ธ์˜ ์ˆซ์ž๋Š” ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. +- [ ] ๋‹ด์ฒญ๋ฒˆํ˜ธ์™€ ๋ณด๋„ˆ์Šค ๋ฒˆํ˜ธ๊ฐ€ ๊ฐ™์€ ์ƒํ™ฉ์€ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. +- [ ] ์ €๋ฒˆ์ฃผ ๋‹ด์ฒญ๋ฒˆํ˜ธ๋“ค์ด 2๊ฐœ ์ด์ƒ ์ค‘๋ณต๋˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. + ## ๊ธฐ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ - ๋กœ๋˜ ๊ตฌ์ž… ๊ธˆ์•ก์„ ์ž…๋ ฅํ•˜๋ฉด ๊ตฌ์ž… ๊ธˆ์•ก์— ํ•ด๋‹นํ•˜๋Š” ๋กœ๋˜๋ฅผ ๋ฐœ๊ธ‰ํ•ด์•ผ ํ•œ๋‹ค. - ๋กœ๋˜ 1์žฅ์˜ ๊ฐ€๊ฒฉ์€ 1000์›์ด๋‹ค. From 16b39527b9318b623ce1c8be22678ed335f9d309 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 1 Apr 2021 23:09:19 +0900 Subject: [PATCH 02/72] =?UTF-8?q?feat:=20Lotto=20=EA=B0=9D=EC=B2=B4=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=20=EB=B0=8F=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=BC=80=EC=9D=B4=EC=8A=A4=20=EC=9E=91=EC=84=B1,=20NotValidLot?= =?UTF-8?q?toLengthException=20=EC=98=88=EC=99=B8=EC=B2=98=EB=A6=AC=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/Lotto.java | 25 +++++++++++ .../NotValidLottoLengthException.java | 9 ++++ src/test/java/lotto/domain/LottoTest.java | 44 +++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 src/main/java/lotto/domain/Lotto.java create mode 100644 src/main/java/lotto/domain/exception/NotValidLottoLengthException.java create mode 100644 src/test/java/lotto/domain/LottoTest.java diff --git a/src/main/java/lotto/domain/Lotto.java b/src/main/java/lotto/domain/Lotto.java new file mode 100644 index 0000000..548a9cb --- /dev/null +++ b/src/main/java/lotto/domain/Lotto.java @@ -0,0 +1,25 @@ +package lotto.domain; + +import lotto.domain.exception.NotValidLottoLengthException; + +import java.util.List; + +public class Lotto { + private final static int LOTTO_NUMBER_COUNT = 6; + private final List numbers; + + public Lotto(List numbers ) { + checkLottoLength(numbers); + this.numbers = numbers; + } + + private void checkLottoLength(List numbers){ + if(numbers.size() !=LOTTO_NUMBER_COUNT){ + throw new NotValidLottoLengthException(); + } + } + + public List getLotto(){ + return this.numbers; + } +} diff --git a/src/main/java/lotto/domain/exception/NotValidLottoLengthException.java b/src/main/java/lotto/domain/exception/NotValidLottoLengthException.java new file mode 100644 index 0000000..a8704c2 --- /dev/null +++ b/src/main/java/lotto/domain/exception/NotValidLottoLengthException.java @@ -0,0 +1,9 @@ +package lotto.domain.exception; + +public class NotValidLottoLengthException extends RuntimeException { + private static final String MESSAGE = "๋ฒˆํ˜ธ๋Š” 6๊ฐœ๋ฅผ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค."; + + public NotValidLottoLengthException() { + super(MESSAGE); + } +} diff --git a/src/test/java/lotto/domain/LottoTest.java b/src/test/java/lotto/domain/LottoTest.java new file mode 100644 index 0000000..093f4de --- /dev/null +++ b/src/test/java/lotto/domain/LottoTest.java @@ -0,0 +1,44 @@ +package lotto.domain; + +import lotto.domain.exception.NotValidLottoLengthException; +import org.junit.jupiter.api.Test; + +import java.util.List; +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; + +class LottoTest { + @Test + void ๋กœ๋˜_๊ฐ์ฒด๋ฅผ_์ƒ์„ฑํ•œ๋‹ค(){ + //given + List numbers = List.of(6,7,8,9,10,11); + List actual = List.of(6,7,8,9,10,11); + Lotto lotto = new Lotto(numbers); + + //when + List expected = lotto.getLotto(); + System.out.println(expected); + //then + assertThat(expected).isEqualTo(actual); + } + @Test + void ๋กœ๋˜_์ˆซ์ž๊ฐ€_6๊ฐœ๋ฅผ_์ดˆ๊ณผํ• _๊ฒฝ์šฐ_NotValidLottoLengthException์„_๋˜์ง„๋‹ค(){ + //given + List numbers = List.of(6,7,8,9,10,11,12); + + //when + //then + assertThatExceptionOfType(NotValidLottoLengthException.class). + isThrownBy(() -> new Lotto(numbers)); + } + @Test + void ๋กœ๋˜_์ˆซ์ž๊ฐ€_6๊ฐœ_๋ฏธ๋งŒ์ผ_๊ฒฝ์šฐ_NotValidLottoLengthException์„_๋˜์ง„๋‹ค(){ + //given + List numbers = List.of(6,7,8,9,10); + + //when + //then + assertThatExceptionOfType(NotValidLottoLengthException.class). + isThrownBy(() -> new Lotto(numbers)); + } +} \ No newline at end of file From 44d3e1a3b3ec475a7e9a558ad7e778ae7f522f62 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 1 Apr 2021 23:10:35 +0900 Subject: [PATCH 03/72] =?UTF-8?q?feat:=20=EB=A1=9C=EB=98=90=20=EB=84=98?= =?UTF-8?q?=EB=B2=84=EB=A5=BC=20=EB=9E=9C=EB=8D=A4=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=ED=95=B4=EC=A3=BC=EB=8A=94=20RandomLottoNumb?= =?UTF-8?q?erStrategy=20class=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/strategy/RandomLottoNumberStrategy.java | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/main/java/lotto/domain/strategy/RandomLottoNumberStrategy.java diff --git a/src/main/java/lotto/domain/strategy/RandomLottoNumberStrategy.java b/src/main/java/lotto/domain/strategy/RandomLottoNumberStrategy.java new file mode 100644 index 0000000..aaa7427 --- /dev/null +++ b/src/main/java/lotto/domain/strategy/RandomLottoNumberStrategy.java @@ -0,0 +1,11 @@ +package lotto.domain.strategy; + +import java.util.Random; + +public class RandomLottoNumberStrategy { + private final static int UPPER_BOUND = 46; + + public int decideNumber(){ + return new Random().nextInt(UPPER_BOUND); + } +} From a6ef619f8c09b33b596f910a7bfe09c96e6e5810 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 1 Apr 2021 23:45:07 +0900 Subject: [PATCH 04/72] =?UTF-8?q?feat:=20RandomLottoNumberStrategy=20class?= =?UTF-8?q?=20=EC=83=9D=EC=84=B1=20=EB=B0=8F=20shuffle=EC=9D=84=20?= =?UTF-8?q?=ED=86=B5=ED=95=B4=EC=84=9C=20=EC=A4=91=EB=B3=B5=EB=90=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EB=8A=94=20=EB=9E=9C=EB=8D=A4=EC=88=AB?= =?UTF-8?q?=EC=9E=90=206=EA=B0=9C=EB=A5=BC=20=EB=A6=AC=EC=8A=A4=ED=8A=B8?= =?UTF-8?q?=EB=A1=9C=20=EB=B0=98=ED=99=98=ED=95=98=EB=8A=94=20method=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../strategy/RandomLottoNumberStrategy.java | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/main/java/lotto/domain/strategy/RandomLottoNumberStrategy.java b/src/main/java/lotto/domain/strategy/RandomLottoNumberStrategy.java index aaa7427..0086b22 100644 --- a/src/main/java/lotto/domain/strategy/RandomLottoNumberStrategy.java +++ b/src/main/java/lotto/domain/strategy/RandomLottoNumberStrategy.java @@ -1,11 +1,31 @@ package lotto.domain.strategy; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import java.util.Random; public class RandomLottoNumberStrategy { - private final static int UPPER_BOUND = 46; + private final static int UPPER_BOUND = 45; + private final static int LOWER_BOUND = 1; + private final static int LOTTO_NUMBER_COUNT = 6; - public int decideNumber(){ - return new Random().nextInt(UPPER_BOUND); + public List getRandomLottoNumbers(){ + List lottoNumberRange = setLottoNumberRange(); + return getLottoNumbers(lottoNumberRange); } + + private List setLottoNumberRange(){ + ArrayList lottoNumberIndex = new ArrayList<>(); + for (int lottoNumber = LOWER_BOUND; lottoNumber < UPPER_BOUND; lottoNumber++) { + lottoNumberIndex.add(lottoNumber); + } + return lottoNumberIndex; + } + + private List getLottoNumbers(List lottoNumberRange){ + Collections.shuffle(lottoNumberRange); + return lottoNumberRange.subList(0,LOTTO_NUMBER_COUNT); + } + } From 33140748f7085da4d3a3962899d67ee005b0b891 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 15:04:58 +0900 Subject: [PATCH 05/72] =?UTF-8?q?refactor:=20.gitignore=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=EC=97=90=20out=20=ED=8C=8C=EC=9D=BC=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=EC=99=80=20setLottoNumberRange=20=EC=95=88=EC=9D=98?= =?UTF-8?q?=20=EB=B3=80=EC=88=98=20naming=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + .../lotto/domain/strategy/RandomLottoNumberStrategy.java | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 573e847..09f21d0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .idea/ .gradle/ build/ +out \ No newline at end of file diff --git a/src/main/java/lotto/domain/strategy/RandomLottoNumberStrategy.java b/src/main/java/lotto/domain/strategy/RandomLottoNumberStrategy.java index 0086b22..718cf07 100644 --- a/src/main/java/lotto/domain/strategy/RandomLottoNumberStrategy.java +++ b/src/main/java/lotto/domain/strategy/RandomLottoNumberStrategy.java @@ -16,11 +16,11 @@ public List getRandomLottoNumbers(){ } private List setLottoNumberRange(){ - ArrayList lottoNumberIndex = new ArrayList<>(); + ArrayList lottoNumberRange = new ArrayList<>(); for (int lottoNumber = LOWER_BOUND; lottoNumber < UPPER_BOUND; lottoNumber++) { - lottoNumberIndex.add(lottoNumber); + lottoNumberRange.add(lottoNumber); } - return lottoNumberIndex; + return lottoNumberRange; } private List getLottoNumbers(List lottoNumberRange){ From d58b466fe616d0764abe435c54f7fb75fd07a336 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 15:43:51 +0900 Subject: [PATCH 06/72] =?UTF-8?q?refactor:=20Lotto=20class=20=EB=A5=BC=20?= =?UTF-8?q?=EC=B6=94=EC=83=81=ED=99=94=20=ED=81=B4=EB=9E=98=EC=8A=A4?= =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/Lotto.java | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/src/main/java/lotto/domain/Lotto.java b/src/main/java/lotto/domain/Lotto.java index 548a9cb..a554dac 100644 --- a/src/main/java/lotto/domain/Lotto.java +++ b/src/main/java/lotto/domain/Lotto.java @@ -1,25 +1,17 @@ package lotto.domain; -import lotto.domain.exception.NotValidLottoLengthException; +import lotto.domain.validation.LottoValidation; import java.util.List; -public class Lotto { - private final static int LOTTO_NUMBER_COUNT = 6; +abstract class Lotto { private final List numbers; - public Lotto(List numbers ) { - checkLottoLength(numbers); + public Lotto(List numbers){ + LottoValidation lottoValidation = new LottoValidation(); + lottoValidation.checkLottoLength(numbers); this.numbers = numbers; } - private void checkLottoLength(List numbers){ - if(numbers.size() !=LOTTO_NUMBER_COUNT){ - throw new NotValidLottoLengthException(); - } - } - - public List getLotto(){ - return this.numbers; - } + public abstract List getLotto(); } From c0f662f1e7c77aaec38de249a207e82e24b30636 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 15:44:29 +0900 Subject: [PATCH 07/72] =?UTF-8?q?refactor:=20LottoValidation=20class=20?= =?UTF-8?q?=EB=A5=BC=20=EB=A7=8C=EB=93=A4=EC=96=B4=EC=84=9C=20Lotto=20?= =?UTF-8?q?=EA=B0=9D=EC=B2=B4=20=EC=83=9D=EC=84=B1=EC=8B=9C=EC=97=90=20val?= =?UTF-8?q?idate=20=EC=97=AC=EB=B6=80=20=ED=99=95=EC=9D=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lotto/domain/validation/LottoValidation.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/main/java/lotto/domain/validation/LottoValidation.java diff --git a/src/main/java/lotto/domain/validation/LottoValidation.java b/src/main/java/lotto/domain/validation/LottoValidation.java new file mode 100644 index 0000000..c61fa89 --- /dev/null +++ b/src/main/java/lotto/domain/validation/LottoValidation.java @@ -0,0 +1,15 @@ +package lotto.domain.validation; + +import lotto.domain.exception.NotValidLottoLengthException; + +import java.util.List; + +public class LottoValidation { + private final static int LOTTO_NUMBER_COUNT = 6; + + public void checkLottoLength(List numbers){ + if(numbers.size() !=LOTTO_NUMBER_COUNT){ + throw new NotValidLottoLengthException(); + } + } +} From d1d653f8c68e6f1e39c9704c031dd5a1a9b0728e Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 16:14:37 +0900 Subject: [PATCH 08/72] =?UTF-8?q?feat:=20checkDuplicatedNumber=20method?= =?UTF-8?q?=EB=A5=BC=20=EA=B5=AC=ED=98=84=ED=95=A8=EC=9C=BC=EB=A1=9C?= =?UTF-8?q?=EC=8D=A8=20=EC=A4=91=EB=B3=B5=EB=90=98=EB=8A=94=20=EB=A1=9C?= =?UTF-8?q?=EB=98=90=20=EC=88=AB=EC=9E=90=EA=B0=80=20=EB=93=A4=EC=96=B4?= =?UTF-8?q?=EC=98=AC=20=EC=8B=9C=EC=97=90=20exception=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/Lotto.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/lotto/domain/Lotto.java b/src/main/java/lotto/domain/Lotto.java index a554dac..89b2652 100644 --- a/src/main/java/lotto/domain/Lotto.java +++ b/src/main/java/lotto/domain/Lotto.java @@ -10,6 +10,7 @@ abstract class Lotto { public Lotto(List numbers){ LottoValidation lottoValidation = new LottoValidation(); lottoValidation.checkLottoLength(numbers); + lottoValidation.checkDuplicatedNumber(numbers); this.numbers = numbers; } From a159daa0e56384297ca2f44fd145047f376d4674 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 16:15:06 +0900 Subject: [PATCH 09/72] =?UTF-8?q?feat:=20checkDuplicatedNumber=20method=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/validation/LottoValidation.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/lotto/domain/validation/LottoValidation.java b/src/main/java/lotto/domain/validation/LottoValidation.java index c61fa89..8baea1f 100644 --- a/src/main/java/lotto/domain/validation/LottoValidation.java +++ b/src/main/java/lotto/domain/validation/LottoValidation.java @@ -1,15 +1,31 @@ package lotto.domain.validation; +import lotto.domain.exception.NotDuplicatedNumberException; import lotto.domain.exception.NotValidLottoLengthException; +import java.util.ArrayList; import java.util.List; public class LottoValidation { private final static int LOTTO_NUMBER_COUNT = 6; - public void checkLottoLength(List numbers){ + public void checkLottoLength(List numbers) { if(numbers.size() !=LOTTO_NUMBER_COUNT){ throw new NotValidLottoLengthException(); } } + + public void checkDuplicatedNumber(List numbers) { + List duplicatedCheckNumbers = new ArrayList<>(); + for (Integer number :numbers) { + hasDuplicatedNumber(number, duplicatedCheckNumbers); + } + } + + private void hasDuplicatedNumber(Integer number, List numbers) { + if(numbers.contains(number)) { + throw new NotDuplicatedNumberException(); + } + numbers.add(number); + } } From 086390e84a90952a004ed28741124f56aed2437a Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 16:15:41 +0900 Subject: [PATCH 10/72] =?UTF-8?q?feat:=20NotDuplicatedNumberException=20cl?= =?UTF-8?q?ass=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/exception/NotDuplicatedNumberException.java | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/main/java/lotto/domain/exception/NotDuplicatedNumberException.java diff --git a/src/main/java/lotto/domain/exception/NotDuplicatedNumberException.java b/src/main/java/lotto/domain/exception/NotDuplicatedNumberException.java new file mode 100644 index 0000000..23c6392 --- /dev/null +++ b/src/main/java/lotto/domain/exception/NotDuplicatedNumberException.java @@ -0,0 +1,9 @@ +package lotto.domain.exception; + +public class NotDuplicatedNumberException extends RuntimeException{ + private static final String MESSAGE = "์ค‘๋ณต๋˜๋Š” ๋กœ๋˜ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜์‹ค ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."; + + public NotDuplicatedNumberException() { + super(MESSAGE); + } +} From 468a9629d5d6d35bda40ef13efe1dcb354931a25 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 16:16:07 +0900 Subject: [PATCH 11/72] =?UTF-8?q?feat:=20LottoAutomaticTicket=20class=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=20=EB=B0=8F=20test=20case=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lotto/domain/LottoAutomaticTicket.java | 16 +++++++++++ src/test/java/lotto/domain/LottoTest.java | 28 +++++++++++++------ 2 files changed, 36 insertions(+), 8 deletions(-) create mode 100644 src/main/java/lotto/domain/LottoAutomaticTicket.java diff --git a/src/main/java/lotto/domain/LottoAutomaticTicket.java b/src/main/java/lotto/domain/LottoAutomaticTicket.java new file mode 100644 index 0000000..8a70304 --- /dev/null +++ b/src/main/java/lotto/domain/LottoAutomaticTicket.java @@ -0,0 +1,16 @@ +package lotto.domain; + +import java.util.List; + +public class LottoAutomaticTicket extends Lotto{ + + private final List numbers; + + public LottoAutomaticTicket(List numbers) { + super(numbers); + this.numbers = numbers; + } + public List getLotto(){ + return this.numbers; + } +} diff --git a/src/test/java/lotto/domain/LottoTest.java b/src/test/java/lotto/domain/LottoTest.java index 093f4de..e1a36ac 100644 --- a/src/test/java/lotto/domain/LottoTest.java +++ b/src/test/java/lotto/domain/LottoTest.java @@ -1,44 +1,56 @@ package lotto.domain; import lotto.domain.exception.NotValidLottoLengthException; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; class LottoTest { + + private LottoAutomaticTicket lottoAutomaticTicket; + + @BeforeEach + void setup() { + List numbers = new ArrayList<>(Arrays.asList(6,7,8,9,10,11)); + lottoAutomaticTicket = new LottoAutomaticTicket(numbers); + } + @Test void ๋กœ๋˜_๊ฐ์ฒด๋ฅผ_์ƒ์„ฑํ•œ๋‹ค(){ //given - List numbers = List.of(6,7,8,9,10,11); - List actual = List.of(6,7,8,9,10,11); - Lotto lotto = new Lotto(numbers); + List actual = new ArrayList<>(Arrays.asList(6,7,8,9,10,11)); + //when - List expected = lotto.getLotto(); + List expected = lottoAutomaticTicket.getLotto(); System.out.println(expected); //then assertThat(expected).isEqualTo(actual); } + @Test void ๋กœ๋˜_์ˆซ์ž๊ฐ€_6๊ฐœ๋ฅผ_์ดˆ๊ณผํ• _๊ฒฝ์šฐ_NotValidLottoLengthException์„_๋˜์ง„๋‹ค(){ //given - List numbers = List.of(6,7,8,9,10,11,12); + List numbers = new ArrayList<>(Arrays.asList(6,7,8,9,10,11,12)); //when //then assertThatExceptionOfType(NotValidLottoLengthException.class). - isThrownBy(() -> new Lotto(numbers)); + isThrownBy(() -> new LottoAutomaticTicket(numbers)); } @Test void ๋กœ๋˜_์ˆซ์ž๊ฐ€_6๊ฐœ_๋ฏธ๋งŒ์ผ_๊ฒฝ์šฐ_NotValidLottoLengthException์„_๋˜์ง„๋‹ค(){ //given - List numbers = List.of(6,7,8,9,10); + List numbers = new ArrayList<>(Arrays.asList(6,7,8,9,10)); //when //then assertThatExceptionOfType(NotValidLottoLengthException.class). - isThrownBy(() -> new Lotto(numbers)); + isThrownBy(() -> new LottoAutomaticTicket(numbers)); } } \ No newline at end of file From 7154d906df1546f5b229818ca2914dddfa1381fc Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 16:37:54 +0900 Subject: [PATCH 12/72] =?UTF-8?q?feat:=20=EB=A1=9C=EB=98=90=20=EC=88=AB?= =?UTF-8?q?=EC=9E=90=EA=B0=80=206=EA=B0=9C=EC=9D=BC=20=EB=95=8C=20?= =?UTF-8?q?=EA=B2=B9=EC=B9=98=EB=8A=94=20=EC=88=AB=EC=9E=90=EA=B0=80=20?= =?UTF-8?q?=EC=9E=88=EC=9D=84=20=EA=B2=BD=EC=9A=B0=EC=97=90=20=EB=8C=80?= =?UTF-8?q?=ED=95=9C=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BC=80=EC=9D=B4?= =?UTF-8?q?=EC=8A=A4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/lotto/domain/LottoTest.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/test/java/lotto/domain/LottoTest.java b/src/test/java/lotto/domain/LottoTest.java index e1a36ac..f1a2059 100644 --- a/src/test/java/lotto/domain/LottoTest.java +++ b/src/test/java/lotto/domain/LottoTest.java @@ -1,6 +1,8 @@ package lotto.domain; +import lotto.domain.exception.NotDuplicatedNumberException; import lotto.domain.exception.NotValidLottoLengthException; +import lotto.domain.lotto.LottoAutomaticTicket; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -53,4 +55,15 @@ void setup() { assertThatExceptionOfType(NotValidLottoLengthException.class). isThrownBy(() -> new LottoAutomaticTicket(numbers)); } + + @Test + void ๋กœ๋˜_์ˆซ์ž๊ฐ€_6๊ฐœ์ผ๋•Œ_๊ฒน์น˜๋Š”_์ˆซ์ž๊ฐ€_์žˆ์„_๊ฒฝ์šฐ_NotDuplicatedNumberException_์„_๋˜์ง„๋‹ค() { + //given + List numbers = new ArrayList<>(Arrays.asList(6,6,7,8,9,10)); + + //when + //then + assertThatExceptionOfType(NotDuplicatedNumberException.class). + isThrownBy(() -> new LottoAutomaticTicket(numbers)); + } } \ No newline at end of file From abe5f7502f9bd6536c308fefd8e5f88940ad3d97 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 16:38:33 +0900 Subject: [PATCH 13/72] =?UTF-8?q?refactor:=20=ED=94=84=EB=A1=9C=EC=A0=9D?= =?UTF-8?q?=ED=8A=B8=20=EA=B5=AC=EC=A1=B0=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/{ => lotto}/Lotto.java | 2 +- .../java/lotto/domain/{ => lotto}/LottoAutomaticTicket.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) rename src/main/java/lotto/domain/{ => lotto}/Lotto.java (94%) rename src/main/java/lotto/domain/{ => lotto}/LottoAutomaticTicket.java (91%) diff --git a/src/main/java/lotto/domain/Lotto.java b/src/main/java/lotto/domain/lotto/Lotto.java similarity index 94% rename from src/main/java/lotto/domain/Lotto.java rename to src/main/java/lotto/domain/lotto/Lotto.java index 89b2652..d73135b 100644 --- a/src/main/java/lotto/domain/Lotto.java +++ b/src/main/java/lotto/domain/lotto/Lotto.java @@ -1,4 +1,4 @@ -package lotto.domain; +package lotto.domain.lotto; import lotto.domain.validation.LottoValidation; diff --git a/src/main/java/lotto/domain/LottoAutomaticTicket.java b/src/main/java/lotto/domain/lotto/LottoAutomaticTicket.java similarity index 91% rename from src/main/java/lotto/domain/LottoAutomaticTicket.java rename to src/main/java/lotto/domain/lotto/LottoAutomaticTicket.java index 8a70304..656c2ab 100644 --- a/src/main/java/lotto/domain/LottoAutomaticTicket.java +++ b/src/main/java/lotto/domain/lotto/LottoAutomaticTicket.java @@ -1,4 +1,4 @@ -package lotto.domain; +package lotto.domain.lotto; import java.util.List; @@ -10,6 +10,7 @@ public LottoAutomaticTicket(List numbers) { super(numbers); this.numbers = numbers; } + public List getLotto(){ return this.numbers; } From 4b16472dd14c50726969169a3edc2624ecd5a43c Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 16:48:26 +0900 Subject: [PATCH 14/72] =?UTF-8?q?feat:=20PurchaseAmount=20class=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/lotto/domain/PurchaseAmount.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/main/java/lotto/domain/PurchaseAmount.java diff --git a/src/main/java/lotto/domain/PurchaseAmount.java b/src/main/java/lotto/domain/PurchaseAmount.java new file mode 100644 index 0000000..3d41b33 --- /dev/null +++ b/src/main/java/lotto/domain/PurchaseAmount.java @@ -0,0 +1,19 @@ +package lotto.domain; + +import lotto.domain.validation.PurchaseAmountValidation; + +public class PurchaseAmount { + private static final int MIN_PURCHASE_AMOUNT = 0; + + private final int purchaseAmount; + + public PurchaseAmount(int purchaseAmount) { + PurchaseAmountValidation purchaseAmountValidation = new PurchaseAmountValidation(); + this.purchaseAmount = purchaseAmount; + purchaseAmountValidation.checkPurchaseAmountNotPositive(this.purchaseAmount); + } + + public int getPurchaseAmount() { + return purchaseAmount; + } +} From 2fdafea2b4a4e94e1cf172774d47e90076f842e7 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 16:48:56 +0900 Subject: [PATCH 15/72] =?UTF-8?q?feat:=20=EB=A1=9C=EB=98=90=20=EA=B5=AC?= =?UTF-8?q?=EC=9E=85=EA=B8=88=EC=95=A1=20=EA=B0=9D=EC=B2=B4=EB=A5=BC=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=ED=95=98=EB=8A=94=20test=20case=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/lotto/domain/PurchaseAmountTest.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/test/java/lotto/domain/PurchaseAmountTest.java diff --git a/src/test/java/lotto/domain/PurchaseAmountTest.java b/src/test/java/lotto/domain/PurchaseAmountTest.java new file mode 100644 index 0000000..6a7a202 --- /dev/null +++ b/src/test/java/lotto/domain/PurchaseAmountTest.java @@ -0,0 +1,27 @@ +package lotto.domain; + +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.*; + +class PurchaseAmountTest { + @Test + void ๋กœ๋˜_๊ตฌ์ž…๊ธˆ์•ก_๊ฐ์ฒด๋ฅผ_์ƒ์„ฑํ•œ๋‹ค(){ + //given + int purchaseAmountNumber = 1000; + int actual = 1000; + PurchaseAmount purchaseAmount = new PurchaseAmount(purchaseAmountNumber); + + //when + int expected = purchaseAmount.getPurchaseAmount(); + System.out.println(expected); + + //then + assertThat(expected).isEqualTo(actual); + } +} \ No newline at end of file From 626d3ce0f0a51825629da74b0dbc5ba8771c2422 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 16:55:47 +0900 Subject: [PATCH 16/72] =?UTF-8?q?feat:=20PurchaseAmount=20=EA=B0=9D?= =?UTF-8?q?=EC=B2=B4=EC=97=90=20=EB=8C=80=ED=95=9C=20validation=20?= =?UTF-8?q?=EC=B2=B4=ED=81=AC=EB=A5=BC=20=ED=95=B4=EC=A3=BC=EB=8A=94=20cla?= =?UTF-8?q?ss=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/validation/PurchaseAmountValidation.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 src/main/java/lotto/domain/validation/PurchaseAmountValidation.java diff --git a/src/main/java/lotto/domain/validation/PurchaseAmountValidation.java b/src/main/java/lotto/domain/validation/PurchaseAmountValidation.java new file mode 100644 index 0000000..900a240 --- /dev/null +++ b/src/main/java/lotto/domain/validation/PurchaseAmountValidation.java @@ -0,0 +1,12 @@ +package lotto.domain.validation; + +public class PurchaseAmountValidation { + private static final int MIN_PURCHASE_AMOUNT = 0; + + public void checkPurchaseAmountNotPositive(int purchaseAmount) { + if (purchaseAmount <= MIN_PURCHASE_AMOUNT) { + throw new IllegalArgumentException("๊ตฌ๋งค ๊ธˆ์•ก์€ 0์› ์ดํ•˜๊ฐ€ ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."); + } + } + +} From 8d7bcfb6ff57fa830b9931c8bdbba7b7c5d9e51a Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 16:56:24 +0900 Subject: [PATCH 17/72] =?UTF-8?q?feat:=20=EB=A1=9C=EB=98=90=20=EA=B5=AC?= =?UTF-8?q?=EC=9E=85=20=EA=B8=88=EC=95=A1=EC=9D=B4=200=EC=9D=B4=ED=95=98?= =?UTF-8?q?=EC=9D=BC=20=EA=B2=BD=EC=9A=B0=20IllegalArgumentException=20?= =?UTF-8?q?=EC=9D=84=20=EB=8D=98=EC=A7=80=EB=8A=94=20test=20case=20?= =?UTF-8?q?=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/lotto/domain/PurchaseAmountTest.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/test/java/lotto/domain/PurchaseAmountTest.java b/src/test/java/lotto/domain/PurchaseAmountTest.java index 6a7a202..2d04087 100644 --- a/src/test/java/lotto/domain/PurchaseAmountTest.java +++ b/src/test/java/lotto/domain/PurchaseAmountTest.java @@ -1,15 +1,14 @@ package lotto.domain; +import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.jupiter.api.Assertions.*; class PurchaseAmountTest { + @Test void ๋กœ๋˜_๊ตฌ์ž…๊ธˆ์•ก_๊ฐ์ฒด๋ฅผ_์ƒ์„ฑํ•œ๋‹ค(){ //given @@ -24,4 +23,11 @@ class PurchaseAmountTest { //then assertThat(expected).isEqualTo(actual); } + + @ParameterizedTest(name = "{0}์ด ๋“ค์–ด์˜ฌ๋•Œ ์˜ˆ์™ธ ๋ฐœ์ƒ") + @ValueSource(ints = {-1000, 0}) + void ๋กœ๋˜_๊ตฌ์ž…_๊ธˆ์•ก์ด_0์ดํ•˜์ผ_๊ฒฝ์šฐ_IllegalArgumentException_์„_๋˜์ง„๋‹ค(int value) { + Assertions.assertThatIllegalArgumentException() + .isThrownBy(() -> new PurchaseAmount(value)); + } } \ No newline at end of file From 6c7f16956e13fdfdcf68381bca860d95f5eb6895 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 17:06:01 +0900 Subject: [PATCH 18/72] =?UTF-8?q?feat:=20=EA=B5=AC=EC=9E=85=ED=95=9C=20?= =?UTF-8?q?=EA=B8=88=EC=95=A1=EC=97=90=20=EB=94=B0=EB=9D=BC=20=EB=A1=9C?= =?UTF-8?q?=EB=98=90=20=ED=8B=B0=EC=BC=93=EC=88=98=EB=A5=BC=20=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=ED=95=98=EB=8A=94=20LottoTicketOfNumber=20class=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lotto/domain/LottoTicketOfNumber.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/main/java/lotto/domain/LottoTicketOfNumber.java diff --git a/src/main/java/lotto/domain/LottoTicketOfNumber.java b/src/main/java/lotto/domain/LottoTicketOfNumber.java new file mode 100644 index 0000000..ddebaf7 --- /dev/null +++ b/src/main/java/lotto/domain/LottoTicketOfNumber.java @@ -0,0 +1,21 @@ +package lotto.domain; + +import lotto.domain.validation.PurchaseAmountValidation; + +public class LottoTicketOfNumber { + private final int lottoTicketOfNumber; + private final static int LottoTicketPrice = 1000; + + public LottoTicketOfNumber(int purchaseAmount) { + this.lottoTicketOfNumber = calculateLottoTicketOfNumber(purchaseAmount); + } + + private int calculateLottoTicketOfNumber(int purchaseAmount) { + return purchaseAmount / LottoTicketPrice; + } + + public int getLottoTicketOfNumber() { + return lottoTicketOfNumber; + } + +} From 810e10db22f80b690f2e3fceb697df5afa3771b2 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 17:08:37 +0900 Subject: [PATCH 19/72] =?UTF-8?q?feat:=20=EB=A1=9C=EB=98=90=20=ED=8B=B0?= =?UTF-8?q?=EC=BC=93=20=EC=88=98=EB=A5=BC=20=EA=B4=80=EB=A6=AC=ED=95=98?= =?UTF-8?q?=EB=8A=94=20=EA=B0=9D=EC=B2=B4=EB=A5=BC=20=EC=83=9D=EC=84=B1?= =?UTF-8?q?=ED=95=98=EB=8A=94=20test=20case=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lotto/domain/LottoTicketOfNumberTest.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/test/java/lotto/domain/LottoTicketOfNumberTest.java diff --git a/src/test/java/lotto/domain/LottoTicketOfNumberTest.java b/src/test/java/lotto/domain/LottoTicketOfNumberTest.java new file mode 100644 index 0000000..3dd7d98 --- /dev/null +++ b/src/test/java/lotto/domain/LottoTicketOfNumberTest.java @@ -0,0 +1,22 @@ +package lotto.domain; + +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +class LottoTicketOfNumberTest { + @Test + void ๋กœ๋˜_ํ‹ฐ์ผ“_์ˆ˜๋ฅผ_๊ด€๋ฆฌํ•˜๋Š”_๊ฐ์ฒด๋ฅผ_์ƒ์„ฑํ•œ๋‹ค() { + //given + int purchaseAmountNumber = 11000; + int actual = 11; + LottoTicketOfNumber lottoTicketOfNumber = new LottoTicketOfNumber(purchaseAmountNumber); + + //when + int expected = lottoTicketOfNumber.getLottoTicketOfNumber(); + System.out.println(expected); + + //then + assertThat(expected).isEqualTo(actual); + } +} \ No newline at end of file From 410dd30a85cfc2d749b29ac57afeb0e07d5d0665 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 18:44:24 +0900 Subject: [PATCH 20/72] =?UTF-8?q?feat:=20LottoTicketOfNumber=20class?= =?UTF-8?q?=EB=A5=BC=20=EC=88=98=EB=8F=99=EB=B3=B5=EA=B6=8C=20=EC=9E=A5?= =?UTF-8?q?=EC=88=98=EB=A5=BC=20=EB=B0=9B=EC=9D=8C=EA=B3=BC=20=EB=8F=99?= =?UTF-8?q?=EC=8B=9C=EC=97=90=20=EA=B0=81=20=EB=A1=9C=EB=98=90=EC=9D=98=20?= =?UTF-8?q?=EC=88=98=EB=A5=BC=20=EA=B4=80=EB=A6=AC=ED=95=98=EB=8A=94=20cla?= =?UTF-8?q?ss=20=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lotto/domain/LottoTicketOfNumber.java | 33 +++++++++++++++---- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/src/main/java/lotto/domain/LottoTicketOfNumber.java b/src/main/java/lotto/domain/LottoTicketOfNumber.java index ddebaf7..dd3a3ce 100644 --- a/src/main/java/lotto/domain/LottoTicketOfNumber.java +++ b/src/main/java/lotto/domain/LottoTicketOfNumber.java @@ -1,21 +1,40 @@ package lotto.domain; -import lotto.domain.validation.PurchaseAmountValidation; +import lotto.domain.validation.LottoTicketOfNumberValidation; public class LottoTicketOfNumber { - private final int lottoTicketOfNumber; - private final static int LottoTicketPrice = 1000; + private final static int LOTTO_TICKET_PRICE = 1000; - public LottoTicketOfNumber(int purchaseAmount) { - this.lottoTicketOfNumber = calculateLottoTicketOfNumber(purchaseAmount); + private final int lottoTicketOfTotalNumber; + private final int manualLottoTicketOfNumber; + private final int automaticLottoTicketOfNumber; + + public LottoTicketOfNumber(int purchaseAmount, int purchaseManualLottoOfNumber) { + LottoTicketOfNumberValidation lottoTicketOfNumberValidation = new LottoTicketOfNumberValidation(); + this.lottoTicketOfTotalNumber = calculateLottoTicketOfNumber(purchaseAmount); + this.manualLottoTicketOfNumber = purchaseManualLottoOfNumber; + this.automaticLottoTicketOfNumber = calculateAutomaticLottoTicketOfNumber(lottoTicketOfTotalNumber, manualLottoTicketOfNumber); + lottoTicketOfNumberValidation.checkLottoTicketOfNumber(this.lottoTicketOfTotalNumber); } private int calculateLottoTicketOfNumber(int purchaseAmount) { - return purchaseAmount / LottoTicketPrice; + return purchaseAmount / LOTTO_TICKET_PRICE; + } + + private int calculateAutomaticLottoTicketOfNumber(int lottoTicketOfTotalNumber, int manualLottoTicketOfNumber) { + return lottoTicketOfTotalNumber - manualLottoTicketOfNumber; + } + + public int getManualLottoTicketOfNumber(){ + return manualLottoTicketOfNumber; + } + + public int getAutomaticLottoTicketOfNumber() { + return automaticLottoTicketOfNumber; } public int getLottoTicketOfNumber() { - return lottoTicketOfNumber; + return lottoTicketOfTotalNumber; } } From 105b98226094a0989b5de4182fb185d3d0685f37 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 18:45:15 +0900 Subject: [PATCH 21/72] =?UTF-8?q?feat:=20=EC=9E=90=EB=8F=99=20=EB=A1=9C?= =?UTF-8?q?=EB=98=90=20=ED=8B=B0=EC=BC=93=EC=9D=98=20=EC=88=98=EB=A5=BC=20?= =?UTF-8?q?=EA=B0=80=EC=A0=B8=EC=98=A4=EB=8A=94=20test=20case=20=EC=99=80?= =?UTF-8?q?=20=EC=9E=85=EB=A0=A5=ED=95=A0=20=EB=A1=9C=EB=98=90=20=EA=B5=AC?= =?UTF-8?q?=EC=9E=85=20=EA=B8=88=EC=95=A1=EC=9C=BC=EB=A1=9C=20=EB=A1=9C?= =?UTF-8?q?=EB=98=90=EB=A5=BC=20=EC=82=B4=20=EC=88=98=20=EC=97=86=EB=8A=94?= =?UTF-8?q?=20=EA=B2=BD=EC=9A=B0=20NotValidLottoTicketOfNumberException=20?= =?UTF-8?q?=EB=A5=BC=20=EB=8D=98=EC=A7=80=EB=8A=94=20test=20case=20?= =?UTF-8?q?=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lotto/domain/LottoTicketOfNumberTest.java | 34 +++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/src/test/java/lotto/domain/LottoTicketOfNumberTest.java b/src/test/java/lotto/domain/LottoTicketOfNumberTest.java index 3dd7d98..c5f0b10 100644 --- a/src/test/java/lotto/domain/LottoTicketOfNumberTest.java +++ b/src/test/java/lotto/domain/LottoTicketOfNumberTest.java @@ -1,16 +1,19 @@ package lotto.domain; +import lotto.domain.exception.NotValidLottoTicketOfNumberException; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; class LottoTicketOfNumberTest { @Test - void ๋กœ๋˜_ํ‹ฐ์ผ“_์ˆ˜๋ฅผ_๊ด€๋ฆฌํ•˜๋Š”_๊ฐ์ฒด๋ฅผ_์ƒ์„ฑํ•œ๋‹ค() { + void ๋กœ๋˜_ํ‹ฐ์ผ“์˜_์ด_์ˆ˜๋ฅผ_๊ด€๋ฆฌํ•˜๋Š”_๊ฐ์ฒด๋ฅผ_์ƒ์„ฑํ•œ๋‹ค() { //given int purchaseAmountNumber = 11000; + int manualLottoTicketOfNumber = 3; int actual = 11; - LottoTicketOfNumber lottoTicketOfNumber = new LottoTicketOfNumber(purchaseAmountNumber); + LottoTicketOfNumber lottoTicketOfNumber = new LottoTicketOfNumber(purchaseAmountNumber, manualLottoTicketOfNumber); //when int expected = lottoTicketOfNumber.getLottoTicketOfNumber(); @@ -19,4 +22,31 @@ class LottoTicketOfNumberTest { //then assertThat(expected).isEqualTo(actual); } + + @Test + void ์ž๋™_๋กœ๋˜_ํ‹ฐ์ผ“์˜_์ˆ˜๋ฅผ_๊ฐ€์ ธ์˜จ๋‹ค() { + //given + int purchaseAmountNumber = 11000; + int manualLottoTicketOfNumber = 3; + int actual = 8; + LottoTicketOfNumber lottoTicketOfNumber = new LottoTicketOfNumber(purchaseAmountNumber, manualLottoTicketOfNumber); + + //when + int expected = lottoTicketOfNumber.getAutomaticLottoTicketOfNumber(); + System.out.println(expected); + + //then + assertThat(expected).isEqualTo(actual); + } + + @Test + void ์ž…๋ ฅํ•œ_๋กœ๋˜_๊ตฌ์ž…_๊ธˆ์•ก์œผ๋กœ_๋กœ๋˜๋ฅผ_์‚ด_์ˆ˜_์—†๋Š”_๊ฒฝ์šฐ_NotValidLottoTicketOfNumberException_์„_๋˜์ง„๋‹ค() { + //given + int purchaseAmount = 900; + int manualLottoTicketOfNumber = 3; + //when + //then + assertThatExceptionOfType(NotValidLottoTicketOfNumberException.class). + isThrownBy(() -> new LottoTicketOfNumber(purchaseAmount, manualLottoTicketOfNumber)); + } } \ No newline at end of file From 400a17f2877d0b8cb67e9640d038040cc29d123d Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 18:45:45 +0900 Subject: [PATCH 22/72] =?UTF-8?q?feat:=20LottoTicketOfNumberValidation=20c?= =?UTF-8?q?lass=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../validation/LottoTicketOfNumberValidation.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/main/java/lotto/domain/validation/LottoTicketOfNumberValidation.java diff --git a/src/main/java/lotto/domain/validation/LottoTicketOfNumberValidation.java b/src/main/java/lotto/domain/validation/LottoTicketOfNumberValidation.java new file mode 100644 index 0000000..fc7c514 --- /dev/null +++ b/src/main/java/lotto/domain/validation/LottoTicketOfNumberValidation.java @@ -0,0 +1,13 @@ +package lotto.domain.validation; + +import lotto.domain.exception.NotValidLottoTicketOfNumberException; + + +public class LottoTicketOfNumberValidation { + private final static int LOTTO_TICKET_OF_NUMBER_MINIMUM_THRESHOLD = 1; + + public void checkLottoTicketOfNumber(int lottoTicketOfNumber) { + if (lottoTicketOfNumber < LOTTO_TICKET_OF_NUMBER_MINIMUM_THRESHOLD) + throw new NotValidLottoTicketOfNumberException(); + } +} From b93c4555ebfb65bb224cb39d43b19d14fcb31e43 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 18:46:05 +0900 Subject: [PATCH 23/72] =?UTF-8?q?feat:=20NotValidLottoTicketOfNumberExcept?= =?UTF-8?q?ion=20class=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exception/NotValidLottoTicketOfNumberException.java | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/main/java/lotto/domain/exception/NotValidLottoTicketOfNumberException.java diff --git a/src/main/java/lotto/domain/exception/NotValidLottoTicketOfNumberException.java b/src/main/java/lotto/domain/exception/NotValidLottoTicketOfNumberException.java new file mode 100644 index 0000000..ea5f0cb --- /dev/null +++ b/src/main/java/lotto/domain/exception/NotValidLottoTicketOfNumberException.java @@ -0,0 +1,9 @@ +package lotto.domain.exception; + +public class NotValidLottoTicketOfNumberException extends RuntimeException{ + private static final String MESSAGE = "๋กœ๋˜๋ฅผ ์‚ด ๊ธˆ์•ก์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค."; + + public NotValidLottoTicketOfNumberException(){ + super(MESSAGE); + } +} From e679a210a727a46795b7838162b63a00977581dc Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 18:46:32 +0900 Subject: [PATCH 24/72] =?UTF-8?q?refactor:=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=98=EA=B1=B0=EB=82=98=20=EB=A7=9E=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EB=8A=94=20=EB=A1=9C=EC=A7=81=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/PurchaseAmount.java | 2 -- src/main/java/lotto/domain/lotto/LottoAutomaticTicket.java | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/lotto/domain/PurchaseAmount.java b/src/main/java/lotto/domain/PurchaseAmount.java index 3d41b33..29d2113 100644 --- a/src/main/java/lotto/domain/PurchaseAmount.java +++ b/src/main/java/lotto/domain/PurchaseAmount.java @@ -3,8 +3,6 @@ import lotto.domain.validation.PurchaseAmountValidation; public class PurchaseAmount { - private static final int MIN_PURCHASE_AMOUNT = 0; - private final int purchaseAmount; public PurchaseAmount(int purchaseAmount) { diff --git a/src/main/java/lotto/domain/lotto/LottoAutomaticTicket.java b/src/main/java/lotto/domain/lotto/LottoAutomaticTicket.java index 656c2ab..b258d6d 100644 --- a/src/main/java/lotto/domain/lotto/LottoAutomaticTicket.java +++ b/src/main/java/lotto/domain/lotto/LottoAutomaticTicket.java @@ -12,6 +12,6 @@ public LottoAutomaticTicket(List numbers) { } public List getLotto(){ - return this.numbers; + return numbers; } } From ff36d2f17ebe29be4a5b4fe6c828e75073a27c18 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 18:48:40 +0900 Subject: [PATCH 25/72] =?UTF-8?q?refactor:=20LottoManualTicket(=EC=88=98?= =?UTF-8?q?=EB=8F=99=EB=B3=B5=EA=B6=8C)=20class=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lotto/domain/lotto/LottoManualTicket.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/main/java/lotto/domain/lotto/LottoManualTicket.java diff --git a/src/main/java/lotto/domain/lotto/LottoManualTicket.java b/src/main/java/lotto/domain/lotto/LottoManualTicket.java new file mode 100644 index 0000000..30c3180 --- /dev/null +++ b/src/main/java/lotto/domain/lotto/LottoManualTicket.java @@ -0,0 +1,16 @@ +package lotto.domain.lotto; + +import java.util.List; + +public class LottoManualTicket extends Lotto{ + private final List numbers; + + public LottoManualTicket(List numbers) { + super(numbers); + this.numbers = numbers; + } + + public List getLotto(){ + return numbers; + } +} From 84bce7b75c21e55e5eb04808e95333809205b7dd Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 23:47:37 +0900 Subject: [PATCH 26/72] =?UTF-8?q?feat:=20RandomLottoNumberGenerator=20clas?= =?UTF-8?q?s=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ategy.java => RandomLottoNumberGenerator.java} | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) rename src/main/java/lotto/domain/strategy/{RandomLottoNumberStrategy.java => RandomLottoNumberGenerator.java} (72%) diff --git a/src/main/java/lotto/domain/strategy/RandomLottoNumberStrategy.java b/src/main/java/lotto/domain/strategy/RandomLottoNumberGenerator.java similarity index 72% rename from src/main/java/lotto/domain/strategy/RandomLottoNumberStrategy.java rename to src/main/java/lotto/domain/strategy/RandomLottoNumberGenerator.java index 718cf07..6c6ec16 100644 --- a/src/main/java/lotto/domain/strategy/RandomLottoNumberStrategy.java +++ b/src/main/java/lotto/domain/strategy/RandomLottoNumberGenerator.java @@ -3,24 +3,27 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.Random; -public class RandomLottoNumberStrategy { +public class RandomLottoNumberGenerator { private final static int UPPER_BOUND = 45; private final static int LOWER_BOUND = 1; private final static int LOTTO_NUMBER_COUNT = 6; + private final List lottoNumberRange; + + public RandomLottoNumberGenerator() { + lottoNumberRange = new ArrayList<>(); + setLottoNumberRange(); + } + public List getRandomLottoNumbers(){ - List lottoNumberRange = setLottoNumberRange(); return getLottoNumbers(lottoNumberRange); } - private List setLottoNumberRange(){ - ArrayList lottoNumberRange = new ArrayList<>(); + private void setLottoNumberRange(){ for (int lottoNumber = LOWER_BOUND; lottoNumber < UPPER_BOUND; lottoNumber++) { lottoNumberRange.add(lottoNumber); } - return lottoNumberRange; } private List getLottoNumbers(List lottoNumberRange){ From eb4c72e221706b1ceee91a25d50248b61aefb050 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 23:53:52 +0900 Subject: [PATCH 27/72] =?UTF-8?q?refactor:=20=ED=8C=A8=ED=82=A4=EC=A7=80?= =?UTF-8?q?=20=EA=B5=AC=EC=A1=B0=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/{domain => }/LottoTicketOfNumber.java | 4 ++-- src/main/java/lotto/{domain => }/PurchaseAmount.java | 4 ++-- .../exception/NotDuplicatedNumberException.java | 2 +- .../exception/NotValidLottoLengthException.java | 2 +- .../exception/NotValidLottoTicketOfNumberException.java | 2 +- src/main/java/lotto/{domain => }/lotto/Lotto.java | 4 ++-- .../lotto/{domain => }/lotto/LottoAutomaticTicket.java | 2 +- src/main/java/lotto/lotto/LottoAutomaticTickets.java | 4 ++++ .../java/lotto/{domain => }/lotto/LottoManualTicket.java | 2 +- src/main/java/lotto/lotto/LottoManualTickets.java | 4 ++++ .../{domain => }/strategy/RandomLottoNumberGenerator.java | 2 +- .../validation/LottoTicketOfNumberValidation.java | 4 ++-- .../lotto/{domain => }/validation/LottoValidation.java | 6 +++--- .../{domain => }/validation/PurchaseAmountValidation.java | 2 +- src/test/java/lotto/{domain => }/LottoTest.java | 8 ++++---- .../java/lotto/{domain => }/LottoTicketOfNumberTest.java | 4 ++-- src/test/java/lotto/{domain => }/PurchaseAmountTest.java | 2 +- 17 files changed, 33 insertions(+), 25 deletions(-) rename src/main/java/lotto/{domain => }/LottoTicketOfNumber.java (94%) rename src/main/java/lotto/{domain => }/PurchaseAmount.java (84%) rename src/main/java/lotto/{domain => }/exception/NotDuplicatedNumberException.java (88%) rename src/main/java/lotto/{domain => }/exception/NotValidLottoLengthException.java (87%) rename src/main/java/lotto/{domain => }/exception/NotValidLottoTicketOfNumberException.java (88%) rename src/main/java/lotto/{domain => }/lotto/Lotto.java (83%) rename src/main/java/lotto/{domain => }/lotto/LottoAutomaticTicket.java (91%) create mode 100644 src/main/java/lotto/lotto/LottoAutomaticTickets.java rename src/main/java/lotto/{domain => }/lotto/LottoManualTicket.java (91%) create mode 100644 src/main/java/lotto/lotto/LottoManualTickets.java rename src/main/java/lotto/{domain => }/strategy/RandomLottoNumberGenerator.java (96%) rename src/main/java/lotto/{domain => }/validation/LottoTicketOfNumberValidation.java (76%) rename src/main/java/lotto/{domain => }/validation/LottoValidation.java (83%) rename src/main/java/lotto/{domain => }/validation/PurchaseAmountValidation.java (91%) rename src/test/java/lotto/{domain => }/LottoTest.java (91%) rename src/test/java/lotto/{domain => }/LottoTicketOfNumberTest.java (94%) rename src/test/java/lotto/{domain => }/PurchaseAmountTest.java (97%) diff --git a/src/main/java/lotto/domain/LottoTicketOfNumber.java b/src/main/java/lotto/LottoTicketOfNumber.java similarity index 94% rename from src/main/java/lotto/domain/LottoTicketOfNumber.java rename to src/main/java/lotto/LottoTicketOfNumber.java index dd3a3ce..1425944 100644 --- a/src/main/java/lotto/domain/LottoTicketOfNumber.java +++ b/src/main/java/lotto/LottoTicketOfNumber.java @@ -1,6 +1,6 @@ -package lotto.domain; +package lotto; -import lotto.domain.validation.LottoTicketOfNumberValidation; +import lotto.validation.LottoTicketOfNumberValidation; public class LottoTicketOfNumber { private final static int LOTTO_TICKET_PRICE = 1000; diff --git a/src/main/java/lotto/domain/PurchaseAmount.java b/src/main/java/lotto/PurchaseAmount.java similarity index 84% rename from src/main/java/lotto/domain/PurchaseAmount.java rename to src/main/java/lotto/PurchaseAmount.java index 29d2113..675723e 100644 --- a/src/main/java/lotto/domain/PurchaseAmount.java +++ b/src/main/java/lotto/PurchaseAmount.java @@ -1,6 +1,6 @@ -package lotto.domain; +package lotto; -import lotto.domain.validation.PurchaseAmountValidation; +import lotto.validation.PurchaseAmountValidation; public class PurchaseAmount { private final int purchaseAmount; diff --git a/src/main/java/lotto/domain/exception/NotDuplicatedNumberException.java b/src/main/java/lotto/exception/NotDuplicatedNumberException.java similarity index 88% rename from src/main/java/lotto/domain/exception/NotDuplicatedNumberException.java rename to src/main/java/lotto/exception/NotDuplicatedNumberException.java index 23c6392..e77a3cb 100644 --- a/src/main/java/lotto/domain/exception/NotDuplicatedNumberException.java +++ b/src/main/java/lotto/exception/NotDuplicatedNumberException.java @@ -1,4 +1,4 @@ -package lotto.domain.exception; +package lotto.exception; public class NotDuplicatedNumberException extends RuntimeException{ private static final String MESSAGE = "์ค‘๋ณต๋˜๋Š” ๋กœ๋˜ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜์‹ค ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."; diff --git a/src/main/java/lotto/domain/exception/NotValidLottoLengthException.java b/src/main/java/lotto/exception/NotValidLottoLengthException.java similarity index 87% rename from src/main/java/lotto/domain/exception/NotValidLottoLengthException.java rename to src/main/java/lotto/exception/NotValidLottoLengthException.java index a8704c2..b054f6b 100644 --- a/src/main/java/lotto/domain/exception/NotValidLottoLengthException.java +++ b/src/main/java/lotto/exception/NotValidLottoLengthException.java @@ -1,4 +1,4 @@ -package lotto.domain.exception; +package lotto.exception; public class NotValidLottoLengthException extends RuntimeException { private static final String MESSAGE = "๋ฒˆํ˜ธ๋Š” 6๊ฐœ๋ฅผ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค."; diff --git a/src/main/java/lotto/domain/exception/NotValidLottoTicketOfNumberException.java b/src/main/java/lotto/exception/NotValidLottoTicketOfNumberException.java similarity index 88% rename from src/main/java/lotto/domain/exception/NotValidLottoTicketOfNumberException.java rename to src/main/java/lotto/exception/NotValidLottoTicketOfNumberException.java index ea5f0cb..a47cd85 100644 --- a/src/main/java/lotto/domain/exception/NotValidLottoTicketOfNumberException.java +++ b/src/main/java/lotto/exception/NotValidLottoTicketOfNumberException.java @@ -1,4 +1,4 @@ -package lotto.domain.exception; +package lotto.exception; public class NotValidLottoTicketOfNumberException extends RuntimeException{ private static final String MESSAGE = "๋กœ๋˜๋ฅผ ์‚ด ๊ธˆ์•ก์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค."; diff --git a/src/main/java/lotto/domain/lotto/Lotto.java b/src/main/java/lotto/lotto/Lotto.java similarity index 83% rename from src/main/java/lotto/domain/lotto/Lotto.java rename to src/main/java/lotto/lotto/Lotto.java index d73135b..1570c7d 100644 --- a/src/main/java/lotto/domain/lotto/Lotto.java +++ b/src/main/java/lotto/lotto/Lotto.java @@ -1,6 +1,6 @@ -package lotto.domain.lotto; +package lotto.lotto; -import lotto.domain.validation.LottoValidation; +import lotto.validation.LottoValidation; import java.util.List; diff --git a/src/main/java/lotto/domain/lotto/LottoAutomaticTicket.java b/src/main/java/lotto/lotto/LottoAutomaticTicket.java similarity index 91% rename from src/main/java/lotto/domain/lotto/LottoAutomaticTicket.java rename to src/main/java/lotto/lotto/LottoAutomaticTicket.java index b258d6d..3240895 100644 --- a/src/main/java/lotto/domain/lotto/LottoAutomaticTicket.java +++ b/src/main/java/lotto/lotto/LottoAutomaticTicket.java @@ -1,4 +1,4 @@ -package lotto.domain.lotto; +package lotto.lotto; import java.util.List; diff --git a/src/main/java/lotto/lotto/LottoAutomaticTickets.java b/src/main/java/lotto/lotto/LottoAutomaticTickets.java new file mode 100644 index 0000000..cfb7ea4 --- /dev/null +++ b/src/main/java/lotto/lotto/LottoAutomaticTickets.java @@ -0,0 +1,4 @@ +package lotto.lotto; + +public class LottoAutomaticTickets { +} diff --git a/src/main/java/lotto/domain/lotto/LottoManualTicket.java b/src/main/java/lotto/lotto/LottoManualTicket.java similarity index 91% rename from src/main/java/lotto/domain/lotto/LottoManualTicket.java rename to src/main/java/lotto/lotto/LottoManualTicket.java index 30c3180..faf4950 100644 --- a/src/main/java/lotto/domain/lotto/LottoManualTicket.java +++ b/src/main/java/lotto/lotto/LottoManualTicket.java @@ -1,4 +1,4 @@ -package lotto.domain.lotto; +package lotto.lotto; import java.util.List; diff --git a/src/main/java/lotto/lotto/LottoManualTickets.java b/src/main/java/lotto/lotto/LottoManualTickets.java new file mode 100644 index 0000000..a615a26 --- /dev/null +++ b/src/main/java/lotto/lotto/LottoManualTickets.java @@ -0,0 +1,4 @@ +package lotto.lotto; + +public class LottoManualTickets { +} diff --git a/src/main/java/lotto/domain/strategy/RandomLottoNumberGenerator.java b/src/main/java/lotto/strategy/RandomLottoNumberGenerator.java similarity index 96% rename from src/main/java/lotto/domain/strategy/RandomLottoNumberGenerator.java rename to src/main/java/lotto/strategy/RandomLottoNumberGenerator.java index 6c6ec16..9964758 100644 --- a/src/main/java/lotto/domain/strategy/RandomLottoNumberGenerator.java +++ b/src/main/java/lotto/strategy/RandomLottoNumberGenerator.java @@ -1,4 +1,4 @@ -package lotto.domain.strategy; +package lotto.strategy; import java.util.ArrayList; import java.util.Collections; diff --git a/src/main/java/lotto/domain/validation/LottoTicketOfNumberValidation.java b/src/main/java/lotto/validation/LottoTicketOfNumberValidation.java similarity index 76% rename from src/main/java/lotto/domain/validation/LottoTicketOfNumberValidation.java rename to src/main/java/lotto/validation/LottoTicketOfNumberValidation.java index fc7c514..e0befbc 100644 --- a/src/main/java/lotto/domain/validation/LottoTicketOfNumberValidation.java +++ b/src/main/java/lotto/validation/LottoTicketOfNumberValidation.java @@ -1,6 +1,6 @@ -package lotto.domain.validation; +package lotto.validation; -import lotto.domain.exception.NotValidLottoTicketOfNumberException; +import lotto.exception.NotValidLottoTicketOfNumberException; public class LottoTicketOfNumberValidation { diff --git a/src/main/java/lotto/domain/validation/LottoValidation.java b/src/main/java/lotto/validation/LottoValidation.java similarity index 83% rename from src/main/java/lotto/domain/validation/LottoValidation.java rename to src/main/java/lotto/validation/LottoValidation.java index 8baea1f..6a70c2c 100644 --- a/src/main/java/lotto/domain/validation/LottoValidation.java +++ b/src/main/java/lotto/validation/LottoValidation.java @@ -1,7 +1,7 @@ -package lotto.domain.validation; +package lotto.validation; -import lotto.domain.exception.NotDuplicatedNumberException; -import lotto.domain.exception.NotValidLottoLengthException; +import lotto.exception.NotDuplicatedNumberException; +import lotto.exception.NotValidLottoLengthException; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/lotto/domain/validation/PurchaseAmountValidation.java b/src/main/java/lotto/validation/PurchaseAmountValidation.java similarity index 91% rename from src/main/java/lotto/domain/validation/PurchaseAmountValidation.java rename to src/main/java/lotto/validation/PurchaseAmountValidation.java index 900a240..b94f75e 100644 --- a/src/main/java/lotto/domain/validation/PurchaseAmountValidation.java +++ b/src/main/java/lotto/validation/PurchaseAmountValidation.java @@ -1,4 +1,4 @@ -package lotto.domain.validation; +package lotto.validation; public class PurchaseAmountValidation { private static final int MIN_PURCHASE_AMOUNT = 0; diff --git a/src/test/java/lotto/domain/LottoTest.java b/src/test/java/lotto/LottoTest.java similarity index 91% rename from src/test/java/lotto/domain/LottoTest.java rename to src/test/java/lotto/LottoTest.java index f1a2059..a4153bd 100644 --- a/src/test/java/lotto/domain/LottoTest.java +++ b/src/test/java/lotto/LottoTest.java @@ -1,8 +1,8 @@ -package lotto.domain; +package lotto; -import lotto.domain.exception.NotDuplicatedNumberException; -import lotto.domain.exception.NotValidLottoLengthException; -import lotto.domain.lotto.LottoAutomaticTicket; +import lotto.exception.NotDuplicatedNumberException; +import lotto.exception.NotValidLottoLengthException; +import lotto.lotto.LottoAutomaticTicket; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/src/test/java/lotto/domain/LottoTicketOfNumberTest.java b/src/test/java/lotto/LottoTicketOfNumberTest.java similarity index 94% rename from src/test/java/lotto/domain/LottoTicketOfNumberTest.java rename to src/test/java/lotto/LottoTicketOfNumberTest.java index c5f0b10..b9de148 100644 --- a/src/test/java/lotto/domain/LottoTicketOfNumberTest.java +++ b/src/test/java/lotto/LottoTicketOfNumberTest.java @@ -1,6 +1,6 @@ -package lotto.domain; +package lotto; -import lotto.domain.exception.NotValidLottoTicketOfNumberException; +import lotto.exception.NotValidLottoTicketOfNumberException; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; diff --git a/src/test/java/lotto/domain/PurchaseAmountTest.java b/src/test/java/lotto/PurchaseAmountTest.java similarity index 97% rename from src/test/java/lotto/domain/PurchaseAmountTest.java rename to src/test/java/lotto/PurchaseAmountTest.java index 2d04087..e85220d 100644 --- a/src/test/java/lotto/domain/PurchaseAmountTest.java +++ b/src/test/java/lotto/PurchaseAmountTest.java @@ -1,4 +1,4 @@ -package lotto.domain; +package lotto; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; From dd367b9fd8f6b71198ec19669bc0cdfc4f9aa0dd Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 23:54:44 +0900 Subject: [PATCH 28/72] =?UTF-8?q?refactor:=20=ED=8C=A8=ED=82=A4=EC=A7=80?= =?UTF-8?q?=20=EA=B5=AC=EC=A1=B0=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/{ => domain}/LottoTicketOfNumber.java | 4 ++-- src/main/java/lotto/{ => domain}/PurchaseAmount.java | 4 ++-- .../exception/NotDuplicatedNumberException.java | 2 +- .../exception/NotValidLottoLengthException.java | 2 +- .../exception/NotValidLottoTicketOfNumberException.java | 2 +- src/main/java/lotto/{ => domain}/lotto/Lotto.java | 4 ++-- .../java/lotto/{ => domain}/lotto/LottoAutomaticTicket.java | 2 +- .../lotto/{ => domain}/lotto/LottoAutomaticTickets.java | 2 +- .../java/lotto/{ => domain}/lotto/LottoManualTicket.java | 2 +- .../java/lotto/{ => domain}/lotto/LottoManualTickets.java | 2 +- .../{ => domain}/strategy/RandomLottoNumberGenerator.java | 2 +- .../validation/LottoTicketOfNumberValidation.java | 4 ++-- .../java/lotto/{ => domain}/validation/LottoValidation.java | 6 +++--- .../{ => domain}/validation/PurchaseAmountValidation.java | 2 +- src/test/java/lotto/LottoTest.java | 6 +++--- src/test/java/lotto/LottoTicketOfNumberTest.java | 3 ++- src/test/java/lotto/PurchaseAmountTest.java | 1 + 17 files changed, 26 insertions(+), 24 deletions(-) rename src/main/java/lotto/{ => domain}/LottoTicketOfNumber.java (94%) rename src/main/java/lotto/{ => domain}/PurchaseAmount.java (84%) rename src/main/java/lotto/{ => domain}/exception/NotDuplicatedNumberException.java (88%) rename src/main/java/lotto/{ => domain}/exception/NotValidLottoLengthException.java (87%) rename src/main/java/lotto/{ => domain}/exception/NotValidLottoTicketOfNumberException.java (88%) rename src/main/java/lotto/{ => domain}/lotto/Lotto.java (83%) rename src/main/java/lotto/{ => domain}/lotto/LottoAutomaticTicket.java (91%) rename src/main/java/lotto/{ => domain}/lotto/LottoAutomaticTickets.java (58%) rename src/main/java/lotto/{ => domain}/lotto/LottoManualTicket.java (91%) rename src/main/java/lotto/{ => domain}/lotto/LottoManualTickets.java (56%) rename src/main/java/lotto/{ => domain}/strategy/RandomLottoNumberGenerator.java (96%) rename src/main/java/lotto/{ => domain}/validation/LottoTicketOfNumberValidation.java (76%) rename src/main/java/lotto/{ => domain}/validation/LottoValidation.java (83%) rename src/main/java/lotto/{ => domain}/validation/PurchaseAmountValidation.java (91%) diff --git a/src/main/java/lotto/LottoTicketOfNumber.java b/src/main/java/lotto/domain/LottoTicketOfNumber.java similarity index 94% rename from src/main/java/lotto/LottoTicketOfNumber.java rename to src/main/java/lotto/domain/LottoTicketOfNumber.java index 1425944..dd3a3ce 100644 --- a/src/main/java/lotto/LottoTicketOfNumber.java +++ b/src/main/java/lotto/domain/LottoTicketOfNumber.java @@ -1,6 +1,6 @@ -package lotto; +package lotto.domain; -import lotto.validation.LottoTicketOfNumberValidation; +import lotto.domain.validation.LottoTicketOfNumberValidation; public class LottoTicketOfNumber { private final static int LOTTO_TICKET_PRICE = 1000; diff --git a/src/main/java/lotto/PurchaseAmount.java b/src/main/java/lotto/domain/PurchaseAmount.java similarity index 84% rename from src/main/java/lotto/PurchaseAmount.java rename to src/main/java/lotto/domain/PurchaseAmount.java index 675723e..29d2113 100644 --- a/src/main/java/lotto/PurchaseAmount.java +++ b/src/main/java/lotto/domain/PurchaseAmount.java @@ -1,6 +1,6 @@ -package lotto; +package lotto.domain; -import lotto.validation.PurchaseAmountValidation; +import lotto.domain.validation.PurchaseAmountValidation; public class PurchaseAmount { private final int purchaseAmount; diff --git a/src/main/java/lotto/exception/NotDuplicatedNumberException.java b/src/main/java/lotto/domain/exception/NotDuplicatedNumberException.java similarity index 88% rename from src/main/java/lotto/exception/NotDuplicatedNumberException.java rename to src/main/java/lotto/domain/exception/NotDuplicatedNumberException.java index e77a3cb..23c6392 100644 --- a/src/main/java/lotto/exception/NotDuplicatedNumberException.java +++ b/src/main/java/lotto/domain/exception/NotDuplicatedNumberException.java @@ -1,4 +1,4 @@ -package lotto.exception; +package lotto.domain.exception; public class NotDuplicatedNumberException extends RuntimeException{ private static final String MESSAGE = "์ค‘๋ณต๋˜๋Š” ๋กœ๋˜ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜์‹ค ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."; diff --git a/src/main/java/lotto/exception/NotValidLottoLengthException.java b/src/main/java/lotto/domain/exception/NotValidLottoLengthException.java similarity index 87% rename from src/main/java/lotto/exception/NotValidLottoLengthException.java rename to src/main/java/lotto/domain/exception/NotValidLottoLengthException.java index b054f6b..a8704c2 100644 --- a/src/main/java/lotto/exception/NotValidLottoLengthException.java +++ b/src/main/java/lotto/domain/exception/NotValidLottoLengthException.java @@ -1,4 +1,4 @@ -package lotto.exception; +package lotto.domain.exception; public class NotValidLottoLengthException extends RuntimeException { private static final String MESSAGE = "๋ฒˆํ˜ธ๋Š” 6๊ฐœ๋ฅผ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค."; diff --git a/src/main/java/lotto/exception/NotValidLottoTicketOfNumberException.java b/src/main/java/lotto/domain/exception/NotValidLottoTicketOfNumberException.java similarity index 88% rename from src/main/java/lotto/exception/NotValidLottoTicketOfNumberException.java rename to src/main/java/lotto/domain/exception/NotValidLottoTicketOfNumberException.java index a47cd85..ea5f0cb 100644 --- a/src/main/java/lotto/exception/NotValidLottoTicketOfNumberException.java +++ b/src/main/java/lotto/domain/exception/NotValidLottoTicketOfNumberException.java @@ -1,4 +1,4 @@ -package lotto.exception; +package lotto.domain.exception; public class NotValidLottoTicketOfNumberException extends RuntimeException{ private static final String MESSAGE = "๋กœ๋˜๋ฅผ ์‚ด ๊ธˆ์•ก์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค."; diff --git a/src/main/java/lotto/lotto/Lotto.java b/src/main/java/lotto/domain/lotto/Lotto.java similarity index 83% rename from src/main/java/lotto/lotto/Lotto.java rename to src/main/java/lotto/domain/lotto/Lotto.java index 1570c7d..d73135b 100644 --- a/src/main/java/lotto/lotto/Lotto.java +++ b/src/main/java/lotto/domain/lotto/Lotto.java @@ -1,6 +1,6 @@ -package lotto.lotto; +package lotto.domain.lotto; -import lotto.validation.LottoValidation; +import lotto.domain.validation.LottoValidation; import java.util.List; diff --git a/src/main/java/lotto/lotto/LottoAutomaticTicket.java b/src/main/java/lotto/domain/lotto/LottoAutomaticTicket.java similarity index 91% rename from src/main/java/lotto/lotto/LottoAutomaticTicket.java rename to src/main/java/lotto/domain/lotto/LottoAutomaticTicket.java index 3240895..b258d6d 100644 --- a/src/main/java/lotto/lotto/LottoAutomaticTicket.java +++ b/src/main/java/lotto/domain/lotto/LottoAutomaticTicket.java @@ -1,4 +1,4 @@ -package lotto.lotto; +package lotto.domain.lotto; import java.util.List; diff --git a/src/main/java/lotto/lotto/LottoAutomaticTickets.java b/src/main/java/lotto/domain/lotto/LottoAutomaticTickets.java similarity index 58% rename from src/main/java/lotto/lotto/LottoAutomaticTickets.java rename to src/main/java/lotto/domain/lotto/LottoAutomaticTickets.java index cfb7ea4..819b8bc 100644 --- a/src/main/java/lotto/lotto/LottoAutomaticTickets.java +++ b/src/main/java/lotto/domain/lotto/LottoAutomaticTickets.java @@ -1,4 +1,4 @@ -package lotto.lotto; +package lotto.domain.lotto; public class LottoAutomaticTickets { } diff --git a/src/main/java/lotto/lotto/LottoManualTicket.java b/src/main/java/lotto/domain/lotto/LottoManualTicket.java similarity index 91% rename from src/main/java/lotto/lotto/LottoManualTicket.java rename to src/main/java/lotto/domain/lotto/LottoManualTicket.java index faf4950..30c3180 100644 --- a/src/main/java/lotto/lotto/LottoManualTicket.java +++ b/src/main/java/lotto/domain/lotto/LottoManualTicket.java @@ -1,4 +1,4 @@ -package lotto.lotto; +package lotto.domain.lotto; import java.util.List; diff --git a/src/main/java/lotto/lotto/LottoManualTickets.java b/src/main/java/lotto/domain/lotto/LottoManualTickets.java similarity index 56% rename from src/main/java/lotto/lotto/LottoManualTickets.java rename to src/main/java/lotto/domain/lotto/LottoManualTickets.java index a615a26..ef63fc2 100644 --- a/src/main/java/lotto/lotto/LottoManualTickets.java +++ b/src/main/java/lotto/domain/lotto/LottoManualTickets.java @@ -1,4 +1,4 @@ -package lotto.lotto; +package lotto.domain.lotto; public class LottoManualTickets { } diff --git a/src/main/java/lotto/strategy/RandomLottoNumberGenerator.java b/src/main/java/lotto/domain/strategy/RandomLottoNumberGenerator.java similarity index 96% rename from src/main/java/lotto/strategy/RandomLottoNumberGenerator.java rename to src/main/java/lotto/domain/strategy/RandomLottoNumberGenerator.java index 9964758..6c6ec16 100644 --- a/src/main/java/lotto/strategy/RandomLottoNumberGenerator.java +++ b/src/main/java/lotto/domain/strategy/RandomLottoNumberGenerator.java @@ -1,4 +1,4 @@ -package lotto.strategy; +package lotto.domain.strategy; import java.util.ArrayList; import java.util.Collections; diff --git a/src/main/java/lotto/validation/LottoTicketOfNumberValidation.java b/src/main/java/lotto/domain/validation/LottoTicketOfNumberValidation.java similarity index 76% rename from src/main/java/lotto/validation/LottoTicketOfNumberValidation.java rename to src/main/java/lotto/domain/validation/LottoTicketOfNumberValidation.java index e0befbc..fc7c514 100644 --- a/src/main/java/lotto/validation/LottoTicketOfNumberValidation.java +++ b/src/main/java/lotto/domain/validation/LottoTicketOfNumberValidation.java @@ -1,6 +1,6 @@ -package lotto.validation; +package lotto.domain.validation; -import lotto.exception.NotValidLottoTicketOfNumberException; +import lotto.domain.exception.NotValidLottoTicketOfNumberException; public class LottoTicketOfNumberValidation { diff --git a/src/main/java/lotto/validation/LottoValidation.java b/src/main/java/lotto/domain/validation/LottoValidation.java similarity index 83% rename from src/main/java/lotto/validation/LottoValidation.java rename to src/main/java/lotto/domain/validation/LottoValidation.java index 6a70c2c..8baea1f 100644 --- a/src/main/java/lotto/validation/LottoValidation.java +++ b/src/main/java/lotto/domain/validation/LottoValidation.java @@ -1,7 +1,7 @@ -package lotto.validation; +package lotto.domain.validation; -import lotto.exception.NotDuplicatedNumberException; -import lotto.exception.NotValidLottoLengthException; +import lotto.domain.exception.NotDuplicatedNumberException; +import lotto.domain.exception.NotValidLottoLengthException; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/lotto/validation/PurchaseAmountValidation.java b/src/main/java/lotto/domain/validation/PurchaseAmountValidation.java similarity index 91% rename from src/main/java/lotto/validation/PurchaseAmountValidation.java rename to src/main/java/lotto/domain/validation/PurchaseAmountValidation.java index b94f75e..900a240 100644 --- a/src/main/java/lotto/validation/PurchaseAmountValidation.java +++ b/src/main/java/lotto/domain/validation/PurchaseAmountValidation.java @@ -1,4 +1,4 @@ -package lotto.validation; +package lotto.domain.validation; public class PurchaseAmountValidation { private static final int MIN_PURCHASE_AMOUNT = 0; diff --git a/src/test/java/lotto/LottoTest.java b/src/test/java/lotto/LottoTest.java index a4153bd..2892777 100644 --- a/src/test/java/lotto/LottoTest.java +++ b/src/test/java/lotto/LottoTest.java @@ -1,8 +1,8 @@ package lotto; -import lotto.exception.NotDuplicatedNumberException; -import lotto.exception.NotValidLottoLengthException; -import lotto.lotto.LottoAutomaticTicket; +import lotto.domain.exception.NotDuplicatedNumberException; +import lotto.domain.exception.NotValidLottoLengthException; +import lotto.domain.lotto.LottoAutomaticTicket; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/src/test/java/lotto/LottoTicketOfNumberTest.java b/src/test/java/lotto/LottoTicketOfNumberTest.java index b9de148..4f26073 100644 --- a/src/test/java/lotto/LottoTicketOfNumberTest.java +++ b/src/test/java/lotto/LottoTicketOfNumberTest.java @@ -1,6 +1,7 @@ package lotto; -import lotto.exception.NotValidLottoTicketOfNumberException; +import lotto.domain.LottoTicketOfNumber; +import lotto.domain.exception.NotValidLottoTicketOfNumberException; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; diff --git a/src/test/java/lotto/PurchaseAmountTest.java b/src/test/java/lotto/PurchaseAmountTest.java index e85220d..7319fe7 100644 --- a/src/test/java/lotto/PurchaseAmountTest.java +++ b/src/test/java/lotto/PurchaseAmountTest.java @@ -1,5 +1,6 @@ package lotto; +import lotto.domain.PurchaseAmount; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; From da70a37dfed842e87921c25213cbaadc6b87a858 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Thu, 8 Apr 2021 23:55:57 +0900 Subject: [PATCH 29/72] =?UTF-8?q?feat:=20LottoApplication=20class=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/LottoApplication.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/main/java/lotto/LottoApplication.java diff --git a/src/main/java/lotto/LottoApplication.java b/src/main/java/lotto/LottoApplication.java new file mode 100644 index 0000000..6a69cb4 --- /dev/null +++ b/src/main/java/lotto/LottoApplication.java @@ -0,0 +1,13 @@ +package lotto; + +public class LottoApplication { + + public void run() { + + } + + public static void main(String[] args) { + LottoApplication app = new LottoApplication(); + app.run(); + } +} From a6dc0290170a5d0adb14e0755e130245bb43e426 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 00:05:25 +0900 Subject: [PATCH 30/72] =?UTF-8?q?feat:=20Printer=20class=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/ui/Printer.java | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/main/java/lotto/ui/Printer.java diff --git a/src/main/java/lotto/ui/Printer.java b/src/main/java/lotto/ui/Printer.java new file mode 100644 index 0000000..34afe0e --- /dev/null +++ b/src/main/java/lotto/ui/Printer.java @@ -0,0 +1,9 @@ +package lotto.ui; + +public class Printer { + private static final String REQUEST_PURCHASE_AMOUNT_MESSAGE = "๊ตฌ์ž…๊ธˆ์•ก์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."; + + public void requestPurchaseAmount() { + System.out.println(REQUEST_PURCHASE_AMOUNT_MESSAGE); + } +} From a0d13baccfae971edc6087dbea3f066861df4ad2 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 00:06:01 +0900 Subject: [PATCH 31/72] =?UTF-8?q?feat:=20Receiver=20class=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/ui/Receiver.java | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/main/java/lotto/ui/Receiver.java diff --git a/src/main/java/lotto/ui/Receiver.java b/src/main/java/lotto/ui/Receiver.java new file mode 100644 index 0000000..a8a5232 --- /dev/null +++ b/src/main/java/lotto/ui/Receiver.java @@ -0,0 +1,11 @@ +package lotto.ui; + +import java.util.Scanner; + +public class Receiver { + private static final Scanner scanner = new Scanner(System.in); + + public int receiveLottoPurchaseAmount() { + return scanner.nextInt(); + } +} From 1d12786f948221006890518ddf6523de1e2aa21d Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 00:15:31 +0900 Subject: [PATCH 32/72] =?UTF-8?q?feat:=20view=20logic=20=EC=9D=84=20?= =?UTF-8?q?=EB=8B=B4=EB=8B=B9=ED=95=98=EB=8A=94=20LottoStore=20class=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/LottoStore.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/main/java/lotto/domain/LottoStore.java diff --git a/src/main/java/lotto/domain/LottoStore.java b/src/main/java/lotto/domain/LottoStore.java new file mode 100644 index 0000000..3590f59 --- /dev/null +++ b/src/main/java/lotto/domain/LottoStore.java @@ -0,0 +1,16 @@ +package lotto.domain; + +import lotto.ui.Printer; +import lotto.ui.Receiver; + +public class LottoStore { + private final Printer printer = new Printer(); + private final Receiver receiver = new Receiver(); + + public PurchaseAmount inputLottoPurchaseAmount() { + printer.requestPurchaseAmount(); + int lottoPurchaseAmount = receiver.receiveLottoPurchaseAmount(); + + return new PurchaseAmount(lottoPurchaseAmount); + } +} From 5859dc55b9ea5c2b17016b73f321c233add72991 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 00:22:37 +0900 Subject: [PATCH 33/72] =?UTF-8?q?feat:=20requestLottoManualTicketNumber=20?= =?UTF-8?q?method=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/ui/Printer.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/lotto/ui/Printer.java b/src/main/java/lotto/ui/Printer.java index 34afe0e..e6f4857 100644 --- a/src/main/java/lotto/ui/Printer.java +++ b/src/main/java/lotto/ui/Printer.java @@ -2,8 +2,13 @@ public class Printer { private static final String REQUEST_PURCHASE_AMOUNT_MESSAGE = "๊ตฌ์ž…๊ธˆ์•ก์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."; + private static final String REQUEST_LOTTO_MANUAL_TICKET_NUMBER_MESSAGE = "์ˆ˜๋™์œผ๋กœ ๊ตฌ๋งคํ•  ๋กœ๋˜ ์ˆ˜๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."; public void requestPurchaseAmount() { System.out.println(REQUEST_PURCHASE_AMOUNT_MESSAGE); } + + public void requestLottoManualTicketNumber() { + System.out.println(REQUEST_LOTTO_MANUAL_TICKET_NUMBER_MESSAGE); + } } From 5287a42fa6249bcfbc9906118db87bbc80ed63c4 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 00:28:20 +0900 Subject: [PATCH 34/72] =?UTF-8?q?feat:=20inputLottoManualTicketNumber=20me?= =?UTF-8?q?thod=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/LottoStore.java | 5 +++++ src/main/java/lotto/ui/Receiver.java | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/main/java/lotto/domain/LottoStore.java b/src/main/java/lotto/domain/LottoStore.java index 3590f59..884dbee 100644 --- a/src/main/java/lotto/domain/LottoStore.java +++ b/src/main/java/lotto/domain/LottoStore.java @@ -13,4 +13,9 @@ public PurchaseAmount inputLottoPurchaseAmount() { return new PurchaseAmount(lottoPurchaseAmount); } + + public int inputLottoManualTicketNumber() { + printer.requestLottoManualTicketNumber(); + return receiver.receiverLottoManualTicketNumber(); + } } diff --git a/src/main/java/lotto/ui/Receiver.java b/src/main/java/lotto/ui/Receiver.java index a8a5232..fead76f 100644 --- a/src/main/java/lotto/ui/Receiver.java +++ b/src/main/java/lotto/ui/Receiver.java @@ -8,4 +8,6 @@ public class Receiver { public int receiveLottoPurchaseAmount() { return scanner.nextInt(); } + + public int receiverLottoManualTicketNumber() {return scanner.nextInt();} } From d7e838b3c7baeef7869fd3d82be59f7f455b4ea9 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 00:50:05 +0900 Subject: [PATCH 35/72] =?UTF-8?q?feat:=20receiverLottoManualTickets=20meth?= =?UTF-8?q?od=20=EA=B5=AC=ED=98=84=20=EB=B0=8F=20method=20=EC=97=90=20?= =?UTF-8?q?=ED=95=84=EC=9A=94=ED=95=9C=20convertStringToInt=20method=20?= =?UTF-8?q?=EC=99=80=20splitInputDelimiter=20method=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/ui/Receiver.java | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/main/java/lotto/ui/Receiver.java b/src/main/java/lotto/ui/Receiver.java index fead76f..bfded57 100644 --- a/src/main/java/lotto/ui/Receiver.java +++ b/src/main/java/lotto/ui/Receiver.java @@ -1,13 +1,36 @@ package lotto.ui; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import java.util.Scanner; +import java.util.stream.Collectors; public class Receiver { private static final Scanner scanner = new Scanner(System.in); + private static final String DELIMITER = ", "; public int receiveLottoPurchaseAmount() { return scanner.nextInt(); } - public int receiverLottoManualTicketNumber() {return scanner.nextInt();} + public int receiverLottoManualTicketNumber() { + return scanner.nextInt(); + } + + public List receiverLottoManualTickets() { + String lottoTicket = scanner.next(); + List lottoManualTicket = splitInputDelimiter(lottoTicket); + return convertStringToInt(lottoManualTicket); + } + + private List convertStringToInt(List lottoManualTicket) { + return lottoManualTicket.stream() + .map(Integer::parseInt) + .collect(Collectors.toList()); + } + + private List splitInputDelimiter(String lottoManualTicket) { + return Arrays.asList(lottoManualTicket.split(DELIMITER)); + } } From 31a24f1e3678ab51a801eff62f1ebcb5a5798aa1 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 00:50:39 +0900 Subject: [PATCH 36/72] =?UTF-8?q?feat:=20requestLottoManualTicket=20method?= =?UTF-8?q?=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/ui/Printer.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/lotto/ui/Printer.java b/src/main/java/lotto/ui/Printer.java index e6f4857..b3368cd 100644 --- a/src/main/java/lotto/ui/Printer.java +++ b/src/main/java/lotto/ui/Printer.java @@ -3,6 +3,7 @@ public class Printer { private static final String REQUEST_PURCHASE_AMOUNT_MESSAGE = "๊ตฌ์ž…๊ธˆ์•ก์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."; private static final String REQUEST_LOTTO_MANUAL_TICKET_NUMBER_MESSAGE = "์ˆ˜๋™์œผ๋กœ ๊ตฌ๋งคํ•  ๋กœ๋˜ ์ˆ˜๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."; + private static final String REQUEST_LOTTO_MANUAL_TICKET_MESSAGE = "์ˆ˜๋™์œผ๋กœ ๊ตฌ๋งคํ•  ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."; public void requestPurchaseAmount() { System.out.println(REQUEST_PURCHASE_AMOUNT_MESSAGE); @@ -11,4 +12,9 @@ public void requestPurchaseAmount() { public void requestLottoManualTicketNumber() { System.out.println(REQUEST_LOTTO_MANUAL_TICKET_NUMBER_MESSAGE); } + + public void requestLottoManualTicket() { + System.out.println(REQUEST_LOTTO_MANUAL_TICKET_MESSAGE); + } + } From a4ce239f0d7d592b20ee1b30e5fef0fa5ec0a01f Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 01:11:33 +0900 Subject: [PATCH 37/72] =?UTF-8?q?feat:=20LottoManualTicket=20=EA=B0=9D?= =?UTF-8?q?=EC=B2=B4=EB=93=A4=EC=9D=84=20=EA=B4=80=EB=A6=AC=ED=95=98?= =?UTF-8?q?=EB=8A=94=20LottoManualTickets=20class=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/lotto/domain/lotto/LottoManualTickets.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/lotto/domain/lotto/LottoManualTickets.java b/src/main/java/lotto/domain/lotto/LottoManualTickets.java index ef63fc2..f460540 100644 --- a/src/main/java/lotto/domain/lotto/LottoManualTickets.java +++ b/src/main/java/lotto/domain/lotto/LottoManualTickets.java @@ -1,4 +1,15 @@ package lotto.domain.lotto; +import java.util.List; + public class LottoManualTickets { + private final List lottoManualTickets; + + public LottoManualTickets(List lottoManualTickets) { + this.lottoManualTickets = lottoManualTickets; + } + + public List getLottoManualTickets() { + return lottoManualTickets; + } } From 26d61ed3ef1916b8e123ed46c5a2b93c54f2b45d Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 01:12:41 +0900 Subject: [PATCH 38/72] =?UTF-8?q?feat:=20lottoManualTicket=20=EA=B0=9D?= =?UTF-8?q?=EC=B2=B4=EB=93=A4=EC=9D=84=20=EB=A7=8C=EB=93=A4=EA=B3=A0=20lot?= =?UTF-8?q?toManualTickets=20=EA=B0=9D=EC=B2=B4=EB=A5=BC=20=EB=A7=8C?= =?UTF-8?q?=EB=93=9C=EB=8A=94=20inputLottoManualTickets=20method=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/LottoStore.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/lotto/domain/LottoStore.java b/src/main/java/lotto/domain/LottoStore.java index 884dbee..f45dce3 100644 --- a/src/main/java/lotto/domain/LottoStore.java +++ b/src/main/java/lotto/domain/LottoStore.java @@ -1,8 +1,12 @@ package lotto.domain; +import lotto.domain.lotto.LottoManualTicket; +import lotto.domain.lotto.LottoManualTickets; import lotto.ui.Printer; import lotto.ui.Receiver; +import java.util.ArrayList; + public class LottoStore { private final Printer printer = new Printer(); private final Receiver receiver = new Receiver(); @@ -18,4 +22,15 @@ public int inputLottoManualTicketNumber() { printer.requestLottoManualTicketNumber(); return receiver.receiverLottoManualTicketNumber(); } + + public LottoManualTickets inputLottoManualTickets(int lottoManualTicketNumber) { + ArrayList lottoManualTicketDummy = new ArrayList<>(); + printer.requestLottoManualTicket(); + for (int lottoTicket = 0; lottoTicket < lottoManualTicketNumber; lottoTicket++) { + LottoManualTicket lottoManualTicket = new LottoManualTicket(receiver.receiverLottoManualTicket()); + lottoManualTicketDummy.add(lottoManualTicket); + } + LottoManualTickets lottoManualTickets = new LottoManualTickets(lottoManualTicketDummy); + return lottoManualTickets; + } } From e48382c332ca2e0fe0aebf0074baa209b2949021 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 01:26:48 +0900 Subject: [PATCH 39/72] =?UTF-8?q?refactor:=20invalid=20=ED=95=9C=20class?= =?UTF-8?q?=20=EB=B0=8F=20method=20=EC=9D=B4=EB=A6=84=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...OfNumber.java => NumberOfLottoTicket.java} | 24 +++++++++---------- .../java/lotto/LottoTicketOfNumberTest.java | 10 ++++---- 2 files changed, 17 insertions(+), 17 deletions(-) rename src/main/java/lotto/domain/{LottoTicketOfNumber.java => NumberOfLottoTicket.java} (60%) diff --git a/src/main/java/lotto/domain/LottoTicketOfNumber.java b/src/main/java/lotto/domain/NumberOfLottoTicket.java similarity index 60% rename from src/main/java/lotto/domain/LottoTicketOfNumber.java rename to src/main/java/lotto/domain/NumberOfLottoTicket.java index dd3a3ce..0f25e85 100644 --- a/src/main/java/lotto/domain/LottoTicketOfNumber.java +++ b/src/main/java/lotto/domain/NumberOfLottoTicket.java @@ -2,19 +2,19 @@ import lotto.domain.validation.LottoTicketOfNumberValidation; -public class LottoTicketOfNumber { +public class NumberOfLottoTicket { private final static int LOTTO_TICKET_PRICE = 1000; - private final int lottoTicketOfTotalNumber; - private final int manualLottoTicketOfNumber; + private final int totalNumberOfLottoTicket; + private final int numberOfManualLottoTicket; private final int automaticLottoTicketOfNumber; - public LottoTicketOfNumber(int purchaseAmount, int purchaseManualLottoOfNumber) { + public NumberOfLottoTicket(int purchaseAmount, int purchaseManualLottoOfNumber) { LottoTicketOfNumberValidation lottoTicketOfNumberValidation = new LottoTicketOfNumberValidation(); - this.lottoTicketOfTotalNumber = calculateLottoTicketOfNumber(purchaseAmount); - this.manualLottoTicketOfNumber = purchaseManualLottoOfNumber; - this.automaticLottoTicketOfNumber = calculateAutomaticLottoTicketOfNumber(lottoTicketOfTotalNumber, manualLottoTicketOfNumber); - lottoTicketOfNumberValidation.checkLottoTicketOfNumber(this.lottoTicketOfTotalNumber); + this.totalNumberOfLottoTicket = calculateLottoTicketOfNumber(purchaseAmount); + this.numberOfManualLottoTicket = purchaseManualLottoOfNumber; + this.automaticLottoTicketOfNumber = calculateAutomaticLottoTicketOfNumber(totalNumberOfLottoTicket, numberOfManualLottoTicket); + lottoTicketOfNumberValidation.checkLottoTicketOfNumber(this.totalNumberOfLottoTicket); } private int calculateLottoTicketOfNumber(int purchaseAmount) { @@ -25,16 +25,16 @@ private int calculateAutomaticLottoTicketOfNumber(int lottoTicketOfTotalNumber, return lottoTicketOfTotalNumber - manualLottoTicketOfNumber; } - public int getManualLottoTicketOfNumber(){ - return manualLottoTicketOfNumber; + public int getNumberOfManualLottoTicket(){ + return numberOfManualLottoTicket; } public int getAutomaticLottoTicketOfNumber() { return automaticLottoTicketOfNumber; } - public int getLottoTicketOfNumber() { - return lottoTicketOfTotalNumber; + public int getTotalNumberOfLottoTicket() { + return totalNumberOfLottoTicket; } } diff --git a/src/test/java/lotto/LottoTicketOfNumberTest.java b/src/test/java/lotto/LottoTicketOfNumberTest.java index 4f26073..bddcd1e 100644 --- a/src/test/java/lotto/LottoTicketOfNumberTest.java +++ b/src/test/java/lotto/LottoTicketOfNumberTest.java @@ -1,6 +1,6 @@ package lotto; -import lotto.domain.LottoTicketOfNumber; +import lotto.domain.NumberOfLottoTicket; import lotto.domain.exception.NotValidLottoTicketOfNumberException; import org.junit.jupiter.api.Test; @@ -14,10 +14,10 @@ class LottoTicketOfNumberTest { int purchaseAmountNumber = 11000; int manualLottoTicketOfNumber = 3; int actual = 11; - LottoTicketOfNumber lottoTicketOfNumber = new LottoTicketOfNumber(purchaseAmountNumber, manualLottoTicketOfNumber); + NumberOfLottoTicket lottoTicketOfNumber = new NumberOfLottoTicket(purchaseAmountNumber, manualLottoTicketOfNumber); //when - int expected = lottoTicketOfNumber.getLottoTicketOfNumber(); + int expected = lottoTicketOfNumber.getTotalNumberOfLottoTicket(); System.out.println(expected); //then @@ -30,7 +30,7 @@ class LottoTicketOfNumberTest { int purchaseAmountNumber = 11000; int manualLottoTicketOfNumber = 3; int actual = 8; - LottoTicketOfNumber lottoTicketOfNumber = new LottoTicketOfNumber(purchaseAmountNumber, manualLottoTicketOfNumber); + NumberOfLottoTicket lottoTicketOfNumber = new NumberOfLottoTicket(purchaseAmountNumber, manualLottoTicketOfNumber); //when int expected = lottoTicketOfNumber.getAutomaticLottoTicketOfNumber(); @@ -48,6 +48,6 @@ class LottoTicketOfNumberTest { //when //then assertThatExceptionOfType(NotValidLottoTicketOfNumberException.class). - isThrownBy(() -> new LottoTicketOfNumber(purchaseAmount, manualLottoTicketOfNumber)); + isThrownBy(() -> new NumberOfLottoTicket(purchaseAmount, manualLottoTicketOfNumber)); } } \ No newline at end of file From 5ef41333759f9b98a89986651414c141daebbbfa Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 01:27:44 +0900 Subject: [PATCH 40/72] =?UTF-8?q?feat:=20generateLottoAutomaticTickets=20m?= =?UTF-8?q?ethod=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/LottoStore.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/lotto/domain/LottoStore.java b/src/main/java/lotto/domain/LottoStore.java index f45dce3..77fa543 100644 --- a/src/main/java/lotto/domain/LottoStore.java +++ b/src/main/java/lotto/domain/LottoStore.java @@ -33,4 +33,8 @@ public LottoManualTickets inputLottoManualTickets(int lottoManualTicketNumber) { LottoManualTickets lottoManualTickets = new LottoManualTickets(lottoManualTicketDummy); return lottoManualTickets; } + + public void generateLottoAutomaticTickets() { + printer.printNumberOfEachLottoTicket(); + } } From 57a0ceedb2653080b30e37b2aa77ff9dcd2e7c49 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 01:43:04 +0900 Subject: [PATCH 41/72] =?UTF-8?q?feat:=20=EC=9E=90=EB=8F=99=EB=B3=B5?= =?UTF-8?q?=EA=B6=8C=EA=B3=BC=20=EC=88=98=EB=8F=99=EB=B3=B5=EA=B6=8C?= =?UTF-8?q?=EC=9D=84=20=EA=B0=81=EA=B0=81=20=EB=AA=87=EC=9E=A5=EC=94=A9=20?= =?UTF-8?q?=EC=83=80=EB=8A=94=EC=A7=80=20=EC=B6=9C=EB=A0=A5=ED=95=98?= =?UTF-8?q?=EB=8A=94=20printNumberOfEachLottoTicket=20method=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/LottoStore.java | 8 +++++++- src/main/java/lotto/ui/Printer.java | 11 +++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/main/java/lotto/domain/LottoStore.java b/src/main/java/lotto/domain/LottoStore.java index 77fa543..b912d14 100644 --- a/src/main/java/lotto/domain/LottoStore.java +++ b/src/main/java/lotto/domain/LottoStore.java @@ -35,6 +35,12 @@ public LottoManualTickets inputLottoManualTickets(int lottoManualTicketNumber) { } public void generateLottoAutomaticTickets() { - printer.printNumberOfEachLottoTicket(); + + } + + public NumberOfLottoTicket informNumberOfLottoTicket(PurchaseAmount purchaseAmount, int lottoManualTicketNumber) { + NumberOfLottoTicket numberOfLottoTicket = new NumberOfLottoTicket(purchaseAmount, lottoManualTicketNumber); + printer.printNumberOfEachLottoTicket(numberOfLottoTicket); + return numberOfLottoTicket; } } diff --git a/src/main/java/lotto/ui/Printer.java b/src/main/java/lotto/ui/Printer.java index b3368cd..d40489b 100644 --- a/src/main/java/lotto/ui/Printer.java +++ b/src/main/java/lotto/ui/Printer.java @@ -1,9 +1,12 @@ package lotto.ui; +import lotto.domain.NumberOfLottoTicket; + public class Printer { private static final String REQUEST_PURCHASE_AMOUNT_MESSAGE = "๊ตฌ์ž…๊ธˆ์•ก์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."; private static final String REQUEST_LOTTO_MANUAL_TICKET_NUMBER_MESSAGE = "์ˆ˜๋™์œผ๋กœ ๊ตฌ๋งคํ•  ๋กœ๋˜ ์ˆ˜๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."; private static final String REQUEST_LOTTO_MANUAL_TICKET_MESSAGE = "์ˆ˜๋™์œผ๋กœ ๊ตฌ๋งคํ•  ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."; + private static final String PRINT_NUMBER_OF_LOTTO_TICKET_MESSAGE = "์ˆ˜๋™์œผ๋กœ %d์žฅ, ์ž๋™์œผ๋กœ %d๊ฐœ๋ฅผ ๊ตฌ๋งคํ–ˆ์Šต๋‹ˆ๋‹ค."; public void requestPurchaseAmount() { System.out.println(REQUEST_PURCHASE_AMOUNT_MESSAGE); @@ -17,4 +20,12 @@ public void requestLottoManualTicket() { System.out.println(REQUEST_LOTTO_MANUAL_TICKET_MESSAGE); } + public void printNumberOfEachLottoTicket(NumberOfLottoTicket numberOfLottoTicket) { + System.out.println(String.format( + PRINT_NUMBER_OF_LOTTO_TICKET_MESSAGE, + numberOfLottoTicket.getNumberOfManualLottoTicket(), + numberOfLottoTicket.getAutomaticLottoTicketOfNumber() + )); + } + } From 655004a6b8d518661a54b3fa39bce4e1463ce76c Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 01:43:28 +0900 Subject: [PATCH 42/72] =?UTF-8?q?refactor:=20naming=20=EB=B3=80=EA=B2=BD?= =?UTF-8?q?=20=EB=B0=8F=20=EA=B5=AC=EC=A1=B0=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/lotto/domain/NumberOfLottoTicket.java | 4 ++-- src/main/java/lotto/ui/Receiver.java | 4 ++-- src/test/java/lotto/LottoTicketOfNumberTest.java | 14 +++++++++----- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/main/java/lotto/domain/NumberOfLottoTicket.java b/src/main/java/lotto/domain/NumberOfLottoTicket.java index 0f25e85..7fdd8af 100644 --- a/src/main/java/lotto/domain/NumberOfLottoTicket.java +++ b/src/main/java/lotto/domain/NumberOfLottoTicket.java @@ -9,9 +9,9 @@ public class NumberOfLottoTicket { private final int numberOfManualLottoTicket; private final int automaticLottoTicketOfNumber; - public NumberOfLottoTicket(int purchaseAmount, int purchaseManualLottoOfNumber) { + public NumberOfLottoTicket(PurchaseAmount purchaseAmount, int purchaseManualLottoOfNumber) { LottoTicketOfNumberValidation lottoTicketOfNumberValidation = new LottoTicketOfNumberValidation(); - this.totalNumberOfLottoTicket = calculateLottoTicketOfNumber(purchaseAmount); + this.totalNumberOfLottoTicket = calculateLottoTicketOfNumber(purchaseAmount.getPurchaseAmount()); this.numberOfManualLottoTicket = purchaseManualLottoOfNumber; this.automaticLottoTicketOfNumber = calculateAutomaticLottoTicketOfNumber(totalNumberOfLottoTicket, numberOfManualLottoTicket); lottoTicketOfNumberValidation.checkLottoTicketOfNumber(this.totalNumberOfLottoTicket); diff --git a/src/main/java/lotto/ui/Receiver.java b/src/main/java/lotto/ui/Receiver.java index bfded57..f11add3 100644 --- a/src/main/java/lotto/ui/Receiver.java +++ b/src/main/java/lotto/ui/Receiver.java @@ -8,7 +8,7 @@ public class Receiver { private static final Scanner scanner = new Scanner(System.in); - private static final String DELIMITER = ", "; + private static final String DELIMITER = ","; public int receiveLottoPurchaseAmount() { return scanner.nextInt(); @@ -18,7 +18,7 @@ public int receiverLottoManualTicketNumber() { return scanner.nextInt(); } - public List receiverLottoManualTickets() { + public List receiverLottoManualTicket() { String lottoTicket = scanner.next(); List lottoManualTicket = splitInputDelimiter(lottoTicket); return convertStringToInt(lottoManualTicket); diff --git a/src/test/java/lotto/LottoTicketOfNumberTest.java b/src/test/java/lotto/LottoTicketOfNumberTest.java index bddcd1e..307f7af 100644 --- a/src/test/java/lotto/LottoTicketOfNumberTest.java +++ b/src/test/java/lotto/LottoTicketOfNumberTest.java @@ -1,6 +1,7 @@ package lotto; import lotto.domain.NumberOfLottoTicket; +import lotto.domain.PurchaseAmount; import lotto.domain.exception.NotValidLottoTicketOfNumberException; import org.junit.jupiter.api.Test; @@ -11,10 +12,11 @@ class LottoTicketOfNumberTest { @Test void ๋กœ๋˜_ํ‹ฐ์ผ“์˜_์ด_์ˆ˜๋ฅผ_๊ด€๋ฆฌํ•˜๋Š”_๊ฐ์ฒด๋ฅผ_์ƒ์„ฑํ•œ๋‹ค() { //given - int purchaseAmountNumber = 11000; + int totalPrice = 11000; + PurchaseAmount purchaseAmount = new PurchaseAmount(totalPrice); int manualLottoTicketOfNumber = 3; int actual = 11; - NumberOfLottoTicket lottoTicketOfNumber = new NumberOfLottoTicket(purchaseAmountNumber, manualLottoTicketOfNumber); + NumberOfLottoTicket lottoTicketOfNumber = new NumberOfLottoTicket(purchaseAmount, manualLottoTicketOfNumber); //when int expected = lottoTicketOfNumber.getTotalNumberOfLottoTicket(); @@ -27,10 +29,11 @@ class LottoTicketOfNumberTest { @Test void ์ž๋™_๋กœ๋˜_ํ‹ฐ์ผ“์˜_์ˆ˜๋ฅผ_๊ฐ€์ ธ์˜จ๋‹ค() { //given - int purchaseAmountNumber = 11000; + int totalPrice = 11000; + PurchaseAmount purchaseAmount = new PurchaseAmount(totalPrice); int manualLottoTicketOfNumber = 3; int actual = 8; - NumberOfLottoTicket lottoTicketOfNumber = new NumberOfLottoTicket(purchaseAmountNumber, manualLottoTicketOfNumber); + NumberOfLottoTicket lottoTicketOfNumber = new NumberOfLottoTicket(purchaseAmount, manualLottoTicketOfNumber); //when int expected = lottoTicketOfNumber.getAutomaticLottoTicketOfNumber(); @@ -43,7 +46,8 @@ class LottoTicketOfNumberTest { @Test void ์ž…๋ ฅํ•œ_๋กœ๋˜_๊ตฌ์ž…_๊ธˆ์•ก์œผ๋กœ_๋กœ๋˜๋ฅผ_์‚ด_์ˆ˜_์—†๋Š”_๊ฒฝ์šฐ_NotValidLottoTicketOfNumberException_์„_๋˜์ง„๋‹ค() { //given - int purchaseAmount = 900; + int totalPrice = 900; + PurchaseAmount purchaseAmount = new PurchaseAmount(totalPrice); int manualLottoTicketOfNumber = 3; //when //then From 87274f710805035e9234624446cecc41c8827d0c Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 01:48:11 +0900 Subject: [PATCH 43/72] =?UTF-8?q?refactor:=20=EC=9E=90=EB=8F=99=EB=B3=B5?= =?UTF-8?q?=EA=B6=8C=20=EA=B0=9D=EC=B2=B4=EB=93=A4=EC=9D=84=20=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=ED=95=98=EB=8A=94=20LottoAutomaticTickets=20class=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lotto/domain/lotto/LottoAutomaticTickets.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/lotto/domain/lotto/LottoAutomaticTickets.java b/src/main/java/lotto/domain/lotto/LottoAutomaticTickets.java index 819b8bc..2e68e4d 100644 --- a/src/main/java/lotto/domain/lotto/LottoAutomaticTickets.java +++ b/src/main/java/lotto/domain/lotto/LottoAutomaticTickets.java @@ -1,4 +1,15 @@ package lotto.domain.lotto; +import java.util.List; + public class LottoAutomaticTickets { + private final List lottoAutomaticTickets; + + public LottoAutomaticTickets(List lottoAutomaticTickets) { + this.lottoAutomaticTickets = lottoAutomaticTickets; + } + + public List getLottoManualTickets() { + return lottoAutomaticTickets; + } } From 7feae6d87e018859a3486fcff3709734b1862cd2 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 01:59:28 +0900 Subject: [PATCH 44/72] =?UTF-8?q?feat:=20=EC=9E=90=EB=8F=99=EB=B3=B5?= =?UTF-8?q?=EA=B6=8C=EC=9D=84=20=EC=B6=9C=EB=A0=A5=ED=95=98=EB=8A=94=20inf?= =?UTF-8?q?ormLottoAutomaticTickets=20method=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/LottoStore.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/lotto/domain/LottoStore.java b/src/main/java/lotto/domain/LottoStore.java index b912d14..67e242d 100644 --- a/src/main/java/lotto/domain/LottoStore.java +++ b/src/main/java/lotto/domain/LottoStore.java @@ -1,5 +1,6 @@ package lotto.domain; +import lotto.domain.lotto.LottoAutomaticTickets; import lotto.domain.lotto.LottoManualTicket; import lotto.domain.lotto.LottoManualTickets; import lotto.ui.Printer; @@ -10,6 +11,7 @@ public class LottoStore { private final Printer printer = new Printer(); private final Receiver receiver = new Receiver(); + private final LottoMachine lottoMachine = new LottoMachine(); public PurchaseAmount inputLottoPurchaseAmount() { printer.requestPurchaseAmount(); @@ -30,12 +32,12 @@ public LottoManualTickets inputLottoManualTickets(int lottoManualTicketNumber) { LottoManualTicket lottoManualTicket = new LottoManualTicket(receiver.receiverLottoManualTicket()); lottoManualTicketDummy.add(lottoManualTicket); } - LottoManualTickets lottoManualTickets = new LottoManualTickets(lottoManualTicketDummy); - return lottoManualTickets; + return new LottoManualTickets(lottoManualTicketDummy); } - public void generateLottoAutomaticTickets() { - + public void informLottoAutomaticTickets(NumberOfLottoTicket numberOfLottoTicket) { + LottoAutomaticTickets lottoAutomaticTickets = lottoMachine.generateLottoAutomaticTickets(numberOfLottoTicket); + printer.printLottoAutomaticTickets(); } public NumberOfLottoTicket informNumberOfLottoTicket(PurchaseAmount purchaseAmount, int lottoManualTicketNumber) { From b67f680dcd4af9774ee6a2f667674d74a13247f5 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 04:35:10 +0900 Subject: [PATCH 45/72] =?UTF-8?q?feat:=20LastWeekWinningLotto=20class=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/lotto/LastWeekWinningLotto.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/main/java/lotto/domain/lotto/LastWeekWinningLotto.java diff --git a/src/main/java/lotto/domain/lotto/LastWeekWinningLotto.java b/src/main/java/lotto/domain/lotto/LastWeekWinningLotto.java new file mode 100644 index 0000000..5fdbd0d --- /dev/null +++ b/src/main/java/lotto/domain/lotto/LastWeekWinningLotto.java @@ -0,0 +1,17 @@ +package lotto.domain.lotto; + +import java.util.List; + +public class LastWeekWinningLotto extends Lotto{ + private final List winningLotto; + + public LastWeekWinningLotto(List winningLotto) { + super(winningLotto); + this.winningLotto = winningLotto; + } + + public List getLotto(){ + return winningLotto; + } + +} From 1eacddfab651f3dd195b41e8b10c66947e38b0a8 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 04:35:55 +0900 Subject: [PATCH 46/72] =?UTF-8?q?feat:=20printLottoAutomaticTickets=20meth?= =?UTF-8?q?od=20=EC=99=80=20printLottoManualTickets=20method=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/ui/Printer.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/lotto/ui/Printer.java b/src/main/java/lotto/ui/Printer.java index d40489b..2e668da 100644 --- a/src/main/java/lotto/ui/Printer.java +++ b/src/main/java/lotto/ui/Printer.java @@ -1,6 +1,10 @@ package lotto.ui; import lotto.domain.NumberOfLottoTicket; +import lotto.domain.lotto.LottoAutomaticTicket; +import lotto.domain.lotto.LottoAutomaticTickets; +import lotto.domain.lotto.LottoManualTicket; +import lotto.domain.lotto.LottoManualTickets; public class Printer { private static final String REQUEST_PURCHASE_AMOUNT_MESSAGE = "๊ตฌ์ž…๊ธˆ์•ก์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."; @@ -28,4 +32,15 @@ public void printNumberOfEachLottoTicket(NumberOfLottoTicket numberOfLottoTicket )); } + public void printLottoAutomaticTickets(LottoAutomaticTickets lottoAutomaticTickets) { + for (LottoAutomaticTicket lottoAutomaticTicket: lottoAutomaticTickets.getLottoAutomaticTickets()) { + System.out.println(lottoAutomaticTicket.getLotto()); + } + } + + public void printLottoManualTickets(LottoManualTickets lottoManualTickets) { + for (LottoManualTicket lottoManualTicket: lottoManualTickets.getLottoManualTickets()) { + System.out.println(lottoManualTicket.getLotto()); + } + } } From 7a26eff7eb023f3e3c64363cc14a79934e83cef3 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 04:42:17 +0900 Subject: [PATCH 47/72] =?UTF-8?q?refactor:=20invalid=20=ED=95=9C=20method?= =?UTF-8?q?=20naming=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/lotto/LottoAutomaticTickets.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/lotto/domain/lotto/LottoAutomaticTickets.java b/src/main/java/lotto/domain/lotto/LottoAutomaticTickets.java index 2e68e4d..bf8e19c 100644 --- a/src/main/java/lotto/domain/lotto/LottoAutomaticTickets.java +++ b/src/main/java/lotto/domain/lotto/LottoAutomaticTickets.java @@ -1,5 +1,6 @@ package lotto.domain.lotto; +import java.util.ArrayList; import java.util.List; public class LottoAutomaticTickets { @@ -9,7 +10,7 @@ public LottoAutomaticTickets(List lottoAutomaticTickets) { this.lottoAutomaticTickets = lottoAutomaticTickets; } - public List getLottoManualTickets() { + public List getLottoAutomaticTickets() { return lottoAutomaticTickets; } } From bd9ad045286fe06cac3e53fc07bc1bd9f4675d4d Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 04:42:44 +0900 Subject: [PATCH 48/72] =?UTF-8?q?feat:=20requestLastWeekLottoWinningNumber?= =?UTF-8?q?=20method=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/ui/Printer.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/lotto/ui/Printer.java b/src/main/java/lotto/ui/Printer.java index 2e668da..765363c 100644 --- a/src/main/java/lotto/ui/Printer.java +++ b/src/main/java/lotto/ui/Printer.java @@ -11,6 +11,8 @@ public class Printer { private static final String REQUEST_LOTTO_MANUAL_TICKET_NUMBER_MESSAGE = "์ˆ˜๋™์œผ๋กœ ๊ตฌ๋งคํ•  ๋กœ๋˜ ์ˆ˜๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."; private static final String REQUEST_LOTTO_MANUAL_TICKET_MESSAGE = "์ˆ˜๋™์œผ๋กœ ๊ตฌ๋งคํ•  ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."; private static final String PRINT_NUMBER_OF_LOTTO_TICKET_MESSAGE = "์ˆ˜๋™์œผ๋กœ %d์žฅ, ์ž๋™์œผ๋กœ %d๊ฐœ๋ฅผ ๊ตฌ๋งคํ–ˆ์Šต๋‹ˆ๋‹ค."; + private static final String REQUEST_LAST_WEEK_LOTTO_WINNING_NUMBER_MESSAGE = "\n์ง€๋‚œ ์ฃผ ๋‹น์ฒจ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."; + public void requestPurchaseAmount() { System.out.println(REQUEST_PURCHASE_AMOUNT_MESSAGE); @@ -43,4 +45,8 @@ public void printLottoManualTickets(LottoManualTickets lottoManualTickets) { System.out.println(lottoManualTicket.getLotto()); } } + + public void requestLastWeekLottoWinningNumber() { + System.out.println(REQUEST_LAST_WEEK_LOTTO_WINNING_NUMBER_MESSAGE); + } } From c162ffd10cf58f4b303a83285c448ce23f3c4d07 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 04:43:15 +0900 Subject: [PATCH 49/72] =?UTF-8?q?refactor:=20list=20=EC=97=90=20=EB=8B=B4?= =?UTF-8?q?=EA=B8=B0=EC=A7=80=20=EC=95=8A=EB=8A=94=20=EB=AC=B8=EC=A0=9C?= =?UTF-8?q?=EB=A1=9C=20=EC=9D=B8=ED=95=B4=20=EA=B8=B0=EC=A1=B4=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=EC=9C=BC=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../strategy/RandomLottoNumberGenerator.java | 22 +++++++------------ 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/src/main/java/lotto/domain/strategy/RandomLottoNumberGenerator.java b/src/main/java/lotto/domain/strategy/RandomLottoNumberGenerator.java index 6c6ec16..f2c8428 100644 --- a/src/main/java/lotto/domain/strategy/RandomLottoNumberGenerator.java +++ b/src/main/java/lotto/domain/strategy/RandomLottoNumberGenerator.java @@ -9,26 +9,20 @@ public class RandomLottoNumberGenerator { private final static int LOWER_BOUND = 1; private final static int LOTTO_NUMBER_COUNT = 6; - private final List lottoNumberRange; - - public RandomLottoNumberGenerator() { - lottoNumberRange = new ArrayList<>(); - setLottoNumberRange(); - } - - public List getRandomLottoNumbers(){ - return getLottoNumbers(lottoNumberRange); - } - - private void setLottoNumberRange(){ + private List setLottoNumberRange(){ + List lottoNumberRange = new ArrayList<>(); for (int lottoNumber = LOWER_BOUND; lottoNumber < UPPER_BOUND; lottoNumber++) { lottoNumberRange.add(lottoNumber); } + return lottoNumberRange; } - private List getLottoNumbers(List lottoNumberRange){ + public List getRandomLottoNumbers(){ + List lottoNumberRange = setLottoNumberRange(); Collections.shuffle(lottoNumberRange); - return lottoNumberRange.subList(0,LOTTO_NUMBER_COUNT); + List collectedNumbers = lottoNumberRange.subList(0,LOTTO_NUMBER_COUNT); + Collections.sort(collectedNumbers); + return collectedNumbers; } } From d92e3ef126c6946b8041f7e08922549b33ca5c4b Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 04:44:18 +0900 Subject: [PATCH 50/72] =?UTF-8?q?feat:=20=EC=9E=90=EB=8F=99=EB=B3=B5?= =?UTF-8?q?=EA=B6=8C=20=EA=B0=9D=EC=B2=B4=EB=A5=BC=20=EC=83=9D=EC=84=B1?= =?UTF-8?q?=ED=95=98=EA=B3=A0=20=EA=B0=9D=EC=B2=B4=EB=93=A4=EC=9D=84=20?= =?UTF-8?q?=EB=B3=B4=EA=B4=80=ED=95=98=EB=8A=94=20LottoAutomaticTicket=20?= =?UTF-8?q?=EA=B0=9D=EC=B2=B4=EB=A5=BC=20=EC=83=9D=EC=84=B1=ED=95=98?= =?UTF-8?q?=EB=8A=94=20generateLottoAutomaticTicket=20method=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/LottoMachine.java | 21 ++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/main/java/lotto/domain/LottoMachine.java diff --git a/src/main/java/lotto/domain/LottoMachine.java b/src/main/java/lotto/domain/LottoMachine.java new file mode 100644 index 0000000..371d215 --- /dev/null +++ b/src/main/java/lotto/domain/LottoMachine.java @@ -0,0 +1,21 @@ +package lotto.domain; + +import lotto.domain.lotto.LottoAutomaticTicket; +import lotto.domain.lotto.LottoAutomaticTickets; +import lotto.domain.strategy.RandomLottoNumberGenerator; + +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.IntStream; + +public class LottoMachine { + private final RandomLottoNumberGenerator randomLottoNumberGenerator = new RandomLottoNumberGenerator(); + + public LottoAutomaticTickets generateLottoAutomaticTicket(NumberOfLottoTicket numberOfLottoTicket) { + int numberOfLottoAutomaticTicket = numberOfLottoTicket.getAutomaticLottoTicketOfNumber(); + List lottoAutomaticTicket = IntStream.range(0, numberOfLottoAutomaticTicket). + mapToObj(lottoTicket -> new LottoAutomaticTicket(randomLottoNumberGenerator.getRandomLottoNumbers())). + collect(Collectors.toList()); + return new LottoAutomaticTickets(lottoAutomaticTicket); + } +} From 589959e77d64823740701e4c067d3f53263f3743 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 04:48:45 +0900 Subject: [PATCH 51/72] =?UTF-8?q?feat:=20=EC=A7=80=EB=82=9C=20=EC=A3=BC=20?= =?UTF-8?q?=EB=A1=9C=EB=98=90=20=EB=8B=B9=EC=B2=A8=EB=B2=88=ED=98=B8?= =?UTF-8?q?=EB=A5=BC=20=EB=B0=9B=EB=8A=94=20=20receiveLastWeekLottoWinning?= =?UTF-8?q?Numbers=20method=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/ui/Receiver.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/lotto/ui/Receiver.java b/src/main/java/lotto/ui/Receiver.java index f11add3..dc90b72 100644 --- a/src/main/java/lotto/ui/Receiver.java +++ b/src/main/java/lotto/ui/Receiver.java @@ -24,6 +24,12 @@ public List receiverLottoManualTicket() { return convertStringToInt(lottoManualTicket); } + public List receiveLastWeekLottoWinningNumbers() { + String lastWeekLottoWinningNumbers = scanner.next(); + List dividedLastWeekLottoWinningNumbers = splitInputDelimiter(lastWeekLottoWinningNumbers); + return convertStringToInt(dividedLastWeekLottoWinningNumbers); + } + private List convertStringToInt(List lottoManualTicket) { return lottoManualTicket.stream() .map(Integer::parseInt) @@ -33,4 +39,5 @@ private List convertStringToInt(List lottoManualTicket) { private List splitInputDelimiter(String lottoManualTicket) { return Arrays.asList(lottoManualTicket.split(DELIMITER)); } + } From 3a9bc9ef4503b96810e21ed30b17206e0550e69b Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 04:49:06 +0900 Subject: [PATCH 52/72] =?UTF-8?q?feat:=20=EC=A7=80=EB=82=9C=20=EC=A3=BC=20?= =?UTF-8?q?=EB=A1=9C=EB=98=90=20=EB=8B=B9=EC=B2=A8=EB=B2=88=ED=98=B8?= =?UTF-8?q?=EB=A5=BC=20=EB=B0=9B=EB=8A=94=20=20inputLastWeekWinningLotto?= =?UTF-8?q?=20method=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/LottoStore.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/lotto/domain/LottoStore.java b/src/main/java/lotto/domain/LottoStore.java index 67e242d..f887326 100644 --- a/src/main/java/lotto/domain/LottoStore.java +++ b/src/main/java/lotto/domain/LottoStore.java @@ -1,5 +1,6 @@ package lotto.domain; +import lotto.domain.lotto.LastWeekWinningLotto; import lotto.domain.lotto.LottoAutomaticTickets; import lotto.domain.lotto.LottoManualTicket; import lotto.domain.lotto.LottoManualTickets; @@ -7,6 +8,7 @@ import lotto.ui.Receiver; import java.util.ArrayList; +import java.util.List; public class LottoStore { private final Printer printer = new Printer(); @@ -35,9 +37,11 @@ public LottoManualTickets inputLottoManualTickets(int lottoManualTicketNumber) { return new LottoManualTickets(lottoManualTicketDummy); } - public void informLottoAutomaticTickets(NumberOfLottoTicket numberOfLottoTicket) { - LottoAutomaticTickets lottoAutomaticTickets = lottoMachine.generateLottoAutomaticTickets(numberOfLottoTicket); - printer.printLottoAutomaticTickets(); + public LottoAutomaticTickets informLottoAutomaticTickets(LottoManualTickets lottoManualTickets, NumberOfLottoTicket numberOfLottoTicket) { + printer.printLottoManualTickets(lottoManualTickets); + LottoAutomaticTickets lottoAutomaticTickets = lottoMachine.generateLottoAutomaticTicket(numberOfLottoTicket); + printer.printLottoAutomaticTickets(lottoAutomaticTickets); + return lottoAutomaticTickets; } public NumberOfLottoTicket informNumberOfLottoTicket(PurchaseAmount purchaseAmount, int lottoManualTicketNumber) { @@ -45,4 +49,10 @@ public NumberOfLottoTicket informNumberOfLottoTicket(PurchaseAmount purchaseAmou printer.printNumberOfEachLottoTicket(numberOfLottoTicket); return numberOfLottoTicket; } + + public LastWeekWinningLotto inputLastWeekWinningLotto() { + printer.requestLastWeekLottoWinningNumber(); + List LastWeekLottoWinningNumbers = receiver.receiveLastWeekLottoWinningNumbers(); + return new LastWeekWinningLotto(LastWeekLottoWinningNumbers); + } } From 11ee54c1159b8acbc79172e20dd87d5fc116ca73 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 04:52:41 +0900 Subject: [PATCH 53/72] =?UTF-8?q?feat:=20LastWeekWinningBonusBall=20class?= =?UTF-8?q?=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/lotto/LastWeekWinningBonusBall.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/main/java/lotto/domain/lotto/LastWeekWinningBonusBall.java diff --git a/src/main/java/lotto/domain/lotto/LastWeekWinningBonusBall.java b/src/main/java/lotto/domain/lotto/LastWeekWinningBonusBall.java new file mode 100644 index 0000000..0be7a48 --- /dev/null +++ b/src/main/java/lotto/domain/lotto/LastWeekWinningBonusBall.java @@ -0,0 +1,13 @@ +package lotto.domain.lotto; + +public class LastWeekWinningBonusBall { + private final int bonusBall; + + public LastWeekWinningBonusBall(int bonusBall){ + this.bonusBall = bonusBall; + } + + public int getLastWeekWinningBonusBall(){ + return this.bonusBall; + } +} From e85095501090178394cfa432085c3a77498ff893 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 04:53:18 +0900 Subject: [PATCH 54/72] =?UTF-8?q?feat:=20=EB=B3=B4=EB=84=88=EC=8A=A4?= =?UTF-8?q?=EB=B3=BC=EC=9D=84=20=EC=9E=85=EB=A0=A5=EC=9D=84=20=EC=9A=94?= =?UTF-8?q?=EA=B5=AC=ED=95=98=EB=8A=94=20=EB=A9=94=EC=8B=9C=EC=A7=80=20?= =?UTF-8?q?=EC=B6=9C=EB=A0=A5=20=EB=8B=B4=EB=8B=B9=EC=9D=98=20requestLotto?= =?UTF-8?q?BonusBallNumber=20method=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/ui/Printer.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/lotto/ui/Printer.java b/src/main/java/lotto/ui/Printer.java index 765363c..dc8494c 100644 --- a/src/main/java/lotto/ui/Printer.java +++ b/src/main/java/lotto/ui/Printer.java @@ -12,7 +12,7 @@ public class Printer { private static final String REQUEST_LOTTO_MANUAL_TICKET_MESSAGE = "์ˆ˜๋™์œผ๋กœ ๊ตฌ๋งคํ•  ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."; private static final String PRINT_NUMBER_OF_LOTTO_TICKET_MESSAGE = "์ˆ˜๋™์œผ๋กœ %d์žฅ, ์ž๋™์œผ๋กœ %d๊ฐœ๋ฅผ ๊ตฌ๋งคํ–ˆ์Šต๋‹ˆ๋‹ค."; private static final String REQUEST_LAST_WEEK_LOTTO_WINNING_NUMBER_MESSAGE = "\n์ง€๋‚œ ์ฃผ ๋‹น์ฒจ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."; - + private static final String REQUEST_LOTTO_BONUS_BALL_NUMBER_MESSAGE = "๋ณด๋„ˆ์Šค ๋ณผ์„ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”"; public void requestPurchaseAmount() { System.out.println(REQUEST_PURCHASE_AMOUNT_MESSAGE); @@ -49,4 +49,8 @@ public void printLottoManualTickets(LottoManualTickets lottoManualTickets) { public void requestLastWeekLottoWinningNumber() { System.out.println(REQUEST_LAST_WEEK_LOTTO_WINNING_NUMBER_MESSAGE); } + + public void requestLottoBonusBallNumber() { + System.out.println(REQUEST_LOTTO_BONUS_BALL_NUMBER_MESSAGE); + } } From 6c97b6e0585e0f073a3d29ace825345cfe177e8a Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 05:02:25 +0900 Subject: [PATCH 55/72] =?UTF-8?q?feat:=20=EB=A1=9C=EB=98=90=20=EA=B2=B0?= =?UTF-8?q?=EA=B3=BC=EB=A5=BC=20=EB=B9=84=EA=B5=90=ED=95=98=EC=97=AC=20mat?= =?UTF-8?q?ched=20=EB=90=9C=20=EC=97=AC=EB=B6=80=EB=A5=BC=20=ED=8C=8C?= =?UTF-8?q?=EC=95=85=ED=95=98=EB=8A=94=20WinningStatus=20enum=20class=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/WinningStatus.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/main/java/lotto/domain/WinningStatus.java diff --git a/src/main/java/lotto/domain/WinningStatus.java b/src/main/java/lotto/domain/WinningStatus.java new file mode 100644 index 0000000..fe40ecd --- /dev/null +++ b/src/main/java/lotto/domain/WinningStatus.java @@ -0,0 +1,31 @@ +package lotto.domain; + +public enum WinningStatus { + SIX_MATCH(6, false, 2000000000), + FIVE_MATCH_WITH_BONUS_BALL(5, true, 30000000), + FIVE_MATCH(5, false, 1500000), + FOUR_MATCH(4, false, 50000), + THREE_MATCH(3, false, 5000); + + private final int matchCount; + private final int winningMoney; + private final boolean BonusBall; + + WinningStatus(int matchCount, boolean BonusBall, int winningMoney){ + this.matchCount = matchCount; + this.winningMoney = winningMoney; + this.BonusBall = BonusBall; + } + + public int getMatchCount() { + return this.matchCount; + } + + public boolean hasBonusBall() { + return this.BonusBall; + } + + public int getWinningMoney() { + return this.winningMoney; + } +} From 1e60a5d41e440897d6261c8ad6420d513a626abb Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 05:03:00 +0900 Subject: [PATCH 56/72] =?UTF-8?q?feat:=20=EB=B3=B4=EB=84=88=EC=8A=A4?= =?UTF-8?q?=EB=B3=BC=EC=9D=84=20=EB=B0=9B=EB=8A=94=20receiveLottoBonusBall?= =?UTF-8?q?Number=20method=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/ui/Receiver.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/lotto/ui/Receiver.java b/src/main/java/lotto/ui/Receiver.java index dc90b72..e525362 100644 --- a/src/main/java/lotto/ui/Receiver.java +++ b/src/main/java/lotto/ui/Receiver.java @@ -1,6 +1,5 @@ package lotto.ui; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; @@ -40,4 +39,8 @@ private List splitInputDelimiter(String lottoManualTicket) { return Arrays.asList(lottoManualTicket.split(DELIMITER)); } + public int receiveLottoBonusBallNumber() { + return scanner.nextInt(); + } + } From e1773ee32c39efc500a6e3208231fbc37c7756a6 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 05:03:28 +0900 Subject: [PATCH 57/72] =?UTF-8?q?feat:=20=EB=B3=B4=EB=84=88=EC=8A=A4?= =?UTF-8?q?=EB=B3=BC=EC=9D=84=20=EB=B0=9B=EA=B3=A0=20=EA=B0=9D=EC=B2=B4?= =?UTF-8?q?=ED=99=94=EB=A5=BC=20=ED=95=98=EB=8A=94=20inputLastWeekWinningB?= =?UTF-8?q?onusBall=20method=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/LottoStore.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/java/lotto/domain/LottoStore.java b/src/main/java/lotto/domain/LottoStore.java index f887326..123b625 100644 --- a/src/main/java/lotto/domain/LottoStore.java +++ b/src/main/java/lotto/domain/LottoStore.java @@ -1,9 +1,6 @@ package lotto.domain; -import lotto.domain.lotto.LastWeekWinningLotto; -import lotto.domain.lotto.LottoAutomaticTickets; -import lotto.domain.lotto.LottoManualTicket; -import lotto.domain.lotto.LottoManualTickets; +import lotto.domain.lotto.*; import lotto.ui.Printer; import lotto.ui.Receiver; @@ -55,4 +52,13 @@ public LastWeekWinningLotto inputLastWeekWinningLotto() { List LastWeekLottoWinningNumbers = receiver.receiveLastWeekLottoWinningNumbers(); return new LastWeekWinningLotto(LastWeekLottoWinningNumbers); } + + public LastWeekWinningBonusBall inputLastWeekWinningBonusBall() { + printer.requestLottoBonusBallNumber(); + int BonusBall = receiver.receiveLottoBonusBallNumber(); + return new LastWeekWinningBonusBall(BonusBall); + } + + public void informLottoStatistics() { + } } From 67041a0da4104155fffaff3a89d9b7465bf28d62 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 05:54:47 +0900 Subject: [PATCH 58/72] =?UTF-8?q?feat:=20=EB=B3=B4=EB=84=88=EC=8A=A4?= =?UTF-8?q?=EB=B3=BC=20=EC=9D=BC=EC=B9=98=EC=97=AC=EB=B6=80=EC=99=80=20?= =?UTF-8?q?=EB=A1=9C=EB=98=90=EB=B2=88=ED=98=B8=20=EC=9D=BC=EC=B9=98?= =?UTF-8?q?=ED=95=98=EB=8A=94=20=EC=88=98=EB=A5=BC=20Map=EC=97=90=20?= =?UTF-8?q?=EB=8B=B4=EC=95=84=20=EB=B0=98=ED=99=98=ED=95=98=EB=8A=94=20met?= =?UTF-8?q?hod=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/LottoMachine.java | 49 +++++++++++++++++++- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/src/main/java/lotto/domain/LottoMachine.java b/src/main/java/lotto/domain/LottoMachine.java index 371d215..dab4f19 100644 --- a/src/main/java/lotto/domain/LottoMachine.java +++ b/src/main/java/lotto/domain/LottoMachine.java @@ -1,14 +1,16 @@ package lotto.domain; -import lotto.domain.lotto.LottoAutomaticTicket; -import lotto.domain.lotto.LottoAutomaticTickets; +import lotto.domain.lotto.*; import lotto.domain.strategy.RandomLottoNumberGenerator; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; import java.util.stream.IntStream; public class LottoMachine { + private final static int LOTTO_SIZE = 6; private final RandomLottoNumberGenerator randomLottoNumberGenerator = new RandomLottoNumberGenerator(); public LottoAutomaticTickets generateLottoAutomaticTicket(NumberOfLottoTicket numberOfLottoTicket) { @@ -18,4 +20,47 @@ public LottoAutomaticTickets generateLottoAutomaticTicket(NumberOfLottoTicket nu collect(Collectors.toList()); return new LottoAutomaticTickets(lottoAutomaticTicket); } + + public Map lottoManualTicketsDiscriminator( + LottoManualTickets lottoManualTickets, + LastWeekWinningLotto lastWeekWinningLotto, + LastWeekWinningBonusBall lastWeekWinningBonusBall) { + Map mappingLottoManualTicketsResult = new HashMap<>(); + + for (LottoManualTicket lastManualTicket : lottoManualTickets.getLottoManualTickets()) { + int matchedLottoManualTicketCount = calculateMatchedLottoManualTicket(lastManualTicket, lastWeekWinningLotto); + Boolean isMatchedBonusBall = calculateMatchedBonusBallManualTicket(lastManualTicket, lastWeekWinningBonusBall); + mappingLottoManualTicketsResult.put(matchedLottoManualTicketCount, isMatchedBonusBall); + } + return mappingLottoManualTicketsResult; + } + + private Boolean calculateMatchedBonusBallManualTicket( + LottoManualTicket lottoManualTicket, + LastWeekWinningBonusBall lastWeekWinningBonusBall) { + List lottoTicket = lottoManualTicket.getLotto(); + int WinningBonusBalls = lastWeekWinningBonusBall.getLastWeekWinningBonusBall(); + return lottoTicket.contains(WinningBonusBalls); + } + + private int calculateMatchedLottoManualTicket( + LottoManualTicket lottoManualTicket, + LastWeekWinningLotto lastWeekWinningLotto) { + List lottoTicket = lottoManualTicket.getLotto(); + List lastWeekWinningLottoTicket = lastWeekWinningLotto.getLotto(); + int matchedCount = 0; + for (int lottoNumber = 0; lottoNumber < LOTTO_SIZE; lottoNumber++) { + Boolean isMatchLottoNumber = lottoTicket.contains(lastWeekWinningLottoTicket.get(lottoNumber)); + matchedCount += countMatchedLottoNumber(isMatchLottoNumber); + } + return matchedCount; + } + + private int countMatchedLottoNumber(Boolean isMatchLottoNumber) { + if (isMatchLottoNumber) { + return 1; + } + return 0; + } + } From a6cc6fa4f5f138acf7b4c791d114b3188edb23d4 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 06:42:15 +0900 Subject: [PATCH 59/72] =?UTF-8?q?feat:=20=EC=9E=90=EB=8F=99=EB=B3=B5?= =?UTF-8?q?=EA=B6=8C=EC=9D=98=20=EB=B3=B4=EB=84=88=EC=8A=A4=EB=B3=BC=20?= =?UTF-8?q?=EC=9D=BC=EC=B9=98=EC=97=AC=EB=B6=80=EC=99=80=20=EB=A1=9C?= =?UTF-8?q?=EB=98=90=EB=B2=88=ED=98=B8=20=EC=9D=BC=EC=B9=98=ED=95=98?= =?UTF-8?q?=EB=8A=94=20=EC=88=98=EB=A5=BC=20Map=EC=97=90=20=EB=8B=B4?= =?UTF-8?q?=EC=95=84=20=EB=B0=98=ED=99=98=ED=95=98=EB=8A=94=20method=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/LottoMachine.java | 45 ++++++++++++++++++-- 1 file changed, 41 insertions(+), 4 deletions(-) diff --git a/src/main/java/lotto/domain/LottoMachine.java b/src/main/java/lotto/domain/LottoMachine.java index dab4f19..365917d 100644 --- a/src/main/java/lotto/domain/LottoMachine.java +++ b/src/main/java/lotto/domain/LottoMachine.java @@ -27,14 +27,52 @@ public Map lottoManualTicketsDiscriminator( LastWeekWinningBonusBall lastWeekWinningBonusBall) { Map mappingLottoManualTicketsResult = new HashMap<>(); - for (LottoManualTicket lastManualTicket : lottoManualTickets.getLottoManualTickets()) { - int matchedLottoManualTicketCount = calculateMatchedLottoManualTicket(lastManualTicket, lastWeekWinningLotto); - Boolean isMatchedBonusBall = calculateMatchedBonusBallManualTicket(lastManualTicket, lastWeekWinningBonusBall); + for (LottoManualTicket lottoManualTicket : lottoManualTickets.getLottoManualTickets()) { + int matchedLottoManualTicketCount = calculateMatchedLottoManualTicket(lottoManualTicket, lastWeekWinningLotto); + Boolean isMatchedBonusBall = calculateMatchedBonusBallManualTicket(lottoManualTicket, lastWeekWinningBonusBall); mappingLottoManualTicketsResult.put(matchedLottoManualTicketCount, isMatchedBonusBall); } return mappingLottoManualTicketsResult; } + public Map lottoAutomaticTicketsDiscriminator( + LottoAutomaticTickets lottoAutomaticTickets, + LastWeekWinningLotto lastWeekWinningLotto, + LastWeekWinningBonusBall lastWeekWinningBonusBall) { + Map mappingLottoAutomaticTicketsResult = new HashMap<>(); + + for (LottoAutomaticTicket lottoAutomaticTicket : lottoAutomaticTickets.getLottoAutomaticTickets()) { + int matchedLottoAutomaticTicketCount = calculateMatchedLottoAutomaticTicket(lottoAutomaticTicket, lastWeekWinningLotto); + Boolean isMatchedBonusBall = calculateMatchedBonusBallAutomaticTicket(lottoAutomaticTicket, lastWeekWinningBonusBall); + mappingLottoAutomaticTicketsResult.put(matchedLottoAutomaticTicketCount, isMatchedBonusBall); + } + return mappingLottoAutomaticTicketsResult; + } + + private Boolean calculateMatchedBonusBallAutomaticTicket( + LottoAutomaticTicket lottoAutomaticTicket, + LastWeekWinningBonusBall lastWeekWinningBonusBall) { + + List lottoTicket = lottoAutomaticTicket.getLotto(); + int WinningBonusBalls = lastWeekWinningBonusBall.getLastWeekWinningBonusBall(); + return lottoTicket.contains(WinningBonusBalls); + } + + private int calculateMatchedLottoAutomaticTicket( + LottoAutomaticTicket lottoAutomaticTicket, + LastWeekWinningLotto lastWeekWinningLotto) { + + List lottoTicket = lottoAutomaticTicket.getLotto(); + List lastWeekWinningLottoTicket = lastWeekWinningLotto.getLotto(); + int matchedCount = 0; + for (int lottoNumber = 0; lottoNumber < LOTTO_SIZE; lottoNumber++) { + Boolean isMatchLottoNumber = lottoTicket.contains(lastWeekWinningLottoTicket.get(lottoNumber)); + matchedCount += countMatchedLottoNumber(isMatchLottoNumber); + } + return matchedCount; + + } + private Boolean calculateMatchedBonusBallManualTicket( LottoManualTicket lottoManualTicket, LastWeekWinningBonusBall lastWeekWinningBonusBall) { @@ -62,5 +100,4 @@ private int countMatchedLottoNumber(Boolean isMatchLottoNumber) { } return 0; } - } From 3dddc32b6e7fc39bfdba86f99197c8d0f25333b8 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 06:47:32 +0900 Subject: [PATCH 60/72] =?UTF-8?q?feat:=20=EB=A1=9C=EB=98=90=20=ED=8B=B0?= =?UTF-8?q?=EC=BC=93=20=ED=95=98=EB=82=98=EB=8B=B9=20=EC=9D=BC=EC=B9=98?= =?UTF-8?q?=ED=95=98=EB=8A=94=20=EA=B2=B0=EA=B3=BC=EB=A5=BC=20=EB=8B=B4?= =?UTF-8?q?=EB=8A=94=20=EA=B0=9D=EC=B2=B4=EB=A5=BC=20=EA=B4=80=EB=A6=AC?= =?UTF-8?q?=ED=95=98=EB=8A=94=20LottoMatchStatus=20class=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/lotto/domain/LottoMatchStatus.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/main/java/lotto/domain/LottoMatchStatus.java diff --git a/src/main/java/lotto/domain/LottoMatchStatus.java b/src/main/java/lotto/domain/LottoMatchStatus.java new file mode 100644 index 0000000..85e7b7a --- /dev/null +++ b/src/main/java/lotto/domain/LottoMatchStatus.java @@ -0,0 +1,19 @@ +package lotto.domain; + +public class LottoMatchStatus { + private final int matchedCount; + private final Boolean hasBonusBall; + + public LottoMatchStatus(int matchedCount, Boolean hasBonusBall) { + this.matchedCount = matchedCount; + this.hasBonusBall = hasBonusBall; + } + + public int getMatchedCount() { + return matchedCount; + } + + public Boolean getHasBonusBall() { + return hasBonusBall; + } +} From 3205eca5bf021389a6d17f1af330c1e13a665857 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 07:48:09 +0900 Subject: [PATCH 61/72] =?UTF-8?q?feat:=20=EC=9D=BC=EC=B9=98=ED=95=98?= =?UTF-8?q?=EB=8A=94=20lotto=20number=20=EC=88=98=EB=A5=BC=20=EC=B6=9C?= =?UTF-8?q?=EB=A0=A5=ED=95=98=EB=8A=94=20printer=20method=20=EB=93=A4=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/ui/Printer.java | 49 +++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/src/main/java/lotto/ui/Printer.java b/src/main/java/lotto/ui/Printer.java index dc8494c..bb67eae 100644 --- a/src/main/java/lotto/ui/Printer.java +++ b/src/main/java/lotto/ui/Printer.java @@ -1,11 +1,17 @@ package lotto.ui; import lotto.domain.NumberOfLottoTicket; +import lotto.domain.WinningStatus; import lotto.domain.lotto.LottoAutomaticTicket; import lotto.domain.lotto.LottoAutomaticTickets; import lotto.domain.lotto.LottoManualTicket; import lotto.domain.lotto.LottoManualTickets; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.Map; + public class Printer { private static final String REQUEST_PURCHASE_AMOUNT_MESSAGE = "๊ตฌ์ž…๊ธˆ์•ก์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."; private static final String REQUEST_LOTTO_MANUAL_TICKET_NUMBER_MESSAGE = "์ˆ˜๋™์œผ๋กœ ๊ตฌ๋งคํ•  ๋กœ๋˜ ์ˆ˜๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."; @@ -13,6 +19,8 @@ public class Printer { private static final String PRINT_NUMBER_OF_LOTTO_TICKET_MESSAGE = "์ˆ˜๋™์œผ๋กœ %d์žฅ, ์ž๋™์œผ๋กœ %d๊ฐœ๋ฅผ ๊ตฌ๋งคํ–ˆ์Šต๋‹ˆ๋‹ค."; private static final String REQUEST_LAST_WEEK_LOTTO_WINNING_NUMBER_MESSAGE = "\n์ง€๋‚œ ์ฃผ ๋‹น์ฒจ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."; private static final String REQUEST_LOTTO_BONUS_BALL_NUMBER_MESSAGE = "๋ณด๋„ˆ์Šค ๋ณผ์„ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”"; + private static final String PRINT_FINAL_MATCHED_LOTTO_RESULT_MESSAGE = "%s๊ฐœ ์ผ์น˜%s(%s์›)- "; + private static final String PRINT_MATCH_BONUS_BALL_MESSAGE = ", ๋ณด๋„ˆ์Šค ๋ณผ ์ผ์น˜"; public void requestPurchaseAmount() { System.out.println(REQUEST_PURCHASE_AMOUNT_MESSAGE); @@ -46,6 +54,18 @@ public void printLottoManualTickets(LottoManualTickets lottoManualTickets) { } } + public void printAllMatchedLottoResults(Map lottoPrices) { + List keySet = new ArrayList(lottoPrices.keySet()); + keySet.sort(Comparator.comparingInt(WinningStatus::getWinningMoney)); + + for(WinningStatus winningStatus: WinningStatus.values()){ + printMatchedLottoWithBonusBallFormat(winningStatus); + printMatchedLottoFormat(winningStatus); + printMatchedLottoResult(winningStatus, lottoPrices); + } + } + + public void requestLastWeekLottoWinningNumber() { System.out.println(REQUEST_LAST_WEEK_LOTTO_WINNING_NUMBER_MESSAGE); } @@ -53,4 +73,33 @@ public void requestLastWeekLottoWinningNumber() { public void requestLottoBonusBallNumber() { System.out.println(REQUEST_LOTTO_BONUS_BALL_NUMBER_MESSAGE); } + + private void printMatchedLottoResult(WinningStatus winningStatus, Map lottoPrices) { + if (lottoPrices.get(winningStatus) == null){ + System.out.println("0๊ฐœ"); + } + if (lottoPrices.get(winningStatus) != null){ + System.out.println(lottoPrices.get(winningStatus)+"๊ฐœ"); + } + } + + private void printMatchedLottoFormat(WinningStatus winningStatus) { + if (!winningStatus.hasBonusBall()) { + System.out.print(String.format( + PRINT_FINAL_MATCHED_LOTTO_RESULT_MESSAGE, + winningStatus.getMatchCount(), + "", + winningStatus.getWinningMoney())); + } + } + + private void printMatchedLottoWithBonusBallFormat(WinningStatus winningStatus) { + if (winningStatus.hasBonusBall()){ + System.out.print(String.format( + PRINT_FINAL_MATCHED_LOTTO_RESULT_MESSAGE, + winningStatus.getMatchCount(), + PRINT_MATCH_BONUS_BALL_MESSAGE, + winningStatus.getWinningMoney())); + } + } } From 9aaabfa5ac168e10caacb49d2e2f5b3e968d3bf9 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 07:48:46 +0900 Subject: [PATCH 62/72] =?UTF-8?q?feat:=20=EB=A1=9C=EB=98=90=20=EA=B2=B0?= =?UTF-8?q?=EA=B3=BC=20=ED=86=B5=EA=B3=84=EB=A5=BC=20=EC=B6=9C=EB=A0=A5?= =?UTF-8?q?=ED=95=98=EB=8A=94=20method=20=EB=93=A4=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/LottoMachine.java | 53 +++++++++++++++++--- 1 file changed, 45 insertions(+), 8 deletions(-) diff --git a/src/main/java/lotto/domain/LottoMachine.java b/src/main/java/lotto/domain/LottoMachine.java index 365917d..2a459cb 100644 --- a/src/main/java/lotto/domain/LottoMachine.java +++ b/src/main/java/lotto/domain/LottoMachine.java @@ -3,6 +3,7 @@ import lotto.domain.lotto.*; import lotto.domain.strategy.RandomLottoNumberGenerator; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -11,7 +12,10 @@ public class LottoMachine { private final static int LOTTO_SIZE = 6; + private final static int WINNING_LOTTO_WITH_BONUS_BALL_MATCHED_COUNT = 5; + private final RandomLottoNumberGenerator randomLottoNumberGenerator = new RandomLottoNumberGenerator(); + private final ArrayList lottoPrices = new ArrayList<>(); public LottoAutomaticTickets generateLottoAutomaticTicket(NumberOfLottoTicket numberOfLottoTicket) { int numberOfLottoAutomaticTicket = numberOfLottoTicket.getAutomaticLottoTicketOfNumber(); @@ -21,32 +25,34 @@ public LottoAutomaticTickets generateLottoAutomaticTicket(NumberOfLottoTicket nu return new LottoAutomaticTickets(lottoAutomaticTicket); } - public Map lottoManualTicketsDiscriminator( + public List lottoManualTicketsDiscriminator( LottoManualTickets lottoManualTickets, LastWeekWinningLotto lastWeekWinningLotto, LastWeekWinningBonusBall lastWeekWinningBonusBall) { - Map mappingLottoManualTicketsResult = new HashMap<>(); + List lottoMatchStatuses = new ArrayList<>(); for (LottoManualTicket lottoManualTicket : lottoManualTickets.getLottoManualTickets()) { int matchedLottoManualTicketCount = calculateMatchedLottoManualTicket(lottoManualTicket, lastWeekWinningLotto); Boolean isMatchedBonusBall = calculateMatchedBonusBallManualTicket(lottoManualTicket, lastWeekWinningBonusBall); - mappingLottoManualTicketsResult.put(matchedLottoManualTicketCount, isMatchedBonusBall); + LottoMatchStatus lottoMatchStatus = new LottoMatchStatus(matchedLottoManualTicketCount, isMatchedBonusBall); + lottoMatchStatuses.add(lottoMatchStatus); } - return mappingLottoManualTicketsResult; + return lottoMatchStatuses; } - public Map lottoAutomaticTicketsDiscriminator( + public List lottoAutomaticTicketsDiscriminator( LottoAutomaticTickets lottoAutomaticTickets, LastWeekWinningLotto lastWeekWinningLotto, LastWeekWinningBonusBall lastWeekWinningBonusBall) { - Map mappingLottoAutomaticTicketsResult = new HashMap<>(); + List lottoMatchStatuses= new ArrayList<>(); for (LottoAutomaticTicket lottoAutomaticTicket : lottoAutomaticTickets.getLottoAutomaticTickets()) { int matchedLottoAutomaticTicketCount = calculateMatchedLottoAutomaticTicket(lottoAutomaticTicket, lastWeekWinningLotto); Boolean isMatchedBonusBall = calculateMatchedBonusBallAutomaticTicket(lottoAutomaticTicket, lastWeekWinningBonusBall); - mappingLottoAutomaticTicketsResult.put(matchedLottoAutomaticTicketCount, isMatchedBonusBall); + LottoMatchStatus lottoMatchStatus = new LottoMatchStatus(matchedLottoAutomaticTicketCount, isMatchedBonusBall); + lottoMatchStatuses.add(lottoMatchStatus); } - return mappingLottoAutomaticTicketsResult; + return lottoMatchStatuses; } private Boolean calculateMatchedBonusBallAutomaticTicket( @@ -100,4 +106,35 @@ private int countMatchedLottoNumber(Boolean isMatchLottoNumber) { } return 0; } + + public void getStatistics(List lottoAllTicketMatchStatuses) { + + for (LottoMatchStatus lottoMatchStatus: lottoAllTicketMatchStatuses) { + mappingLottoTicketWithBonusBall(lottoMatchStatus); + } + } + + private void mappingLottoTicketWithBonusBall(LottoMatchStatus lottoMatchStatus) { + for (WinningStatus winningStatus: WinningStatus.values()) { + compareWinningStatus(winningStatus, lottoMatchStatus.getMatchedCount(), lottoMatchStatus.getHasBonusBall()); + } + } + + private void compareWinningStatus(WinningStatus winningStatus, int lottoMatchedCount, Boolean hasBonusBall) { + if((winningStatus.getMatchCount() == lottoMatchedCount) && (lottoMatchedCount != WINNING_LOTTO_WITH_BONUS_BALL_MATCHED_COUNT)){ + lottoPrices.add(winningStatus); + } + if((winningStatus.hasBonusBall() == hasBonusBall) && (lottoMatchedCount == WINNING_LOTTO_WITH_BONUS_BALL_MATCHED_COUNT)){ + lottoPrices.add(winningStatus); + } + } + + public Map getMappingLottoWithBonusBall() { + Map mappingLottoWithBonusBall = new HashMap<>(); + for (WinningStatus key: lottoPrices + ) { + mappingLottoWithBonusBall.put(key, mappingLottoWithBonusBall.getOrDefault(key, 0)+1); + } + return mappingLottoWithBonusBall; + } } From e2d55261d4e5588774ac85ad28e8e28eefa137e5 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 07:52:34 +0900 Subject: [PATCH 63/72] =?UTF-8?q?feat:=20=EC=88=98=EC=9D=B5=EB=A5=A0?= =?UTF-8?q?=EC=9D=84=20=EC=B6=9C=EB=A0=A5=ED=95=98=EB=8A=94=20printLottoPr?= =?UTF-8?q?ofit=20method=20=EC=99=80=20=EC=88=98=EC=9D=B5=EB=A5=A0?= =?UTF-8?q?=EC=9D=B4=201=EB=B3=B4=EB=8B=A4=20=EC=9E=91=EC=9D=84=20?= =?UTF-8?q?=EA=B2=BD=EC=9A=B0=20=EC=B6=9C=EB=A0=A5=ED=95=98=EB=8A=94=20pri?= =?UTF-8?q?ntIsLottoProfit=20method=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/ui/Printer.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/main/java/lotto/ui/Printer.java b/src/main/java/lotto/ui/Printer.java index bb67eae..45ac929 100644 --- a/src/main/java/lotto/ui/Printer.java +++ b/src/main/java/lotto/ui/Printer.java @@ -21,6 +21,8 @@ public class Printer { private static final String REQUEST_LOTTO_BONUS_BALL_NUMBER_MESSAGE = "๋ณด๋„ˆ์Šค ๋ณผ์„ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”"; private static final String PRINT_FINAL_MATCHED_LOTTO_RESULT_MESSAGE = "%s๊ฐœ ์ผ์น˜%s(%s์›)- "; private static final String PRINT_MATCH_BONUS_BALL_MESSAGE = ", ๋ณด๋„ˆ์Šค ๋ณผ ์ผ์น˜"; + private static final String PRINT_PROFIT_LOSS_MESSAGE = "(๊ธฐ์ค€์ด 1์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฐ๊ณผ์ ์œผ๋กœ ์†ํ•ด๋ผ๋Š” ์˜๋ฏธ์ž„)"; + private static final String PRINT_LOTTO_PROFIT_MESSAGE = "์ด ์ˆ˜์ต๋ฅ ์€ %.2f์ž…๋‹ˆ๋‹ค."; public void requestPurchaseAmount() { System.out.println(REQUEST_PURCHASE_AMOUNT_MESSAGE); @@ -102,4 +104,14 @@ private void printMatchedLottoWithBonusBallFormat(WinningStatus winningStatus) { winningStatus.getWinningMoney())); } } + + public void printLottoProfit(float calculatedProfit) { + System.out.print(String.format(PRINT_LOTTO_PROFIT_MESSAGE, calculatedProfit)); + } + + public void printIsLottoProfit(boolean isProfit) { + if(!isProfit) { + System.out.println(PRINT_PROFIT_LOSS_MESSAGE); + } + } } From 6b432c55e1d99cf5c900dc7f24d266b9e846dfd9 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 08:14:44 +0900 Subject: [PATCH 64/72] =?UTF-8?q?feat:=20=EC=88=98=EC=9D=B5=EB=A5=A0?= =?UTF-8?q?=EC=97=90=20=EB=8C=80=ED=95=9C=20Profit=20class=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/Profit.java | 36 ++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/main/java/lotto/domain/Profit.java diff --git a/src/main/java/lotto/domain/Profit.java b/src/main/java/lotto/domain/Profit.java new file mode 100644 index 0000000..f5a5f20 --- /dev/null +++ b/src/main/java/lotto/domain/Profit.java @@ -0,0 +1,36 @@ +package lotto.domain; + +import java.util.List; + +public class Profit { + private static final int PROFIT_THRESHOLD = 1; + + private final int sumLottoPrices; + private final NumberOfLottoTicket numberOfLottoTicket; + private final float calculatedProfit; + + public Profit(List lottoPrices, NumberOfLottoTicket numberOfLottoTicket) { + this.sumLottoPrices = sumLottoPrices(lottoPrices); + this.numberOfLottoTicket = numberOfLottoTicket; + this.calculatedProfit = CalculatedProfit(); + } + + private int sumLottoPrices(List lottoPrices){ + return lottoPrices.stream().mapToInt(WinningStatus::getWinningMoney).sum(); + } + + private float CalculatedProfit() { + return (float) sumLottoPrices / (numberOfLottoTicket.getTotalNumberOfLottoTicket() * numberOfLottoTicket.getLottoTicketPrice()); + } + + public boolean isProfit() { + if (calculatedProfit Date: Fri, 9 Apr 2021 08:15:15 +0900 Subject: [PATCH 65/72] =?UTF-8?q?feat:=20getLottoTicketPrice=20method=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/NumberOfLottoTicket.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/lotto/domain/NumberOfLottoTicket.java b/src/main/java/lotto/domain/NumberOfLottoTicket.java index 7fdd8af..9811542 100644 --- a/src/main/java/lotto/domain/NumberOfLottoTicket.java +++ b/src/main/java/lotto/domain/NumberOfLottoTicket.java @@ -25,6 +25,10 @@ private int calculateAutomaticLottoTicketOfNumber(int lottoTicketOfTotalNumber, return lottoTicketOfTotalNumber - manualLottoTicketOfNumber; } + public int getLottoTicketPrice() { + return LOTTO_TICKET_PRICE; + } + public int getNumberOfManualLottoTicket(){ return numberOfManualLottoTicket; } From 36d6809020c1018ce23bd183ebb94e9cf53b5830 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 08:15:44 +0900 Subject: [PATCH 66/72] =?UTF-8?q?feat:=20informLottoStatistics=20method=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/LottoStore.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/lotto/domain/LottoStore.java b/src/main/java/lotto/domain/LottoStore.java index 123b625..12e9685 100644 --- a/src/main/java/lotto/domain/LottoStore.java +++ b/src/main/java/lotto/domain/LottoStore.java @@ -59,6 +59,22 @@ public LastWeekWinningBonusBall inputLastWeekWinningBonusBall() { return new LastWeekWinningBonusBall(BonusBall); } - public void informLottoStatistics() { + public void informLottoStatistics( + NumberOfLottoTicket numberOfLottoTicket, + LottoManualTickets lottoManualTickets, + LottoAutomaticTickets lottoAutomaticTickets, + LastWeekWinningLotto lastWeekWinningLotto, + LastWeekWinningBonusBall lastWeekWinningBonusBall) { + + List lottoAllTicketMatchStatuses = new ArrayList<>(); + List lottoManualTicketMatchStatuses = lottoMachine.lottoManualTicketsDiscriminator(lottoManualTickets, lastWeekWinningLotto, lastWeekWinningBonusBall); + List lottoAutomaticTicketMatchStatuses = lottoMachine.lottoAutomaticTicketsDiscriminator(lottoAutomaticTickets, lastWeekWinningLotto, lastWeekWinningBonusBall); + lottoAllTicketMatchStatuses.addAll(lottoManualTicketMatchStatuses); + lottoAllTicketMatchStatuses.addAll(lottoAutomaticTicketMatchStatuses); + List lottoStatistics = lottoMachine.getStatistics(lottoAllTicketMatchStatuses); + printer.printAllMatchedLottoResults(lottoMachine.getMappingLottoWithBonusBall()); + Profit profit = lottoMachine.getProfitInformation(lottoStatistics, numberOfLottoTicket); + printer.printLottoProfit(profit.getProfit()); + printer.printIsLottoProfit(profit.isProfit()); } } From 80d552f375c3a1d079d846e404879e3bbe15030f Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 08:16:12 +0900 Subject: [PATCH 67/72] =?UTF-8?q?feat:=20profit=20=EA=B0=9D=EC=B2=B4?= =?UTF-8?q?=EB=A5=BC=20=EB=B0=98=ED=99=98=ED=95=98=EB=8A=94=20getProfitInf?= =?UTF-8?q?ormation=20method=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/LottoMachine.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/lotto/domain/LottoMachine.java b/src/main/java/lotto/domain/LottoMachine.java index 2a459cb..0868575 100644 --- a/src/main/java/lotto/domain/LottoMachine.java +++ b/src/main/java/lotto/domain/LottoMachine.java @@ -107,11 +107,12 @@ private int countMatchedLottoNumber(Boolean isMatchLottoNumber) { return 0; } - public void getStatistics(List lottoAllTicketMatchStatuses) { + public List getStatistics(List lottoAllTicketMatchStatuses) { for (LottoMatchStatus lottoMatchStatus: lottoAllTicketMatchStatuses) { mappingLottoTicketWithBonusBall(lottoMatchStatus); } + return lottoPrices; } private void mappingLottoTicketWithBonusBall(LottoMatchStatus lottoMatchStatus) { @@ -137,4 +138,8 @@ public Map getMappingLottoWithBonusBall() { } return mappingLottoWithBonusBall; } + + public Profit getProfitInformation(List lottoStatistics, NumberOfLottoTicket numberOfLottoTicket) { + return new Profit(lottoStatistics, numberOfLottoTicket ); + } } From 3d82bb634ce56467530bd39c5f2f4efb60b73f2b Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 08:16:39 +0900 Subject: [PATCH 68/72] =?UTF-8?q?feat:=20run=20method=20=EA=B5=AC=ED=98=84?= =?UTF-8?q?=20=EB=B0=8F=20method=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/LottoApplication.java | 18 +++++++++++++++++- .../domain/lotto/LottoAutomaticTicket.java | 1 - 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/main/java/lotto/LottoApplication.java b/src/main/java/lotto/LottoApplication.java index 6a69cb4..0f0314c 100644 --- a/src/main/java/lotto/LottoApplication.java +++ b/src/main/java/lotto/LottoApplication.java @@ -1,9 +1,25 @@ package lotto; +import lotto.domain.LottoStore; +import lotto.domain.NumberOfLottoTicket; +import lotto.domain.PurchaseAmount; +import lotto.domain.lotto.LastWeekWinningBonusBall; +import lotto.domain.lotto.LastWeekWinningLotto; +import lotto.domain.lotto.LottoAutomaticTickets; +import lotto.domain.lotto.LottoManualTickets; + public class LottoApplication { + private final LottoStore lottoStore = new LottoStore(); public void run() { - + PurchaseAmount purchaseAmount = lottoStore.inputLottoPurchaseAmount(); + int lottoManualTicketNumber = lottoStore.inputLottoManualTicketNumber(); + LottoManualTickets lottoManualTickets = lottoStore.inputLottoManualTickets(lottoManualTicketNumber); + NumberOfLottoTicket numberOfLottoTicket = lottoStore.informNumberOfLottoTicket(purchaseAmount, lottoManualTicketNumber); + LottoAutomaticTickets lottoAutomaticTickets = lottoStore.informLottoAutomaticTickets(lottoManualTickets, numberOfLottoTicket); + LastWeekWinningLotto lastWeekWinningLotto = lottoStore.inputLastWeekWinningLotto(); + LastWeekWinningBonusBall lastWeekWinningBonusBall = lottoStore.inputLastWeekWinningBonusBall(); + lottoStore.informLottoStatistics(numberOfLottoTicket, lottoManualTickets, lottoAutomaticTickets, lastWeekWinningLotto, lastWeekWinningBonusBall); } public static void main(String[] args) { diff --git a/src/main/java/lotto/domain/lotto/LottoAutomaticTicket.java b/src/main/java/lotto/domain/lotto/LottoAutomaticTicket.java index b258d6d..1938b12 100644 --- a/src/main/java/lotto/domain/lotto/LottoAutomaticTicket.java +++ b/src/main/java/lotto/domain/lotto/LottoAutomaticTicket.java @@ -3,7 +3,6 @@ import java.util.List; public class LottoAutomaticTicket extends Lotto{ - private final List numbers; public LottoAutomaticTicket(List numbers) { From fc06755827f5bcbe32d675f2c1b12021336314d3 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 08:33:09 +0900 Subject: [PATCH 69/72] =?UTF-8?q?feat:=20Profit=20=EA=B0=9D=EC=B2=B4?= =?UTF-8?q?=EC=9D=98=20=EC=88=98=EC=9D=B5=EB=A5=A0=EC=9D=B4=201=EB=B3=B4?= =?UTF-8?q?=EB=8B=A4=20=ED=81=B4=20=EB=95=8C=EC=9D=98=20test=20case=20?= =?UTF-8?q?=EC=99=80=20=EC=9E=91=EC=9D=84=20=EB=95=8C=EC=9D=98=20test=20ca?= =?UTF-8?q?se=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/lotto/domain/ProfitTest.java | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/test/java/lotto/domain/ProfitTest.java diff --git a/src/test/java/lotto/domain/ProfitTest.java b/src/test/java/lotto/domain/ProfitTest.java new file mode 100644 index 0000000..5720839 --- /dev/null +++ b/src/test/java/lotto/domain/ProfitTest.java @@ -0,0 +1,53 @@ +package lotto.domain; + +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.*; + +class ProfitTest { + @Test + void Profit_๊ฐ์ฒด๋ฅผ_์ƒ์„ฑํ•˜๊ณ _์ˆ˜์ต๋ฅ ์ด_1๋ณด๋‹ค_ํด๋•Œ_true_๋ฅผ_๋ฐ˜ํ™˜ํ•œ๋‹ค() { + //given + int purchaseManualLottoOfNumber = 3; + PurchaseAmount purchaseAmount = new PurchaseAmount(4000); + NumberOfLottoTicket numberOfLottoTicket = new NumberOfLottoTicket(purchaseAmount, purchaseManualLottoOfNumber); + List lottoPrices = new ArrayList<>(); + for (WinningStatus winningStatus: WinningStatus.values()) { + if (winningStatus.getWinningMoney() == 5000) { + lottoPrices.add(winningStatus); + } + } + Profit profit = new Profit(lottoPrices, numberOfLottoTicket); + + //when + Boolean isProfit = profit.isProfit(); + + //then + assertThat(true).isEqualTo(isProfit); + } + + @Test + void Profit_๊ฐ์ฒด๋ฅผ_์ƒ์„ฑํ•˜๊ณ _์ˆ˜์ต๋ฅ ์ด_1๋ณด๋‹ค_์ž‘์„_๋•Œ_false_๋ฅผ_๋ฐ˜ํ™˜ํ•œ๋‹ค() { + //given + int purchaseManualLottoOfNumber = 3; + PurchaseAmount purchaseAmount = new PurchaseAmount(6000); + NumberOfLottoTicket numberOfLottoTicket = new NumberOfLottoTicket(purchaseAmount, purchaseManualLottoOfNumber); + List lottoPrices = new ArrayList<>(); + for (WinningStatus winningStatus: WinningStatus.values()) { + if (winningStatus.getWinningMoney() == 5000) { + lottoPrices.add(winningStatus); + } + } + Profit profit = new Profit(lottoPrices, numberOfLottoTicket); + + //when + Boolean isProfit = profit.isProfit(); + + //then + assertThat(false).isEqualTo(isProfit); + } +} \ No newline at end of file From 082fb66cb86f625bb1d2a0c3697e6dca875ea853 Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 08:33:56 +0900 Subject: [PATCH 70/72] =?UTF-8?q?feat:=20Profit=20=EA=B0=9D=EC=B2=B4?= =?UTF-8?q?=EC=9D=98=20=EC=88=98=EC=9D=B5=EB=A5=A0=EC=9D=84=20=EB=B0=98?= =?UTF-8?q?=ED=99=98=ED=95=98=EB=8A=94=20method=20=EC=97=90=20=EB=8C=80?= =?UTF-8?q?=ED=95=9C=20test=20case=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/lotto/domain/ProfitTest.java | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/test/java/lotto/domain/ProfitTest.java b/src/test/java/lotto/domain/ProfitTest.java index 5720839..35ba6c2 100644 --- a/src/test/java/lotto/domain/ProfitTest.java +++ b/src/test/java/lotto/domain/ProfitTest.java @@ -50,4 +50,25 @@ class ProfitTest { //then assertThat(false).isEqualTo(isProfit); } + + @Test + void Profit_๊ฐ์ฒด๋ฅผ_์ƒ์„ฑํ•˜๊ณ _์ˆ˜์ต๋ฅ _๋ฐ˜ํ™˜ํ•œ๋‹ค() { + //given + int purchaseManualLottoOfNumber = 3; + PurchaseAmount purchaseAmount = new PurchaseAmount(4000); + NumberOfLottoTicket numberOfLottoTicket = new NumberOfLottoTicket(purchaseAmount, purchaseManualLottoOfNumber); + List lottoPrices = new ArrayList<>(); + for (WinningStatus winningStatus: WinningStatus.values()) { + if (winningStatus.getWinningMoney() == 5000) { + lottoPrices.add(winningStatus); + } + } + Profit profit = new Profit(lottoPrices, numberOfLottoTicket); + + //when + float calculatedProfit = profit.getProfit(); + + //then + assertThat(1.25).isEqualTo(calculatedProfit); + } } \ No newline at end of file From 7c0aec003b910ce36b691fcb3c7224ac6ecc79ec Mon Sep 17 00:00:00 2001 From: Sehoon In Date: Fri, 9 Apr 2021 08:49:15 +0900 Subject: [PATCH 71/72] =?UTF-8?q?style:=20=EB=9D=BC=EC=9D=B8=20=EC=A0=95?= =?UTF-8?q?=EB=A6=AC=20=EB=B0=8F=20=EB=9D=84=EC=96=B4=EC=93=B0=EA=B8=B0=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/LottoMachine.java | 21 ++++++++++--------- .../lotto/domain/NumberOfLottoTicket.java | 2 +- src/main/java/lotto/domain/Profit.java | 4 ++-- src/main/java/lotto/domain/WinningStatus.java | 2 +- .../lotto/LastWeekWinningBonusBall.java | 4 ++-- .../domain/lotto/LastWeekWinningLotto.java | 4 ++-- src/main/java/lotto/domain/lotto/Lotto.java | 2 +- .../domain/lotto/LottoAutomaticTicket.java | 4 ++-- .../domain/lotto/LottoAutomaticTickets.java | 1 - .../lotto/domain/lotto/LottoManualTicket.java | 4 ++-- .../domain/validation/LottoValidation.java | 6 +++--- src/main/java/lotto/ui/Printer.java | 17 +++++++-------- 12 files changed, 35 insertions(+), 36 deletions(-) diff --git a/src/main/java/lotto/domain/LottoMachine.java b/src/main/java/lotto/domain/LottoMachine.java index 0868575..447450b 100644 --- a/src/main/java/lotto/domain/LottoMachine.java +++ b/src/main/java/lotto/domain/LottoMachine.java @@ -44,7 +44,7 @@ public List lottoAutomaticTicketsDiscriminator( LottoAutomaticTickets lottoAutomaticTickets, LastWeekWinningLotto lastWeekWinningLotto, LastWeekWinningBonusBall lastWeekWinningBonusBall) { - List lottoMatchStatuses= new ArrayList<>(); + List lottoMatchStatuses = new ArrayList<>(); for (LottoAutomaticTicket lottoAutomaticTicket : lottoAutomaticTickets.getLottoAutomaticTickets()) { int matchedLottoAutomaticTicketCount = calculateMatchedLottoAutomaticTicket(lottoAutomaticTicket, lastWeekWinningLotto); @@ -82,6 +82,7 @@ private int calculateMatchedLottoAutomaticTicket( private Boolean calculateMatchedBonusBallManualTicket( LottoManualTicket lottoManualTicket, LastWeekWinningBonusBall lastWeekWinningBonusBall) { + List lottoTicket = lottoManualTicket.getLotto(); int WinningBonusBalls = lastWeekWinningBonusBall.getLastWeekWinningBonusBall(); return lottoTicket.contains(WinningBonusBalls); @@ -90,6 +91,7 @@ private Boolean calculateMatchedBonusBallManualTicket( private int calculateMatchedLottoManualTicket( LottoManualTicket lottoManualTicket, LastWeekWinningLotto lastWeekWinningLotto) { + List lottoTicket = lottoManualTicket.getLotto(); List lastWeekWinningLottoTicket = lastWeekWinningLotto.getLotto(); int matchedCount = 0; @@ -108,38 +110,37 @@ private int countMatchedLottoNumber(Boolean isMatchLottoNumber) { } public List getStatistics(List lottoAllTicketMatchStatuses) { - - for (LottoMatchStatus lottoMatchStatus: lottoAllTicketMatchStatuses) { + for (LottoMatchStatus lottoMatchStatus : lottoAllTicketMatchStatuses) { mappingLottoTicketWithBonusBall(lottoMatchStatus); } return lottoPrices; } private void mappingLottoTicketWithBonusBall(LottoMatchStatus lottoMatchStatus) { - for (WinningStatus winningStatus: WinningStatus.values()) { + for (WinningStatus winningStatus : WinningStatus.values()) { compareWinningStatus(winningStatus, lottoMatchStatus.getMatchedCount(), lottoMatchStatus.getHasBonusBall()); } } private void compareWinningStatus(WinningStatus winningStatus, int lottoMatchedCount, Boolean hasBonusBall) { - if((winningStatus.getMatchCount() == lottoMatchedCount) && (lottoMatchedCount != WINNING_LOTTO_WITH_BONUS_BALL_MATCHED_COUNT)){ + if ((winningStatus.getMatchCount() == lottoMatchedCount) && (lottoMatchedCount != WINNING_LOTTO_WITH_BONUS_BALL_MATCHED_COUNT)) { lottoPrices.add(winningStatus); } - if((winningStatus.hasBonusBall() == hasBonusBall) && (lottoMatchedCount == WINNING_LOTTO_WITH_BONUS_BALL_MATCHED_COUNT)){ + if ((winningStatus.hasBonusBall() == hasBonusBall) && (lottoMatchedCount == WINNING_LOTTO_WITH_BONUS_BALL_MATCHED_COUNT)) { lottoPrices.add(winningStatus); } } public Map getMappingLottoWithBonusBall() { Map mappingLottoWithBonusBall = new HashMap<>(); - for (WinningStatus key: lottoPrices - ) { - mappingLottoWithBonusBall.put(key, mappingLottoWithBonusBall.getOrDefault(key, 0)+1); + + for (WinningStatus key : lottoPrices) { + mappingLottoWithBonusBall.put(key, mappingLottoWithBonusBall.getOrDefault(key, 0) + 1); } return mappingLottoWithBonusBall; } public Profit getProfitInformation(List lottoStatistics, NumberOfLottoTicket numberOfLottoTicket) { - return new Profit(lottoStatistics, numberOfLottoTicket ); + return new Profit(lottoStatistics, numberOfLottoTicket); } } diff --git a/src/main/java/lotto/domain/NumberOfLottoTicket.java b/src/main/java/lotto/domain/NumberOfLottoTicket.java index 9811542..ebe5d52 100644 --- a/src/main/java/lotto/domain/NumberOfLottoTicket.java +++ b/src/main/java/lotto/domain/NumberOfLottoTicket.java @@ -29,7 +29,7 @@ public int getLottoTicketPrice() { return LOTTO_TICKET_PRICE; } - public int getNumberOfManualLottoTicket(){ + public int getNumberOfManualLottoTicket() { return numberOfManualLottoTicket; } diff --git a/src/main/java/lotto/domain/Profit.java b/src/main/java/lotto/domain/Profit.java index f5a5f20..bffbda6 100644 --- a/src/main/java/lotto/domain/Profit.java +++ b/src/main/java/lotto/domain/Profit.java @@ -15,7 +15,7 @@ public Profit(List lottoPrices, NumberOfLottoTicket numberOfLotto this.calculatedProfit = CalculatedProfit(); } - private int sumLottoPrices(List lottoPrices){ + private int sumLottoPrices(List lottoPrices) { return lottoPrices.stream().mapToInt(WinningStatus::getWinningMoney).sum(); } @@ -24,7 +24,7 @@ private float CalculatedProfit() { } public boolean isProfit() { - if (calculatedProfit winningLotto; public LastWeekWinningLotto(List winningLotto) { @@ -10,7 +10,7 @@ public LastWeekWinningLotto(List winningLotto) { this.winningLotto = winningLotto; } - public List getLotto(){ + public List getLotto() { return winningLotto; } diff --git a/src/main/java/lotto/domain/lotto/Lotto.java b/src/main/java/lotto/domain/lotto/Lotto.java index d73135b..c9d33c5 100644 --- a/src/main/java/lotto/domain/lotto/Lotto.java +++ b/src/main/java/lotto/domain/lotto/Lotto.java @@ -7,7 +7,7 @@ abstract class Lotto { private final List numbers; - public Lotto(List numbers){ + public Lotto(List numbers) { LottoValidation lottoValidation = new LottoValidation(); lottoValidation.checkLottoLength(numbers); lottoValidation.checkDuplicatedNumber(numbers); diff --git a/src/main/java/lotto/domain/lotto/LottoAutomaticTicket.java b/src/main/java/lotto/domain/lotto/LottoAutomaticTicket.java index 1938b12..c66860a 100644 --- a/src/main/java/lotto/domain/lotto/LottoAutomaticTicket.java +++ b/src/main/java/lotto/domain/lotto/LottoAutomaticTicket.java @@ -2,7 +2,7 @@ import java.util.List; -public class LottoAutomaticTicket extends Lotto{ +public class LottoAutomaticTicket extends Lotto { private final List numbers; public LottoAutomaticTicket(List numbers) { @@ -10,7 +10,7 @@ public LottoAutomaticTicket(List numbers) { this.numbers = numbers; } - public List getLotto(){ + public List getLotto() { return numbers; } } diff --git a/src/main/java/lotto/domain/lotto/LottoAutomaticTickets.java b/src/main/java/lotto/domain/lotto/LottoAutomaticTickets.java index bf8e19c..61d7896 100644 --- a/src/main/java/lotto/domain/lotto/LottoAutomaticTickets.java +++ b/src/main/java/lotto/domain/lotto/LottoAutomaticTickets.java @@ -1,6 +1,5 @@ package lotto.domain.lotto; -import java.util.ArrayList; import java.util.List; public class LottoAutomaticTickets { diff --git a/src/main/java/lotto/domain/lotto/LottoManualTicket.java b/src/main/java/lotto/domain/lotto/LottoManualTicket.java index 30c3180..536fd87 100644 --- a/src/main/java/lotto/domain/lotto/LottoManualTicket.java +++ b/src/main/java/lotto/domain/lotto/LottoManualTicket.java @@ -2,7 +2,7 @@ import java.util.List; -public class LottoManualTicket extends Lotto{ +public class LottoManualTicket extends Lotto { private final List numbers; public LottoManualTicket(List numbers) { @@ -10,7 +10,7 @@ public LottoManualTicket(List numbers) { this.numbers = numbers; } - public List getLotto(){ + public List getLotto() { return numbers; } } diff --git a/src/main/java/lotto/domain/validation/LottoValidation.java b/src/main/java/lotto/domain/validation/LottoValidation.java index 8baea1f..9ff125f 100644 --- a/src/main/java/lotto/domain/validation/LottoValidation.java +++ b/src/main/java/lotto/domain/validation/LottoValidation.java @@ -10,20 +10,20 @@ public class LottoValidation { private final static int LOTTO_NUMBER_COUNT = 6; public void checkLottoLength(List numbers) { - if(numbers.size() !=LOTTO_NUMBER_COUNT){ + if (numbers.size() != LOTTO_NUMBER_COUNT) { throw new NotValidLottoLengthException(); } } public void checkDuplicatedNumber(List numbers) { List duplicatedCheckNumbers = new ArrayList<>(); - for (Integer number :numbers) { + for (Integer number : numbers) { hasDuplicatedNumber(number, duplicatedCheckNumbers); } } private void hasDuplicatedNumber(Integer number, List numbers) { - if(numbers.contains(number)) { + if (numbers.contains(number)) { throw new NotDuplicatedNumberException(); } numbers.add(number); diff --git a/src/main/java/lotto/ui/Printer.java b/src/main/java/lotto/ui/Printer.java index 45ac929..1bb3812 100644 --- a/src/main/java/lotto/ui/Printer.java +++ b/src/main/java/lotto/ui/Printer.java @@ -45,13 +45,13 @@ public void printNumberOfEachLottoTicket(NumberOfLottoTicket numberOfLottoTicket } public void printLottoAutomaticTickets(LottoAutomaticTickets lottoAutomaticTickets) { - for (LottoAutomaticTicket lottoAutomaticTicket: lottoAutomaticTickets.getLottoAutomaticTickets()) { + for (LottoAutomaticTicket lottoAutomaticTicket : lottoAutomaticTickets.getLottoAutomaticTickets()) { System.out.println(lottoAutomaticTicket.getLotto()); } } public void printLottoManualTickets(LottoManualTickets lottoManualTickets) { - for (LottoManualTicket lottoManualTicket: lottoManualTickets.getLottoManualTickets()) { + for (LottoManualTicket lottoManualTicket : lottoManualTickets.getLottoManualTickets()) { System.out.println(lottoManualTicket.getLotto()); } } @@ -60,14 +60,13 @@ public void printAllMatchedLottoResults(Map lottoPrices) List keySet = new ArrayList(lottoPrices.keySet()); keySet.sort(Comparator.comparingInt(WinningStatus::getWinningMoney)); - for(WinningStatus winningStatus: WinningStatus.values()){ + for (WinningStatus winningStatus : WinningStatus.values()) { printMatchedLottoWithBonusBallFormat(winningStatus); printMatchedLottoFormat(winningStatus); printMatchedLottoResult(winningStatus, lottoPrices); } } - public void requestLastWeekLottoWinningNumber() { System.out.println(REQUEST_LAST_WEEK_LOTTO_WINNING_NUMBER_MESSAGE); } @@ -77,11 +76,11 @@ public void requestLottoBonusBallNumber() { } private void printMatchedLottoResult(WinningStatus winningStatus, Map lottoPrices) { - if (lottoPrices.get(winningStatus) == null){ + if (lottoPrices.get(winningStatus) == null) { System.out.println("0๊ฐœ"); } - if (lottoPrices.get(winningStatus) != null){ - System.out.println(lottoPrices.get(winningStatus)+"๊ฐœ"); + if (lottoPrices.get(winningStatus) != null) { + System.out.println(lottoPrices.get(winningStatus) + "๊ฐœ"); } } @@ -96,7 +95,7 @@ private void printMatchedLottoFormat(WinningStatus winningStatus) { } private void printMatchedLottoWithBonusBallFormat(WinningStatus winningStatus) { - if (winningStatus.hasBonusBall()){ + if (winningStatus.hasBonusBall()) { System.out.print(String.format( PRINT_FINAL_MATCHED_LOTTO_RESULT_MESSAGE, winningStatus.getMatchCount(), @@ -110,7 +109,7 @@ public void printLottoProfit(float calculatedProfit) { } public void printIsLottoProfit(boolean isProfit) { - if(!isProfit) { + if (!isProfit) { System.out.println(PRINT_PROFIT_LOSS_MESSAGE); } } From 8eca2f21ed2080989fd389f5ef92d19385db417a Mon Sep 17 00:00:00 2001 From: oereo Date: Sat, 10 Apr 2021 05:05:18 +0900 Subject: [PATCH 72/72] =?UTF-8?q?refactor:=20checkPurchaseAmountNotPositiv?= =?UTF-8?q?e=20method=20=EB=A5=BC=20PurchaseAmount=20class=20=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EC=B2=B4=ED=81=AC=ED=95=A0=20=EC=88=98=20=EC=9E=88?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EA=B5=AC=EC=A1=B0=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/lotto/domain/PurchaseAmount.java | 12 +++++++++--- .../domain/validation/PurchaseAmountValidation.java | 12 ------------ 2 files changed, 9 insertions(+), 15 deletions(-) delete mode 100644 src/main/java/lotto/domain/validation/PurchaseAmountValidation.java diff --git a/src/main/java/lotto/domain/PurchaseAmount.java b/src/main/java/lotto/domain/PurchaseAmount.java index 29d2113..44f77d0 100644 --- a/src/main/java/lotto/domain/PurchaseAmount.java +++ b/src/main/java/lotto/domain/PurchaseAmount.java @@ -1,14 +1,20 @@ package lotto.domain; -import lotto.domain.validation.PurchaseAmountValidation; public class PurchaseAmount { + private static final int MIN_PURCHASE_AMOUNT = 0; + private final int purchaseAmount; public PurchaseAmount(int purchaseAmount) { - PurchaseAmountValidation purchaseAmountValidation = new PurchaseAmountValidation(); this.purchaseAmount = purchaseAmount; - purchaseAmountValidation.checkPurchaseAmountNotPositive(this.purchaseAmount); + checkPurchaseAmountNotPositive(purchaseAmount); + } + + private void checkPurchaseAmountNotPositive(int purchaseAmount) { + if (purchaseAmount <= MIN_PURCHASE_AMOUNT) { + throw new IllegalArgumentException("๊ตฌ๋งค ๊ธˆ์•ก์€ 0์› ์ดํ•˜๊ฐ€ ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."); + } } public int getPurchaseAmount() { diff --git a/src/main/java/lotto/domain/validation/PurchaseAmountValidation.java b/src/main/java/lotto/domain/validation/PurchaseAmountValidation.java deleted file mode 100644 index 900a240..0000000 --- a/src/main/java/lotto/domain/validation/PurchaseAmountValidation.java +++ /dev/null @@ -1,12 +0,0 @@ -package lotto.domain.validation; - -public class PurchaseAmountValidation { - private static final int MIN_PURCHASE_AMOUNT = 0; - - public void checkPurchaseAmountNotPositive(int purchaseAmount) { - if (purchaseAmount <= MIN_PURCHASE_AMOUNT) { - throw new IllegalArgumentException("๊ตฌ๋งค ๊ธˆ์•ก์€ 0์› ์ดํ•˜๊ฐ€ ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."); - } - } - -}