From 18ed78c9be5ee34eabe34c9ea535670218ad36bd Mon Sep 17 00:00:00 2001 From: tis <92219795+this-is-spear@users.noreply.github.com> Date: Mon, 23 May 2022 19:46:02 +0900 Subject: [PATCH 1/2] =?UTF-8?q?refact=20:=20=ED=8C=8C=EC=9D=BC=20=EA=B5=AC?= =?UTF-8?q?=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/baseball/BaseballMain.java | 6 +---- .../java/baseball/api/BaseballService.java | 7 ++---- src/main/java/baseball/domain/Number.java | 2 +- src/main/java/baseball/domain/Numbers.java | 8 +++--- .../baseball/{result => domain}/Result.java | 8 +++--- .../infra/RandomNumbersSpecificationImpl.java | 5 +--- .../java/baseball/api/GameServiceTest.java | 10 ++++---- src/test/java/baseball/domain/NumberTest.java | 9 ++----- .../java/baseball/domain/NumbersTest.java | 25 +++++++++---------- src/test/java/baseball/result/ResultTest.java | 7 +++--- 10 files changed, 35 insertions(+), 52 deletions(-) rename src/main/java/baseball/{result => domain}/Result.java (91%) diff --git a/src/main/java/baseball/BaseballMain.java b/src/main/java/baseball/BaseballMain.java index 1e3523a8e..ab93a01ab 100644 --- a/src/main/java/baseball/BaseballMain.java +++ b/src/main/java/baseball/BaseballMain.java @@ -12,13 +12,9 @@ public static void main(String[] args) { System.out.println("게임을 시작합니다!"); RandomNumbersSpecification randomNumbersSpecification = new RandomNumbersSpecificationApi(); BaseballInputClient baseballInputClient = new BaseballInputClientImpl(); - do { BaseballService baseballService = new BaseballService(randomNumbersSpecification, baseballInputClient); baseballService.startBaseball(); - if (baseballInputClient.command().equals(GameStatus.STOP)) { - break; - } - } while (true); + } while (!baseballInputClient.command().equals(GameStatus.STOP)); } } diff --git a/src/main/java/baseball/api/BaseballService.java b/src/main/java/baseball/api/BaseballService.java index 8fd579a83..77f22b30c 100644 --- a/src/main/java/baseball/api/BaseballService.java +++ b/src/main/java/baseball/api/BaseballService.java @@ -6,7 +6,7 @@ import baseball.domain.RandomNumbersSpecification; import baseball.error.NumberDuplicateException; import baseball.error.NumberOfInputException; -import baseball.result.Result; +import baseball.domain.Result; import java.util.List; @@ -49,10 +49,7 @@ public Numbers inputNumbers() { List request = baseballInputClient.inputNumbers(); try { return new Numbers(request); - } catch (NumberOfInputException e) { - System.out.println(e.getMessage()); - return inputNumbers(); - } catch (NumberDuplicateException e) { + } catch (NumberOfInputException | NumberDuplicateException e) { System.out.println(e.getMessage()); return inputNumbers(); } diff --git a/src/main/java/baseball/domain/Number.java b/src/main/java/baseball/domain/Number.java index 986c9a24b..981bcc37c 100644 --- a/src/main/java/baseball/domain/Number.java +++ b/src/main/java/baseball/domain/Number.java @@ -5,7 +5,7 @@ public class Number { private static final int MIN_NUMBER = 1; private static final int MAX_NUMBER = 9; - private int number; + private final int number; public Number(int number) { if (number < MIN_NUMBER || number > MAX_NUMBER) { diff --git a/src/main/java/baseball/domain/Numbers.java b/src/main/java/baseball/domain/Numbers.java index da101431c..50004c77a 100644 --- a/src/main/java/baseball/domain/Numbers.java +++ b/src/main/java/baseball/domain/Numbers.java @@ -2,16 +2,15 @@ import baseball.error.NumberDuplicateException; import baseball.error.NumberOfInputException; -import baseball.result.Result; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Objects; -import java.util.stream.Collectors; public class Numbers { private static final int NUMBERS_SIZE = 3; - private List numbers; + private final List numbers; public Numbers(List numbers) { if (!Objects.equals(numbers.size(), NUMBERS_SIZE)) { @@ -24,8 +23,7 @@ public Numbers(List numbers) { } }); - this.numbers = numbers.stream() - .collect(Collectors.toList()); + this.numbers = new ArrayList<>(numbers); } diff --git a/src/main/java/baseball/result/Result.java b/src/main/java/baseball/domain/Result.java similarity index 91% rename from src/main/java/baseball/result/Result.java rename to src/main/java/baseball/domain/Result.java index 8514d3af8..0ccaf9be9 100644 --- a/src/main/java/baseball/result/Result.java +++ b/src/main/java/baseball/domain/Result.java @@ -1,13 +1,13 @@ -package baseball.result; +package baseball.domain; import baseball.error.CalculationFailureException; import java.util.Objects; public class Result { - private int strike; - private int ball; - private boolean nothing; + private final int strike; + private final int ball; + private final boolean nothing; public Result(int strike, int ball, boolean nothing) { if (strike + ball > 3) { diff --git a/src/main/java/baseball/infra/RandomNumbersSpecificationImpl.java b/src/main/java/baseball/infra/RandomNumbersSpecificationImpl.java index 9c1d04fdb..59e7a6199 100644 --- a/src/main/java/baseball/infra/RandomNumbersSpecificationImpl.java +++ b/src/main/java/baseball/infra/RandomNumbersSpecificationImpl.java @@ -16,10 +16,7 @@ public Numbers storeNumber() { Set numbers = new HashSet<>(); do { numbers.add(new Number(getNumberOne())); - if (numbers.size() == 3) { - break; - } - }while (true); + } while (numbers.size() != 3); List numberList =new ArrayList<>(numbers); return new Numbers(numberList); } diff --git a/src/test/java/baseball/api/GameServiceTest.java b/src/test/java/baseball/api/GameServiceTest.java index d909d2f1d..a6c313f98 100644 --- a/src/test/java/baseball/api/GameServiceTest.java +++ b/src/test/java/baseball/api/GameServiceTest.java @@ -8,6 +8,7 @@ import org.junit.jupiter.api.Test; import java.util.Arrays; +import java.util.List; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; @@ -21,7 +22,7 @@ class GameServiceTest { void test1() { //when & then assertDoesNotThrow( - () -> baseballService.storeRandomNumbers() + () -> baseballService.storeRandomNumbers() ); } @@ -30,10 +31,9 @@ void test1() { void test2() { //given Numbers numbers = baseballService.storeRandomNumbers(); + List numberList = Arrays.asList(new Number(4), new Number(9), new Number(3)); //when & then - assertThat(numbers.getNumbers().containsAll( - Arrays.asList(new Number(4), new Number(9), new Number(3))) - ).isTrue(); + assertThat(numbers.getNumbers().containsAll(numberList)).isTrue(); } @@ -42,7 +42,7 @@ void test2() { void test3() { //given & when & then assertDoesNotThrow( - () -> baseballService.inputNumbers() + () -> baseballService.inputNumbers() ); } } diff --git a/src/test/java/baseball/domain/NumberTest.java b/src/test/java/baseball/domain/NumberTest.java index e9f5adb5c..714db7eb9 100644 --- a/src/test/java/baseball/domain/NumberTest.java +++ b/src/test/java/baseball/domain/NumberTest.java @@ -14,21 +14,16 @@ void test1() { //given int request = 4; //when & then - Assertions.assertDoesNotThrow( - () -> new Number(request) - ); + Assertions.assertDoesNotThrow(() -> new Number(request)); } - @Test @DisplayName("Number는 1 이상 9 이하의 자연수 아니면 IllegalArgumentException 예외를 발생한다.") void test2() { //given int request = -1; //when & then - assertThatThrownBy( - () -> new Number(request) - ).isInstanceOf(IllegalArgumentException.class); + assertThatThrownBy(() -> new Number(request)).isInstanceOf(IllegalArgumentException.class); } } diff --git a/src/test/java/baseball/domain/NumbersTest.java b/src/test/java/baseball/domain/NumbersTest.java index 4a538ca49..a047adfdc 100644 --- a/src/test/java/baseball/domain/NumbersTest.java +++ b/src/test/java/baseball/domain/NumbersTest.java @@ -1,7 +1,6 @@ package baseball.domain; import baseball.error.NumberOfInputException; -import baseball.result.Result; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -23,7 +22,7 @@ void test1() { //when & then Assertions.assertAll( - () -> Assertions.assertDoesNotThrow(() -> new Numbers(request)) + () -> Assertions.assertDoesNotThrow(() -> new Numbers(request)) ); } @@ -36,12 +35,12 @@ void test2() { Numbers numbers = new Numbers(request); //then Assertions.assertAll( - () -> assertThat( - numbers.getNumbers() - .containsAll( - Arrays.asList(new Number(1), new Number(2), new Number(3)) - ) - ).isTrue() + () -> assertThat( + numbers.getNumbers() + .containsAll( + Arrays.asList(new Number(1), new Number(2), new Number(3)) + ) + ).isTrue() ); } @@ -55,9 +54,9 @@ void test3() { Numbers numbers = new Numbers(request); //then Assertions.assertAll( - () -> assertThat(request.contains(numbers.getNumbers().get(0))).isTrue(), - () -> assertThat(request.contains(numbers.getNumbers().get(1))).isTrue(), - () -> assertThat(request.contains(numbers.getNumbers().get(2))).isTrue() + () -> assertThat(request.contains(numbers.getNumbers().get(0))).isTrue(), + () -> assertThat(request.contains(numbers.getNumbers().get(1))).isTrue(), + () -> assertThat(request.contains(numbers.getNumbers().get(2))).isTrue() ); } @@ -68,7 +67,7 @@ void test4() { List request = Arrays.asList(new Number(1), new Number(2), new Number(3), new Number(4)); //when & then assertThatThrownBy( - () -> new Numbers(request) + () -> new Numbers(request) ).isInstanceOf(NumberOfInputException.class); } @@ -83,7 +82,7 @@ void test6() { Numbers input = new Numbers(inputRequest); //when & then assertDoesNotThrow( - () -> store.compareTo(input) + () -> store.compareTo(input) ); } diff --git a/src/test/java/baseball/result/ResultTest.java b/src/test/java/baseball/result/ResultTest.java index 58a4bef75..ebe0406eb 100644 --- a/src/test/java/baseball/result/ResultTest.java +++ b/src/test/java/baseball/result/ResultTest.java @@ -1,5 +1,6 @@ package baseball.result; +import baseball.domain.Result; import baseball.error.CalculationFailureException; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.DisplayName; @@ -18,7 +19,7 @@ void test1() { boolean nothing = false; //when & then Assertions.assertDoesNotThrow( - () -> new Result(strike, ball, nothing) + () -> new Result(strike, ball, nothing) ); } @@ -32,7 +33,7 @@ void test2() { boolean nothing = false; //when & then assertThatThrownBy( - ()-> new Result(strike, ball, nothing) + () -> new Result(strike, ball, nothing) ).isInstanceOf(CalculationFailureException.class); } @@ -45,7 +46,7 @@ void test3() { boolean nothing = true; //when & then assertThatThrownBy( - ()-> new Result(strike, ball, nothing) + () -> new Result(strike, ball, nothing) ).isInstanceOf(CalculationFailureException.class); } From 64dfd51cfa6dc5b2cc5e03a5f726714cc01b6a2e Mon Sep 17 00:00:00 2001 From: tis <92219795+this-is-spear@users.noreply.github.com> Date: Mon, 23 May 2022 19:48:58 +0900 Subject: [PATCH 2/2] =?UTF-8?q?refact=20:=20=EB=AC=B8=EC=9E=90=EC=97=B4=20?= =?UTF-8?q?=EA=B3=84=EC=82=B0=EA=B8=B0=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/calculaotor/Delimiter.java | 2 +- src/main/java/calculaotor/StringCalculator.java | 4 +--- src/test/java/calculaotor/StringCalculatorTest.java | 7 ------- src/test/java/study/StringTest.java | 13 ------------- 4 files changed, 2 insertions(+), 24 deletions(-) delete mode 100644 src/test/java/calculaotor/StringCalculatorTest.java delete mode 100644 src/test/java/study/StringTest.java diff --git a/src/main/java/calculaotor/Delimiter.java b/src/main/java/calculaotor/Delimiter.java index 49faba546..a407d47e2 100644 --- a/src/main/java/calculaotor/Delimiter.java +++ b/src/main/java/calculaotor/Delimiter.java @@ -8,7 +8,7 @@ public enum Delimiter { MULTIPLICATION("*"), DIVISION("/"); - private String delimiter; + private final String delimiter; Delimiter(String delimiter) { this.delimiter = delimiter; diff --git a/src/main/java/calculaotor/StringCalculator.java b/src/main/java/calculaotor/StringCalculator.java index 083f7fefb..2108df808 100644 --- a/src/main/java/calculaotor/StringCalculator.java +++ b/src/main/java/calculaotor/StringCalculator.java @@ -26,11 +26,9 @@ private Number calculate(String expression) { } }); - Number number = numbers.stream() + return numbers.stream() .reduce((number1, number2) -> number1.calculate(delimiter.pollFirst(), number2)) .orElseThrow(RuntimeException::new); - - return number; } public void printResult() { diff --git a/src/test/java/calculaotor/StringCalculatorTest.java b/src/test/java/calculaotor/StringCalculatorTest.java deleted file mode 100644 index a3b90aa54..000000000 --- a/src/test/java/calculaotor/StringCalculatorTest.java +++ /dev/null @@ -1,7 +0,0 @@ -package calculaotor; - -import static org.junit.jupiter.api.Assertions.*; - -class StringCalculatorTest { - -} diff --git a/src/test/java/study/StringTest.java b/src/test/java/study/StringTest.java deleted file mode 100644 index 43e47d90b..000000000 --- a/src/test/java/study/StringTest.java +++ /dev/null @@ -1,13 +0,0 @@ -package study; - -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.Assertions.assertThat; - -public class StringTest { - @Test - void replace() { - String actual = "abc".replace("b", "d"); - assertThat(actual).isEqualTo("adc"); - } -}